NAME¶
TM::ResourceAble::MLDBM - Topic Maps, DBM Storage (synchronous)
SYNOPSIS¶
use TM::ResourceAble::MLDBM;
{
my $tm = new TM::ResourceAble::MLDBM (file => '/tmp/map.dbm');
# modify the map here.....
} # it goes out of scope here, and all changes are written back automagically
# later in the game
{
my $tm = new TM::ResourceAble::MLDBM (file => '/tmp/map.dbm');
# we are back in business, no sync necessary
}
DESCRIPTION¶
This package just implements TM with a BerkeleyDB store. Unlike
TM::Materialized::MLDBM this module does not need explicit synchronisation
with the external resource (the DBM file here). It ties content-wise with the
DBM file at constructor time and unties at DESTROY time.
This implementation technique is not so memory-efficient as I had thought.
Whenever an assertion or a toplet is referenced, the whole block of toplets,
resp. assertions, is loaded from the DB database. For small maps this is
really fast, but it can become a drag for larger maps. See
TM::ResourceAble::BDB for a more efficient solution.
NOTE: Be careful to use this together with TM::Index::*. The indices will
be held as part of the map, and so will be stored along side. If you heavily
use the map, this can result in many swapin/swapouts. Better to look at
TM::IndexAble for that matter.
INTERFACE¶
Constructor¶
The constructor expects a hash with the following keys:
- file (no default)
- This contains the file name of the DBM file to tie to.
SEE ALSO¶
TM, TM::Materialized::MLDBM
Copyright 200[68], Robert Barta <drrho@cpan.org>, All rights reserved.
This library is free software; you can redistribute it and/or modify it under
the same terms as Perl itself.
http://www.perl.com/perl/misc/Artistic.html