Hi!

I hope that this message goes to the right 'thread' in the mailing
list; not replied to a thread before.

Monty recommended that we should wait still for a few weeks before
releasing MySQL 4.0/Innobase-alpha, to keep source code versions in
control.

But I can now report here the current status of the work, and I will
post an update on this list every week.

The current status of MySQL/Innobase is that it runs on Intel Windows NT
and Intel Linux. It runs a shortened version of the 'bench' test suite
of MySQL without errors, and also can run my own multithreaded stress
tests.

The current TODO list I have is the following:

1. Optimize the MySQL/Innobase interface regarding to CPU time,
and add support for small, less than 7.5 kB BLOBS.
2. Test correct handling of all MySQL data types and the SQL NULL value.
3. Give appropriate information to the MySQL query optimizer about
table sizes, and also to users about the file space occupied by each
table, index, and other data structures.
4. Tell the MySQL query optimizer if a secondary index contains all the
required columns: no need then to search the clustered index (in Innobase
every table has a clustered index where the data is stored, this is similar
to Sybase clustered indexes).
5. Add a timeout to lock waiting: Innobase can detect and resolve deadlocks
within its own lock table, but if a user uses also MySQL LOCK TABLES... or
BDB locks, a deadlock can occur where Innobase does not know of all the
locks: this is resolved by adding a timeout for a lock wait, say 100 s.,
after which the transaction is rolled back.
6. Make the (implicit) select in UPDATE TABLE ... SET ... an x-locking read,
not a consistent read.
7. Interface SELECT ... FOR UPDATE and SELECT ... IN SHARE MODE to Innobase,
(MySQL parser in 4.0 already knows these syntactic constructs).
8. Move the SQL NULL value as the first in the alphabetical order.
9. Prevent MySQL from using 'generate_table' in DELETE FROM ... . That
is not good if we want a rollback.
10. Port to Solaris, HP-UX and all different Unix flavors.
-------
11. Add support for > 7.5 kB BLOBS.
12. Writing a direct CREATE INDEX (currently MySQL internally uses ALTER TABLE
if an index is created to a table already holding rows).
13. Writing a lock monitor.
14. Writing a disk i/o monitor.

Items 1 - 10 mean mainly small changes in source code, and they are
necessary to make the database useful.

Items 11 - 14 are long-term projects.

Lots of work :), but Innobase now contains 100 000 lines of C, so the
above changes 1-10 might be small in proportion to the work already done.

If you readers of the list have opinions, you have a chance to influence
the TODO list above: I can try to mould the list according to what people
feel is the most relevent thing to do.

Best regards,

Heikki Tuuri
Innobase Oy


---------------------------------------------------------------------
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

Reply via email to