1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148
|
$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!
|