As some of you know, I've been working on
Presto and, as the underlying engine,
DBM::Deep. Tonight, I've released DBM::Deep 0.99_01. This is, as far as I know, the only Pureperl module that supports ACID transactions. (At least, I'm claiming that it supports ACID transactions. I would love failing tests that prove me wrong.) I will be releasing Presto 0.02 by this weekend to take advantage of the transactions.
I'm looking for people who're willing to really bang on this module quite thoroughly. I need lots and lots of failing tests.
Caveats:
- Currently, this will only support 15 concurrent transactions. When 1.00 is released, the goal is to support an unlimited number of concurrent transactions.
- A freespace manager is planned for 0.99_02. Transactions take a lot of filespace that is (currently) never recovered. So, plan on running optimize() frequently.
- It's not blazingly fast. Yet. Correctness first, speed later. It will be much faster by 1.00.
To answer a few questions I know I'll be asked:
- No, I haven't run any benchmarks against anything. That's for after correctness has been established.
- Yes, it's better than Pixie because DBM::Deep is Perl data structures persisted to disk. No "magic cookies".
- Yes, I understand that tie() is a 15% penalty off the top. This is also what tie() was meant for.
- Yes, I understand that there's a lot of things DBM::Deep 0.99_01 is doing that could be done better, such as how CLEAR() is done. That's why it's not 1.00 yet.
If you find a bug, please open something against RT. Please please provide a failing test. If you don't provide a failing test and I can't figure out how to test it, it won't get fixed. Also, if you would like, please join the DBM::Deep mailing list and come visit us in #dbm-deep on irc.perl.org
My criteria for good software:
- Does it work?
- Can someone else come in, make a change, and be reasonably certain no bugs were introduced?
Re: DBM::Deep 0.99_01 released
I was recently using the version prior to this, had collected a 21MB database with around 5K hashes of 6 elements each. I found I was utterly unable to iterate over the values in the database after awhile and had to completely throw away my database. I was running out of memory on a machine with almost no load and 1GB of RAM! It would be good to include a program that can read your databases without requiring DBM::Deep for purposes of data recovery. I'm now very, very leery of ever using this database. It seems like a one-way trip.
Re^2: DBM::Deep 0.99_01 released
Please provide me a test case for this. This would be a bug that I want to fix.
My criteria for good software:
- Does it work?
- Can someone else come in, make a change, and be reasonably certain no bugs were introduced?
Re: DBM::Deep 0.99_01 released
The release appears to be missing a file?
C:\Perl\packages\DBM-Deep-0.99_01>nmake test
Microsoft (R) Program Maintenance Utility Version 7.00.9466
Copyright (C) Microsoft Corporation. All rights reserved.
C:\Perl\bin\perl.exe "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib\lib', 'blib\arch')" t\01_basic.t t\02_hash.t t\03_b
t\01_basic...................Can't locate t/common.pm in @INC (@INC contains: C:\Perl\packages\DBM-Deep-0.99_01\blib\lib C:\Perl\packa
BEGIN failed--compilation aborted at t\01_basic.t line 7.
t\01_basic...................dubious
Test returned status 2 (wstat 512, 0x200)
[SNIP lots more like that]
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
Lingua non convalesco, consenesco et abolesco. -- Rule 1 has a caveat! -- Who broke the cabal?
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
Re^2: DBM::Deep 0.99_01 released
I've just uploaded 0.99_02 which fixes the MANIFEST issue. Thanks for pointing that out!
My criteria for good software:
- Does it work?
- Can someone else come in, make a change, and be reasonably certain no bugs were introduced?