ObjStore

 view release on metacpan or  search on metacpan

lib/ObjStore/Internals.pod  view on Meta::CPAN

knows the sender's client# and could pass this information
transparently to subscribers.  The additional overhead be just 2 bytes
per received notification.

=item * CROSS DATABASE POINTERS

This feature is highly deprecated and will likely be discontinued,
but at the moment you can allow cross database B<pointers> with:

  $db->_allow_external_pointers;    #never do this!

But you should avoid this if at all possible.  Using real pointers
will affect refcnts, even between two different databases.  Your
refcnts will be wrong if you simply C<osrm> a random database.  This
will cause some of your data to become permenently un-deletable.
Currently, there is no way to safely delete un-deletable data.

Instead, you can use references or cursors to refer to data in other
databases.  References may use the C<os_reference_protected> class
which is designed precisely to address this problem.  Refcnts will not
be updated remotely, but you'll still be protected from accessing
deleted objects or removed databases.  (Imagine the freedom. :-)

=item * C<ObjStore::AVHV> EVOLUTION

Indexed records temporarily cannot be evolved due to const-ness.  For
now, it is recommended that records be removed, changed, and re-added
to the table when changing indexed fields.

=item * WIN32

There might be issues with threads and signal handlers.  I'm not sure
since I don't use Microsoft products regularly.

=item * C<MOP>

This is not a general purpose C<ObjectStore> editor with complete
C<MOP> support.  Actually, I don't think this is a bug!

=item * HIGH VOLITILITY

Everything is subject to change without notice.  (But backward
compatibility will be preserved when possible. :-)

=item * POOR QUALITY DOCUMENTATION

I didn't get a Ph.D in English.  Sorry!

=back

=head1 WHY?

While there have been huge gains in software quality in the form of
GNU, Perl, Apache, Linux, Qt, and Mozilla, the world has been slogging
along in the dark ages (the 1960s in fact) with respect to database
technology.  After avoiding relational databases for years, I sensed a
combination of ObjectStore and Perl could offer the same level of
quality and simplicity that I find invaluable in addressing the
hurdles I face as a software professional.

Combining ObjectStore & Perl might seem obvious in hindsight (doesn't
it always?!) but it is my conviction that it was something more than
luck and hard work that gave me the insight to imagine and implement
this technology years before it would be recognized and adopted.  If
you will suspend disbelief for a moment, I would like to invite you
imagine a hypothetical situation.  What if you found someone who was
absolutely convincing in their understanding of the truth?  What if
you had an opportunity to spend time with them?  What would you do?

Designing software requires a basic subtlety of awareness.  To be
successful you must be able to fluctuate fluidly between the place of
reason and the place of silent knowledge.  The place of concern is the
forerunner to the place of reason.  Similarly, the place of unbending
intent is the forerunner to the place of silent knowledge.  Happily,
this technique is not limited to software design exclusively.

Not that there is anything wrong with software design.  Computers have
an evolutionary function. They (can) help people to understand the
difference between the mechanical and the non-mechanical aspects of
themselves.  Computers are *entirely* mechanical.  Don't believe the
anthropomorphisms.  Computers cannot create anything without our help;
they only do as they are instructed.  Probably this is easy to see.
However, many people seem to have difficulty seeing what should be
equally obvious: the pure, non-mechanical principle in themselves.

Ask yourself these questions: Who is the software designer?  Who
imagines?  Who moves the fingers to type?  IMHO, to try to know
yourself is the most worthy and worthwhile goal.  Therefore, evolution
is served by making software available that is very similar to our
mechanical thinking processes.  By understanding this type of
software, one is aided in understanding how the brain works.  (I am
not referring exclusively to the field of artificial intelligence.
The brain is a data processor in the broadest sense and the algorithms
of artificial intelligence are only a part of that.)

I have clear intention as to why I am developing this software and why
I am (foolishly!) giving it away for free.  By contributing to the
evolution of others' understanding, I in fact contribute to my own
evolution.  The better one understands, the less time is wasted in
states of confusion.  As you learn how this database works, you will
assimilate the perspectives that I have deliberately distilled.  If
you wish to pursue this to a greater depth, please consider visiting
http://www.purposeofcompetition.org .  Best of luck.

=cut



( run in 0.694 second using v1.01-cache-2.11-cpan-71847e10f99 )