||File System Database
||2003-03-03 02:28:13 GMT
||2004-06-07 04:21:40 GMT
(Projects of this owner)
FSDB is a file system data base. FSDB provides a thread-safe, process-safe Database class which uses the native file system as its back end and allows multiple file formats and serialization methods. Users access objects in terms of their paths relative to the base directory of the database. It's very light weight (the state of a Database is essentially just a path string, and code size is very small, around 1K lines of ruby).
- Fixed a problem that caused nested transactions to fail on windows. (The
source of the problem is that there is no way to calculate a unique file
id on Windows, and File::Stat#ino always returns 0. The workaround is to
use the file path, although it might not be unique, due to links on NTFS
or Samba, for instance. FSDB does try to use a canonical version of the
This fix also improves the speed of db access on windows.
- Disable the fcntl-lock extension on systems that do not already have flock.
(It still works on linux, which is where it is useful, since it allows locking
over NFS mounts.)
- Fix for file locking on Win 95/98/ME: File#lock_exclusive and
File#lock_shared always just use LOCK_EX on those OS's. Thanks to
Matija Kejzar for reporting this.
- Added examples/indexes.rb to show use of rbtree indexes of objects in a db.
(Requires that rbtree be built and installed separately.)