NAME¶
KiokuDB::Set - Set::Object wrapper for KiokuDB with lazy loading.
VERSION¶
version 0.57
SYNOPSIS¶
use KiokuDB::Util qw(set);
my $set = set(); # KiokuDB::Set::Transient
$set->insert($object);
warn $set->size;
my $id = $dir->store( $set );
DESCRIPTION¶
This role defines the API implemented by KiokuDB::Set::Transient,
KiokuDB::Set::Deferred, and KiokuDB::Set::Loaded.
These three classes are modeled after Set::Object, but have implementation
details specific to KiokuDB.
Transient Sets¶
Transient sets are in memory, they are sets that have been constructed by the
user for subsequent insertion into storage.
When you create a new set, this is what you should use.
KiokuDB::Util provides convenience functions ("set" in KiokuDB::Util
and "weak_set" in KiokuDB::Util) to construct transient sets
concisely.
Deferred Sets¶
When a set is loaded from the backend, it is deferred by default. This means
that the objects inside the set are not yet loaded, and will be fetched only
as needed.
When set members are needed, the set is upgraded in place into a
KiokuDB::Set::Loaded object.
Loaded Sets¶
This is the result of vivifying the members of a deferred set, and is similar to
transient sets in implementation.
AUTHOR¶
Yuval Kogman <nothingmuch@woobling.org>
COPYRIGHT AND LICENSE¶
This software is copyright (c) 2014 by Yuval Kogman, Infinity Interactive.
This is free software; you can redistribute it and/or modify it under the same
terms as the Perl 5 programming language system itself.