I've moved to sdf, a very cool public access unix system. The new url is http://edoneel.chaosnet.org
I now work with lisp most of the time
26 Feb 2006
MySQL
Now we have enough changes so that we've added a copy of the blackhole storage engine but with a new name, eclstorage. The following files are changed (beyond the ones from before)
- sql/ha_eclstorage.h - This is just a copy of blackhole with the names changed
- sql/ha_eclstorage.cc - ditto
- sql/Makefile.in - We have to add the ha_eclstorage.[cc|h] files to the makefile
- sql/mysql_priv.h - Add in some definitions
- sql/handler.h - Add in some definitions
- sql/mysqld.cc and sql/handler.cc - Add in the code to activate eclstorage
- mysql-test/t/eclstorage.test - very simple test
All of these are in eclstorage-20060226-3.tar.gz.
24 Feb 2006
MySQL
Got the configuration, it seems, to work. I added or changed the following files:
- config/ac-macros/ha_eclstorage.m4 - added this to allow for the --with-eclstorage flag to work.
- configure.in - I added the line to include ha_eclstorage.m4
- config.h.in - I added the line #undef HAVE_ECLSTORAGE, which when the --with-eclstorage flag is used will be changed to #define HAVE_ECLSTORAGE 1
- Then I copied configure to configure.orig and edited configure. Normally one would just run autoconf, but, even using the same version of autoconf as configure was claimed to be produced by produced a configure which wouldn't run correctly.
All of these are in eclstorage-20060223.tar.gz. I'd put them a patch file for the patch command if someone could tell me how to add a file with patch.
Now one can run 'make' in the databases/mysql5-server directory and the right thing happens with configure.
I did add the following two changes to the pkgsrc Makefile.
- CONFIGURE_ARGS+= --with-blackhole-storage-engine
- CONFIGURE_ARGS+= --with-eclstorage
To rerun the configure in pkgsrc you need to rm work/.configure_done before you rerun 'make'
Do NOT run 'make clean' in the pkgsrc directory. Run 'gmake clean' in work/mysql-5.0.18.
23 Feb 2006
MySQL
Update: It's called eclstorage
I'm starting a new project to add a new storage engine to MySQL. I'll be using ECL - Embedded Common Lisp.
Why? Because I think it will be interesting. Also a number of the current storage engines have changed hands recently, so, this might help MySQL. Finally I think I can do something useful here with Lisp.
For now I'll be using version 5.0.18 and I'll be using the infrastructure that the NetBSD pkgsrc package system supplies. Why? I use NetBSD on an iBook and it's easy. One basic driver here is that I do have a life so I can't spend hours every day. This is also one of my drivers to use lisp
The entries related to this will be repeated in the link in the upper left of the page titled MySQL Storage Engine.
So, let's get started. Step one for those of you following at home is to download the NetBSD packages collection, follow what ever installation instructions are needed for your OS, and then 'make install' databases/mysql5-server. Now we can start poking around.
Under work/mysql-5.0.18 you will see the full source tree. Handily we can work from an example which always makes things easier. Even handier someone thought to name one of the storage engines the blackhole one. While the source comment is "Dumbest named feature ever" it makes it very easy to find. Much easier than heap, sample, test, etc, which appear all over typical source trees.
A quick find . -name \*black\* gives us:
- config/ac_macros/ha_blackhole.m4
- sql/ha_blackhole.[h|cc]
- libmysqld/ha_blackhold.cc
- and some files in mysql-test
Also a quick find shows us that, for the most part, not too many files have to be modified. We'll have to write the new versions of ha_blackhole.[cc|h] of course to interface into ecl, and we have to write the actual code in ecl to do the work, and finally we'll have to make a change or two to some other files to allow our new storage engine to actually be used.
Next steps. First we have to come up with a name. I've poked a bit and ldb, cldb, and ecldb are all taken. So is repldb (for read, eval, print loop). I'll mull this a bit. Second we'll take baby steps to make this work. The first version will do nothing more than throw stuff away, ie, just like the blackhole engine. Then we'll advance all the way up to the memory engine functions where we'll store stuff, but, not on disk. Then, with luck, we'll be able to save stuff to disk and be quick about it.
22 Feb 2006
Databases
The Redbook's web site.
20 Feb 2006
Security
Network Filtering by Operating System
16 Feb 2006
MySql
MySQL reference manual on Storage Engines. In the source, the example engine lives in sql/examples/ha_example.cc and the blackhole one lives (oddly enough) both in sql/ha_blackhole.cc and libmysqld/ha_blackhole.cc. Somewhere there's going to have to be some mechanism to include, or not, the different storage engines since you can specify --with-blackhole-storage-engine to configure. Ah, it seems that the magic occurs with a #define via configure and then some code in libmysqld/handler.cc. Hmmm...
15 Feb 2006
SQL and Lisp
How to use CLSQL. Part 2 is here
CLSQL is available from here
14 Feb 2006
Markets
The Adaptive Market Hypothesis
13 Feb 2006
Lisp and Concurrency
Concurrent/Parallel Programming - The Next Generation - Part 3
Lisp is Joy
Common Lisp Directory
GP
GECCO 2002 proceedings here and here
All GECCO papers can be found via the www search interface
Clusters
Discussion about Enron Online
9 Feb 2006
Graphics
Novell Makes Public Release of Xgl Code. I saw a demo of this at EuroBSDCON 2005 and it was quite cool
xyzrgb sells 3d scanning devices
Ron Fedkiw, Assistant Professor, Stanford Computer Science, does really cool things with fluids
Networks
Snails are faster than DSL
Logistical Computing and Internetworking (LoCI) Laboratory which has Logistical Distribution Network
2 Feb 2006
Hosting
Free virtual hosting at www.vserver.cz. It does seem that understanding Czech would be helpful.
1 Feb 2006
Hosting
Bruce O'Neel
Last modified: Mon Feb 13 17:55:58 MET 2006