[elephant-devel] Querying Advice
Ian Eslick
eslick at csail.mit.edu
Mon Nov 13 12:37:33 UTC 2006
Daniel Salama wrote:
>> Were you storing persistent-metaclass objects or simply normal objects?
>> Normal objects are huge relative to persistent objects as currently all
>> the slot names are also serialized (potentially in 32-bit unicode if on
>> SBCL). I have some improvements planned to reduce the storage and
>> processing overhead for strings, but it will take some evaluation to
>> make sure performance doesn't suffer over much. Some of this will make
>> it into the forthcoming 0.6.1 release I'm trying to finish a bunch of
>> work for prior to my twin daughters are born.
>>
>> Also SBCL strings in the 0.6.0 release are stored in their internal
>> 32-bit form so we can memcpy them back and forth between elephant and
>> the internal format. The new serializer will store them in the minimal
>> format and then convert back to the 32-bit internal form for unicode
>> enabled SBCL.
>
> We were storing persistent objects. However, instead of storing them
> all into the root, we were storing them into a normal collection class
> (I think it was even a BTree), such that we would have a collection of
> "people". Maybe this was the wrong approach. We were coming from the
> RDBMS world so what we ended up doing is storing the root, different
> collections of objects, where each collection would "kind-of" resemble
> the different tables we have in MySQL.
>
Class indexing accomplishes the same thing - it creates a BTree for each
indexed class type that contains all instances of the class. Slot
indexes can be added/deleted and are secondary BTrees with the class
BTree as primary.
>> Every time you finish or 'commit' a user transaction (form submit), just
>> write the object data back to the Elephant persistent store before
>> acking to the user.
>
> Is this done automatic by the way DCM is configured or is it a manual
> commit you do in DCM/Elephant to persistent store?
>
I think this is manual, but you'll have to ask Robert as I haven't had
time to dig into his DCM code yet.
Ian
More information about the elephant-devel
mailing list