=head1 NAME ObjStore - Perl Extension For C OODBMS =head1 SYNOPSIS Enjoy perl? Sick of SQL? Ready to try something new? =head1 DESCRIPTION ObjectStore is the market leader in object-oriented databases http://www.odi.com (NASDAQ: ODIS). They use a unique Cache-Forward Architecture to make persistent data available in literally the most efficient manner possible. Prior to this joining of forces ObjectStore was too radical a design decision for many applications and perl5 did not have a simple way of storing complex data persistently. Now there is an easy way to build database applications (especially if you are concerned about preserving your ideals of encapsulation). =head2 INCLUDED TOOLS =over 4 =item * ospeek Prints out databases in Data::Dumper style. =item * posh & qtposh Like C/C, except that you can I B your database and walk around the data from the inside. You can also invoke methods on your objects or write custom reports (in perl, of course :-). (Also similar to C/C.) =item * osperlserver Provides remote method invokation, database job scheduling, and server-object collaboration services. Completely generic! =back =head1 PREREQUISITES You will need: - ObjectStore OODBMS (see http://www.odi.com; evaluations are available!) - Perl 5.004_04 (or perl 5.005, once released) - Tree::Fat & Test perl extensions - ExtUtils::ExCxx (only needed on Digital UNIX, HP (5.x), OS/2 (3.x), or MS Windows NT/95; send email) See http://www.perl.com/CPAN/authors/id/JPRIT/ ! =head1 R!CENT CHANGES ** 05-10-98 RELEASE 1.39 - Fixed a long standing problem with transaction memory usage. Memory associated with keeping track of persistent objects is now released as soon as possible (instead of at the end of the transaction). A true checkpoint is now possible (but insufficiently tested). - Optionally, during update transactions reference counts are no longer affected by reads (this was not the case in prior versions!). Efficiency of certain types of updates should be improved. You will need to manually invoke the HOLD method in the rare circumstance that a transient variable is the only reference to a persistent object (or otherwise risk a SEGV/BUS error). Due to the gravity of this change, the optimization is turned off for 1.39 by default. In anticipation of enabling it, a warning is generated to help pinpoint any problems in existing code. Please test your code against 1.39 before upgrading to the next release!! - Lots of tweaks. Reorganized transaction code and osperlserver. All allocators should now accept 'transient' as a valid segment. ObjStore::Serve supercedes the jumble logic initially prototyped in ObjStore::Process. ** 04-23-98 RELEASE 1.38 - Support for multiple threads. Changed ObjStore::Transaction->new() to conform the standard method call convention. While partially tested (perl 5.004_64 solaris), additional internal reorganization and testing is still needed. - osperlserver no longer invokes the 'evolve' method upon restart. - VERSIONs are not longer required for persistent classes. Instead '0.001' is defaulted. Be aware that you must use a version greater than '0.001' once you add an explicit version. see ./INSTALL for hints on installation see ./UPGRADE to evolve databases from prior releases see ./TODO for a list of stuff in the queue see ./CHANGES for a visionary perspective Perl-ObjectStore mailing list: majordomo@parallax.co.uk "subscribe perl-objectstore you@your.company.com" 1. If you think you've run into a bug, try running your script with "perl -MObjStore=PANIC" and mail the output to the mailing list. 2. The mailing list is also available for job offers (as long as they relate to this extension :-). FYI, I am not myself currently looking. ------------------------------------------------------------------------- Copyright © 1997-1998 Joshua Nathaniel Pritikin. All rights reserved. This package is free software and is provided "as is" without express or implied warranty. It may be used, redistributed and/or modified under the terms of the Perl Artistic License (see http://www.perl.com/perl/misc/Artistic.html)