[elephant-cvs] CVS update: elephant/NOTES

blee at common-lisp.net blee at common-lisp.net
Sun Aug 29 07:44:47 UTC 2004


Update of /project/elephant/cvsroot/elephant
In directory common-lisp.net:/tmp/cvs-serv29590

Modified Files:
	NOTES 
Log Message:
updates

Date: Sun Aug 29 09:44:47 2004
Author: blee

Index: elephant/NOTES
diff -u elephant/NOTES:1.2 elephant/NOTES:1.3
--- elephant/NOTES:1.2	Fri Aug 27 19:31:08 2004
+++ elephant/NOTES	Sun Aug 29 09:44:47 2004
@@ -26,13 +26,15 @@
 
 While I loath specials, since you can't change the signature
 of slot accessors, in order to pass parameters to the
-database / serializer, specials are needed.  The store
-controller (see below) is also a special.
+database / serializer, specials are needed.  Also specials
+will probably play nice with threaded lisps.  
 
 -----------------------
 CLASSES AND METACLASSES
 -----------------------
 
+***Andrew write your stuff here***
+
 Persistent classes which the user defines are declared and
 instrumented by using the persistent-metaclass.
 
@@ -41,16 +43,21 @@
 -----------
 
 While we support serializing and persisting a wide class of
-Lisp data types, there are problems with aggregate types
-(conses, lists, arrays, objects, hash-tables...)
+Lisp data types, there are problems with persisting
+aggregate types (conses, lists, arrays, objects,
+hash-tables...)
 
 1) not automatic: there's no way for elephant to know when
 you've changed a value in an aggregate object, so you have
 to manually restore it back into the slot to get it saved.
 
-slot-1 of obj A contains a cons.  you change the car of the
-cons.  this is not reflected into the database unless you
-re-set slot-1 of obj A with the cons.
+example 1: you put a cons into the database.  you change
+it's car.  this is not saved unless you resave the cons into
+the database.
+
+example 2: slot-1 of obj A (saved in the database) contains
+a cons.  you change the car of the cons.  this is not
+reflected into the database unless you resave A.
 
 2) merge-conflicts: changing one value and saving an
 aggregate will write out the whole aggregate, possibly
@@ -91,6 +98,10 @@
 exposed.  Eventually they should be, so that tuning flags
 can be set on them.
 
+OIDs are generated by a bit of C code, which isn't great,
+nor that safe (to get acceptable performance i use
+DB_TXN_NOSYNC.)  Waiting for Sleepycat 4.3.
+
 The instance cache is implemented as a values-weak
 hash-table.  This is a hash-table where the values can be
 collected, and when they are, the entire key-value entry is
@@ -134,9 +145,6 @@
 1) Split object table by slots or classes?
 2) Separate or same btree for collections?
 
-OIDs are currently randomly generated (waiting for Sleepycat
-sequences.)
-
 -------------------
 SERIALIZER: GENERAL
 -------------------
@@ -153,8 +161,6 @@
 CMUCL this appears to be better than generic functions,
 though i don't know why.
 
-TODO: reorder the etypecase / cond.
-
 ---------------------------
 SERIALIZER: PRIMITIVE TYPES
 ---------------------------
@@ -315,5 +321,5 @@
 hopefully.
 
 Waiting for Berkeley DB 4.3 to get counters (sequences.)
-ETA Summer 2004.
+ETA October 2004.
 





More information about the Elephant-cvs mailing list