Hi everyone, I've just finished committing a bunch of changes to the SF CVS repository that finally 'stablize' VBISAM when multiple processes are accessing the SAME table. I'm not going to produce a source tarball release at this time.
I'm shifting my focus to 'paying' work for a while, so unless someone gives me a suitable request, I'm not going to develop the next steps of vbisam for a month or two. Have a GREAT day... Trev
After waiting for what seemed like an eternity for the SF CVS repository to come back online, 1.02beta of VBISAM has FINALLY been released.
Thanks go out to Bill Gates for pushing such a cruddy piece of software down users throats that had a large hand in leading to the creation of OSS
Ladies, Gentlemen (oh, and not forgetting the usual list of 'suspects' as well:) )
The latest 'release' of VBISAM should be up on SF by the time you read this.
Please download it, compile it, and then TRY to break it.
I managed to make a HUGE performance improvement such that VBISAM now outperforms C-ISAM in every test case I've thrown at it thus far.
(For those few interested people, the changes involved dealt with performing a newton-raphson style bi-section search rather than a straight sequential search to locate a key within an index node. The old code required n/2 comparisons to find a key value in a node containing n keys... The new code requires log2(n) comparisons. Thus, on a node containing 256 keys, this is eliminating 120 key comparisons [128 - 8])
The long weekend (memorial day) here in USA meant that I've not added in EVERYTHING I intended to yet and thus, there's still some outstanding issues to be dealt with.
The most notable being the two-phase commit code for key insertion / deletion. The fact that C-ISAM also has this BUG leads me to believe that the average VBISAM user will not be TOO worried about it.
The test program originally written by Mikhail has helped me tremendously to iron out some rather serious issues in the older releases and Mikhail has graciously allowed me to post my slightly extended version of his test program into the CVS repository. (Thanks Mikhail!)
I've tried to list the major changes I've made in the CHANGELOG file but I'm equally certain that there's many positive changes I've missed out from logging in the file.
For the one or two *REALLY* curious people, I'm in the process of writing some documentation on the internal workings of VBISAM. (The intent being to assist in the understanding of the concepts, internal structures, function usage etc.)
If anyone is interested in such documentation, please contact me and I'll put a little more 'effort' into tidying it up / finishing it.
Thanx to the wonderful sleuthing efforts of Mikhail (miscellone), another bunch of 'Undocumented Features' [OK, BUGS!!!] are being removed from VBISAM. A completely fresh source-release tarball should be out in the next day or two. Watch this space [> <] (but feel free to watch other spaces too)
It may be a day late, but it's certainly *NOT* a dollar short!
Logging (logopen / logclose)
Transaction processing (begin / commit / rollback)
Way too many to mention
Coming *REAL* soon (Watch this space)...
VBISAM is about to have transaction processing incorporated into it...
Use isbegin(), iscommit() and isrollback() just like the PROFESSIONALS.
Also included in the upcoming release:
Quite a few bugfixes (from minor to major)
Release ETA: 01Jan2004
Ahhh, at last!
A 100% open source ISAM handler written in 'C' that interacts in realtime (including sharing the row-locking strategy) with the leading industry standard ISAM handler.
Better yet, it outperforms that industry standard ISAM handler by a decent margin by buffering the B+ Tree data in memory as long as possible!
A library compile time flag allows developers to finally "_BREAK_THE_2GB_BARRIER_"
(In doing so, the resultant files lose their 100% compatability with 32-bit ISAM, but gain even BETTER in-memory buffering!)... read more