1$MODULE = "MLDBM::Sync"; $VERSION = '.30'; $DATE = '2002/07/03'; 2 3+ Added MLDBM to the list of PREREQ_PM modules for better CPAN installation 4 5$MODULE = "MLDBM::Sync"; $VERSION = .27; $DATE = '2002/06/23'; 6 7+ Added note to error for Lock upgrade during ReadLock 8 for case of doing unintentional write with construct like: 9 10 tied(%dbm)->ReadLock; 11 my $v = $dbm{'key'}{'key2'}; # will error with write !! 12 ^^^^^^^^^ 13 Thanks to Steve Keith for noting this bizarre perl behavior. 14 15+ bench/bench_sync.pl now creates a test dbm in the local directory 16 being run instead of /tmp ... benchmark results were being skewed 17 since /tmp could be a fast RAM cache file system like tmpfs on Linux 18 19+ Added MANIFEST.SKIP for building 20 21+ t/taint.t perl taint check test added. 22 23+ escape inbound file parameter for safe taint checking 24 25$MODULE = "MLDBM::Sync"; $VERSION = .25; $DATE = '2001/11/11'; 26 27+ Honors the $MLDBM::RemoveTaint setting when MLDBM::Sync object is created, 28 storing for later creation of the MLDBM tied object 29 30$MODULE = "MLDBM::Sync"; $VERSION = .23; $DATE = '2001/11/08'; 31 32+ Updated AUTHORS section with perl license reference. 33 34+ ./bench/bench_sync.pl has -n argument to specify # of reads/writes 35 where default is 100 36 37+ ./bench/bench_sync.pl has --bundle argument to allows for reads/writes 38 in locked sections of that #, which improves performance. 39 40+ $dbm->Size() for Tie::TextDir now adds size of directory as 41 reported by OS. This still does not seem to take into account 42 the extra file inode overhead on a file system like ext2 linux 43 but its better now at least. 44 45$MODULE = "MLDBM::Sync"; $VERSION = .21; $DATE = '2001/10/31'; 46 47+ Added support in CLEAR() & SyncSize() for a tie directory 48 based data structure like Tie::TextDir 49 50$MODULE = "MLDBM::Sync"; $VERSION = .19; $DATE = '2001/10/15'; 51 52- Fixed keys(%hash), where one of the keys was boolean FALSE 53 like '', or 0. Bug found by Elliot Glaysher. 54 55$MODULE = "MLDBM::Sync"; $VERSION = .17; $DATE = '2001/10/11'; 56 57- Make EXISTS safe after explicity tied hash ReadLock() 58 59- For loops in MLDBM::Sync::SDBM_File that are friendlier 60 to perl5.004_04 61 62- Better Lock() return value, whether or not a lock has 63 previously been acquired 64 65$MODULE = "MLDBM::Sync"; $VERSION = .15; $DATE = '2001/09/21'; 66 67- API fixes for easier integration with Apache::ASP 68 69- Made $sync_dbm->UnLock() repeatable, with the next 70 $sync_dbm->Lock() still working. 71 72$MODULE = "MLDBM::Sync"; $VERSION = .11; $DATE = '2001/09/12'; 73 74++ Taking module out of BETA. Been using it in production 75 for 3 months, and in development for 6. 76 77- Bug fix for undefined warning in MLDBM::Sync::SDBM_File 78 79- MLDBM::Sync::SDBM_File STORE() now deletes prior key parts 80 before storing the value, which will result in more correct 81 behavior, there was a possible bug here. Added a test 82 in t/sdbm_rec_big.t testing for this possible error. 83 84+ Deletion of lock file when calling CLEAR(), or %dbm = () 85 Do this after unlock, which _might_ have a race condition 86 but haven't seen in in heavy load testing... MLDBM::Sync 87 recreates the lock file every time if necessary, so this 88 may not be an issue anyway. Might be good to unlink before 89 unlocking, but this might only work on *nix platformns, 90 now Win32. 91 92$MODULE = "MLDBM::Sync"; $VERSION = .09; $DATE = '2001/07/31'; 93 94- Bug fix for undefined warning in MLDBM::Sync::SDBM_File 95 96$MODULE = "MLDBM::Sync"; $VERSION = .07; $DATE = '2001/03/18'; 97 98+ $dbm->SyncCacheSize() API activates 2nd layer RAM cache 99 via Tie::Cache with MaxBytes set. 100 101+ CACHE documentation, cache.t test, sample benchmarks 102 with ./bench/bench_sync.pl -c 103 104$MODULE = "MLDBM::Sync"; $VERSION = .05; $DATE = '2001/03/13'; 105 106+ Simpler use of locking. 107 108- Read locking works on Solaris, had to open lock file in 109 read/write mode. Linux/NT didn't care. 110 111$MODULE = "MLDBM::Sync"; $VERSION = .03; $DATE = 'TBA'; 112 113+ $dbm_obj->SyncKeysChecksum(1) API documented. 114 New internal format that does not store the original key 115 with keys() & each() throwing errors now if used on this 116 kind of database. 117 118+ ReadLock() API added, that does a LOCK_SH internally. 119 Also uses ReadLock() for FETCH and *KEY operations. 120 ** WARNING: one may not ReadLock() and then write to the 121 dbm, or that will die in an error. Must UnLock() first. 122 Writes may only occur in a Lock() section, which does a 123 LOCK_EX internally. 124 125+ Better backward compatibility with old SDBM_Files 126 for MLDBM::Sync::SDBM_File, also new format not compatible 127 with .01 format. 128 129+ Better test for MLDBM::Sync::SDBM_File, using keys with 130 odd characters. 131 132$MODULE = "MLDBM::Sync"; $VERSION = .01; $DATE = '2001/02/07'; 133 134+ Initial release with flock concurrent access control to 135 MLDBM databases. 136 137+ Also MLDBM::Sync::SDBM_File wrapper for getting around the 138 1024 byte / record limitation for sDBM_File. Writes data 139 in segments of 128 bytes. This was created because SDBM_File 140 access is an order of magnitude faster than DB_File on Linux 141 with tie/untie per write in the MLDBM::Sync model, which is 142 for i/o flushing do dbms don't get corrupt. 143 144 But, then one has to worry about exceeding the 1024 byte limit, 145 which can happen for serializing larger objects. Well worry 146 no more! 147 148 149