Peter and Sander,
relevant questions, I will try to answer them.
>Good questions - I have a few more :)
>A) why does it seem to use fixed-size storage units. (The files)
I have copied the concept of a tablespace consisting of a small
number of files from Oracle. When the database itself manages
disk space, it can reduce disk fragmentation by using its own
file space allocation algorithm. Innobase uses an algorithm similar
to the Fast File System used in some Unixes. Also, one can use
raw disks to totally eliminate the disk fragmentation caused by the
operating system.
>B) what happens when they ar full?
You have to shut down the database and add a new file to the
configuration file my.cnf.
>C) can it auto-create new files as demand grows?
Not currently. I think no database currently can auto-create
disk drives either :).
>D) can you safely add new files when there is data in them already?
Yes you can, but you have to shut down the database first.
>Sander> -----Original Message-----> From: Peter Zaitsev [mailto:[EMAIL PROTECTED]]
> Sent: 22 February 2001 19:52> To: [EMAIL PROTECTED]> Subject: Innobase> >
> Hello mysql,>
> Today I got a chance to compile mysql 3.23.34 with innobase, so
> althought it's not out yet I'll give some of my comments>
> The version I'm speaking about got from work.mysql.com>
> 1) It does not even configure then trying to configure
> --with-innobase-db the problem is autoconf is not called in innobase
> directory so configure script is not created
In the source distribution there will be the files generated by
autoheader etc., you will not need to generate them in your machine.
> 2) innobase_data_home_dir used as prefix, so if we'll not end it
> with "/" we'll have files prefixed by directory name created in
> upper level directory. This may be expected behavior but if so it
> should be described in the manual.
I have to modify the code so that it adds the '/' or '\'.
> 3) Data files somehow are created with "x" attribute which I think
> is not quite right
> drwxr-xr-x 19 root root 366 Feb 22 21:32 ..
> -rwxrwx--x 1 root root 1073741824 Feb 22 21:36 ibdata1
> -rwxrwx--x 1 root root 1073741824 Feb 22 21:08 ibdata2
> -rwxrwx--x 1 root root 1073741824 Feb 22 21:09 ibdata3
> -rwxrwx--x 1 root root 1073741824 Feb 22 21:09 ibdata4
Sorry, I will fix that. You are not supposed to execute database
data files :).
> 4) Currently ATIS test fails with innobase table:> Retrieving data
> Warning: Query 'select
> city.city_name,state.state_name,city.city_code from state,city
> where city.state_code=state.state_code' returned 1 rows when it
> should have returned 11 rows> Got error: when executing select
> flight.flight_code,aircraft.aircraft_type from flight,aircraft
> where flight.aircraft_code=aircraft.aircraft_code> got 0 instead of 579 ***>
You may have an outdated version of the MySQL source distribution.
(I am currently exchanging lots of emails with Peter and looking at the
problem.)
> 5) Then started first time mysql creates innobase datafiles long
> during startup which I think should be also mentioned in the manual -
> I thought it's hanged up.>
To avoid file fragmentation done by the operating system, Innobase
physically writes its data files full at database creation, so that
the space is physically occupied.
> 6) There is currently a serious lack of documentation - is there any
> additional information about innobase tables ? For example how does
> tables distributed over data files (I'e if putting them on different
> disks will improve perfomance) Other thing is what should I do if I
> somehow lose one file - will I be able to recover data at least
> partitially ? What is idea ? Is it better to make small files or one
> big file if you OS supports this ? How may I backup table ? Only
> with mysqldump ?
I am writing more documentation, forgive me the sparseness. Your
questions will also influence the documentation.
Currently, user has no control over how tables are stored in the data files,
because the data files form a single tablespace. In future you will
be able create several tablespaces like in Oracle, and specify the
tablespace where the table is stored.
For best performance, you should create big files, so that disk
seeks are minimized.
If you lose a file, you must do an archive recovery from a backup,
using archived log files of MySQL, (not log files of Innobase).
Currently, to take a backup you have to shut down the database,
check that it shuts down without errors, and copy your whole data
files to a backup place. There is no incremental backup currently,
nor a hot (online) backup. The support for a hot backup is built in,
but there currently is no user interface for it.
To backup an individual table you have to dump it. It is a good idea
to take dumps now and then anyway, because a logical text file is
always your safest backup of a database table.
> 7) Currently No check repair tools are provided which would be real
> showstopper for production usage even if the tables will be quite
> stable - what should I do if I have file system dammage so I need to
> check the things up. Here we have even more problems as many tables
> share one file so we probably can't just check them one by one.
I will have to write CHECK TABLE (in Oracle called ANALYZE). I am not
sure if repair table is a good idea, Oracle DBA manual at least does
not mention such a procedure for Oracle. If the database gets
corrupted, then the safest method is to recover it from a backup which
is old enough so that corruption does not occur in the backup. Or recover
the tables from dumps and MySQL archived log files.
> 8) As I understand innobase works with large files self mannaging
> usage in them - so Is it planned to support RAW devices with innobase
Yes, Innobase will support raw disks. I have to test it still.
> ?>
> > > -- > Best regards,> Peter mailto:[EMAIL PROTECTED]
Best regards,
Heikki Tuuri
Innobase Oy
Helsinki, Finland
---------------------------------------------------------------------
Before posting, please check:
http://www.mysql.com/manual.php (the manual)
http://lists.mysql.com/ (the list archive)
To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php