=head1 NAME
ObjStore - Perl Extension For C<ObjectStore> 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<sh>/C<csh>, except that you can I<change directory> B<into>
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<isql>/C<wisql>.)
=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)