[REBOL] Re: possible data format ... Re: Re: dbms3.r 01
From: greggirwin:mindspring at: 15-Jan-2002 23:59
Hi Pekr,
<< a) now I am not sure if locking should happen on index level (dangerous
if someone
will not use any index), or in database itself ...
b) if we have no db server and our app fails, record would stay locked
forever, so we
would have to complicate things with some time-stamps or so ...>>
If we don't have a central server script, there has to be some kind of lock
publishing mechanism. The easiest way, perhaps the only feasible way, is to
use a persistent marker as you suggest. In order to unlock a frozen lock you
need a manual unlock feature, or a timeout specified for each lock. If you
go the timeout route, you may want to implement some kind of time-extension
callback feature so you can be notified if a lock you hold is going to
expire, with the option to hold on to it. The manual unlock approach is
probably simpler, but not nearly as slick and not suitable for unattended
use.
<< - record-numbers - I hope it is clear enough, that 'pack-ing the database
will reassign
record numbers to remove holes caused by record deletion ... >>
I thought the intent was to assign a UUID to each record, which it would use
forever, so location was not important.
<< - variable record size - a block. OK - how will we map it to any rebol
structure/object? I just hope that at least that number of columns are the
same thru
all records or I can't imagine it in other way than duplicating column names
in each
record, e.g. [name: "pekr" lastname: "krenzelok"], which is not good aproach
to follow
imo? >>
I don't like wasting space any more than the next guy, but I *love*
self-describing data. Since we're targeting small to moderate size data
stores, I wouldn't be opposed to blocks of name/value pairs. If we load a
large block of records which share common words as their column names, REBOL
should handle that very efficiently, correct?
--Gregg