$MODULE = "MLDBM::Sync"; $VERSION = '.30'; $DATE = '2002/07/03';
+ Added MLDBM to the list of PREREQ_PM modules for better CPAN installation
$MODULE = "MLDBM::Sync"; $VERSION = .27; $DATE = '2002/06/23';
+ Added note to error for Lock upgrade during ReadLock
for case of doing unintentional write with construct like:
tied(%dbm)->ReadLock;
my $v = $dbm{'key'}{'key2'}; # will error with write !!
^^^^^^^^^
Thanks to Steve Keith for noting this bizarre perl behavior.
+ bench/bench_sync.pl now creates a test dbm in the local directory
being run instead of /tmp ... benchmark results were being skewed
since /tmp could be a fast RAM cache file system like tmpfs on Linux
+ Added MANIFEST.SKIP for building
+ t/taint.t perl taint check test added.
+ escape inbound file parameter for safe taint checking
$MODULE = "MLDBM::Sync"; $VERSION = .25; $DATE = '2001/11/11';
+ Honors the $MLDBM::RemoveTaint setting when MLDBM::Sync object is created,
storing for later creation of the MLDBM tied object
$MODULE = "MLDBM::Sync"; $VERSION = .23; $DATE = '2001/11/08';
+ Updated AUTHORS section with perl license reference.
+ ./bench/bench_sync.pl has -n argument to specify # of reads/writes
where default is 100
+ ./bench/bench_sync.pl has --bundle argument to allows for reads/writes
in locked sections of that #, which improves performance.
+ $dbm->Size() for Tie::TextDir now adds size of directory as
reported by OS. This still does not seem to take into account
the extra file inode overhead on a file system like ext2 linux
but its better now at least.
$MODULE = "MLDBM::Sync"; $VERSION = .21; $DATE = '2001/10/31';
+ Added support in CLEAR() & SyncSize() for a tie directory
based data structure like Tie::TextDir
$MODULE = "MLDBM::Sync"; $VERSION = .19; $DATE = '2001/10/15';
- Fixed keys(%hash), where one of the keys was boolean FALSE
like '', or 0. Bug found by Elliot Glaysher.
$MODULE = "MLDBM::Sync"; $VERSION = .17; $DATE = '2001/10/11';
- Make EXISTS safe after explicity tied hash ReadLock()
- For loops in MLDBM::Sync::SDBM_File that are friendlier
to perl5.004_04
- Better Lock() return value, whether or not a lock has
previously been acquired
$MODULE = "MLDBM::Sync"; $VERSION = .15; $DATE = '2001/09/21';
- API fixes for easier integration with Apache::ASP
- Made $sync_dbm->UnLock() repeatable, with the next
$sync_dbm->Lock() still working.
$MODULE = "MLDBM::Sync"; $VERSION = .11; $DATE = '2001/09/12';
++ Taking module out of BETA. Been using it in production
for 3 months, and in development for 6.
- Bug fix for undefined warning in MLDBM::Sync::SDBM_File
- MLDBM::Sync::SDBM_File STORE() now deletes prior key parts
before storing the value, which will result in more correct
behavior, there was a possible bug here. Added a test
in t/sdbm_rec_big.t testing for this possible error.
+ Deletion of lock file when calling CLEAR(), or %dbm = ()
Do this after unlock, which _might_ have a race condition
but haven't seen in in heavy load testing... MLDBM::Sync
recreates the lock file every time if necessary, so this
may not be an issue anyway. Might be good to unlink before
unlocking, but this might only work on *nix platformns,
now Win32.
$MODULE = "MLDBM::Sync"; $VERSION = .09; $DATE = '2001/07/31';
- Bug fix for undefined warning in MLDBM::Sync::SDBM_File
$MODULE = "MLDBM::Sync"; $VERSION = .07; $DATE = '2001/03/18';
+ $dbm->SyncCacheSize() API activates 2nd layer RAM cache
via Tie::Cache with MaxBytes set.
+ CACHE documentation, cache.t test, sample benchmarks
with ./bench/bench_sync.pl -c
$MODULE = "MLDBM::Sync"; $VERSION = .05; $DATE = '2001/03/13';
+ Simpler use of locking.
- Read locking works on Solaris, had to open lock file in
read/write mode. Linux/NT didn't care.
$MODULE = "MLDBM::Sync"; $VERSION = .03; $DATE = 'TBA';
+ $dbm_obj->SyncKeysChecksum(1) API documented.
New internal format that does not store the original key
with keys() & each() throwing errors now if used on this
kind of database.
+ ReadLock() API added, that does a LOCK_SH internally.
Also uses ReadLock() for FETCH and *KEY operations.
** WARNING: one may not ReadLock() and then write to the
dbm, or that will die in an error. Must UnLock() first.
Writes may only occur in a Lock() section, which does a
LOCK_EX internally.
+ Better backward compatibility with old SDBM_Files
for MLDBM::Sync::SDBM_File, also new format not compatible
with .01 format.
+ Better test for MLDBM::Sync::SDBM_File, using keys with
odd characters.
$MODULE = "MLDBM::Sync"; $VERSION = .01; $DATE = '2001/02/07';
+ Initial release with flock concurrent access control to
MLDBM databases.
+ Also MLDBM::Sync::SDBM_File wrapper for getting around the
1024 byte / record limitation for sDBM_File. Writes data
in segments of 128 bytes. This was created because SDBM_File
access is an order of magnitude faster than DB_File on Linux
with tie/untie per write in the MLDBM::Sync model, which is
for i/o flushing do dbms don't get corrupt.
But, then one has to worry about exceeding the 1024 byte limit,
which can happen for serializing larger objects. Well worry
no more!