NAME
Tie::DB_File::SplitHash - A wrapper around the DB_File Berkeley database system
SYNOPSIS
use Tie::DB_File::SplitHash;
[$X =] tie %hash, 'Tie::DB_File::SplitHash', $filename, $flags, $mode, $DB_HASH, $multi_n;
$status = $X->del($key [, $flags]) ;
$status = $X->put($key, $value [, $flags]) ;
$status = $X->get($key, $value [, $flags]) ;
$status = $X->seq($key, $value, $flags) ;
$status = $X->sync([$flags]) ;
$status = $X->fd ;
untie %hash ;
$multi_n determines the 'spread out' or number of files the hash will be split between. The larger the number, the larger the final hash can be.
DESCRIPTION
Transparently splits a Berkeley database (DB_File) into multiple files to allow the exceeding of file system limits on file size. From the outside, it behaves identically with Berkeley DB hash support in general. This has the potential to greatly expand the amount of data that can be stored on a file size limitted file system.
It does so by taking a SHA1 hash of the key to be stored, folding the resulting hash into a value from 0 to X and storing the data to a db file selected by the value 0 to X. The randomizing behavior of the SHA1 and subsequent fold down distribute the records essentially randomly between the X+1 database files, raising the capacity of the database to (X+1) times the capacity of a single file database on the average.
NOTE: Using an 'in-memory' database is not supported by this. Use DB_File directly if you want to do that. Additionally, BTREE and RECNO DBs are not supported.
COPYRIGHT
Copyright 1999, Benjamin Franz (<URL:http://www.nihongo.org/snowhare/>) and FreeRun Technologies, Inc. (<URL:http://www.freeruntech.com/>). All Rights Reserved. This software may be copied or redistributed under the same terms as Perl itelf.
AUTHOR
Benjamin Franz
TODO
Testing.