KiokuDB::Entry(3) An entry in the database

VERSION

version 0.57

SYNOPSIS


KiokuDB::Entry->new(
id => ...,
data => ...
);

DESCRIPTION

This object provides the meta data for a single storage entry.

ATTRIBUTES

id
The UUID for the entry.

If there is no ID then the entry is intrinsic.

root
Whether or not this is a member of the root set (not subject to garbage collection, because storage was explicitly requested).
data
A simplified data structure modeling this object/reference. This is a tree, not a graph, and has no shared data (JSON compliant). All references are symbolic, using a KiokuDB::Reference object with UIDs as the address space.
class
If the entry is blessed, this contains the class of that object.

In the future this might be a complex structure for anonymous classes, e.g. the class and the runtime roles.

class_meta
Optional information such as runtime roles to be applied to the object is stored in this hashref.
tied
One of "HASH", "ARRAY", "SCALAR" or "GLOB".

"data" is assumed to be a reference or an intrinsic entry for the object driving the tied structure (e.g. the "tied(%hash)").

prev
Contains a link to a KiokuDB::Entry objects that precedes this one.

The last entry that was loaded from the store, or successfully written to the store for a given UUID is kept in the live object set.

The collapser creates transient Entry objects, which if written to the store successfully replace the previous one.

backend_data
Backends can use this to store additional meta data as they see fit.

For instance, this is used in the CouchDB backend to track entry revisions for the opportunistic locking, and in KiokuDB::Backend::BDB::GIN to to store extracted keys.

deleted
Used for marking entries for deletion.

Deletion entries can be generated using the "deletion_entry" method, which creates a new derived entry with no data but retaining the ID.

AUTHOR

Yuval Kogman <[email protected]>

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.