DBM-Deep-Blue

 view release on metacpan or  search on metacpan

README  view on Meta::CPAN

      ... actions which demonstrate the bug

      $m->dump("zzz.data");

    and include file zzz.data with your bug report.

Licence
    Perl Artistic

Copyright
    Philip R Brenan, 2010, www.handybackup.org

lib/DBM/Deep/Blue.pm  view on Meta::CPAN


#----------------------------------------------------------------------
# DBM::Deep::Blue
# Philip R Brenan, 2010
#----------------------------------------------------------------------

=pod

=head1 Name

L<DBM::Deep::Blue|http::www.handybackup.org/DBM_Deep_Blue.html> - Memory
Mapped Paged Permanent Perl Objects with optional commit and rollback.

Windows only.

=head1 Synopsis

  use DBM::Deep::Blue;
  use Test::More;

   {my $m = DBM::Deep::Blue::file('memory.data');

lib/DBM/Deep/Blue.pm  view on Meta::CPAN


   {my $m = DBM::Deep::Blue::file('memory.data');
    my $h = $m->allocGlobalHash;                   
    is $h->{a}[1]{b}[2]{c}[3],   'a1b2c2';
   }

  done_testing;

=head1 Description

L<DBM::Deep::Blue|http::www.handybackup.org/DBM_Deep_Blue_html> makes
Perl Objects permanent, but pageable, using the standard Perl syntax for
manipulating nested data structures comprised of strings, hashes and arrays.

Permanent hashes and arrays may be blessed and auto vivified,
dereferenced and dumped: consequently you can use L<Data::Dump> or
L<Data::Dumper> and Perl debugger commands to examine data structures
built with
L<DBM::Deep::Blue|http::www.handybackup.org/DBM_Deep_Blue_html> in the
normal way.

Units of work can either be committed continuously or discretely using
L</begin_work()>, L</commit()>, L</rollback()>. Uncommitted changes are
rolled back automatically when a backing file is reopened. Blessing is
subject to rollback.

The data structures are held in a memory area backed by a file using
your computer's virtual paging mechanism created by L</file()>. On large
data structures, this allows
L<DBM::Deep::Blue|http::www.handybackup.org/DBM_Deep_Blue_html> to load
pages on demand as needed to locate data, and to write back to the
backing file only the pages containing modified data. By contrast, other
schemes for making Perl objects permanent have either to write the
entire data structure or track the changes made internally and then
write them piecemeal.

To obtain addressability to permanent data objects, you can call
L</allocGlobalHash()> or L</allocGlobalArray()> to create an array or
hash that can be immediately addressed. Other data can then be connected
to these structures.

lib/DBM/Deep/Blue.pm  view on Meta::CPAN

and should therefore be reclaimed. Thus a data object returned by
L<perlfunc/delete> from a hash should be assigned to some other data
structure before any other operation is performed on the memory area.
Space reclamation is suspended during a unit of work, any space
liberated is removed by L<commit()> or L<rollback()>. 
 

Memory structures can also be created without a backing file by using
the new() function.

L<DBM::Deep::Blue|http::www.handybackup.org/DBM_Deep_Blue_html> is
written in C.


=head1 Methods

=head2 Allocation

Use these methods to create a new memory area.

=over 2

lib/DBM/Deep/Blue.pm  view on Meta::CPAN

L<http::www.strawberryperl.org>


=head1 See Also

L<DBM::Deep>


=head1 Acknowledgements

L<DBM::Deep::Blue|http::www.handybackup.org/DBM_Deep_Blue_html> uses many
of the tests from by L<DBM::Deep>.


=head1 Bugs

Please report bugs etc. through CPAN. To include a dump of your memory
area with your bug report, call:

  my $m = DBM::Deep::Blue::File(...);

lib/DBM/Deep/Blue.pm  view on Meta::CPAN

and include file F<zzz.data> with your bug report.


=head1 Licence

Perl Artistic


=head1 Copyright

Philip R Brenan, 2010, www.handybackup.org

=cut

1;
__END__



( run in 1.051 second using v1.01-cache-2.11-cpan-49f99fa48dc )