[elephant-cvs] CVS elephant

ieslick ieslick at common-lisp.net
Fri Feb 10 01:39:13 UTC 2006


Update of /project/elephant/cvsroot/elephant
In directory common-lisp:/tmp/cvs-serv5850

Modified Files:
	TODO 
Log Message:

Added :index vs. :indexed slot option
Improved tests and added some more
Some minor cleanup



--- /project/elephant/cvsroot/elephant/TODO	2006/02/08 03:23:12	1.10
+++ /project/elephant/cvsroot/elephant/TODO	2006/02/10 01:39:12	1.11
@@ -7,20 +7,22 @@
 0.6.0 - Adding default class/slot indexing
 - Finish indexing tests (Ian)
 - Documentation update (Robert)
-- Tutorial example rethink: update the blog tutorial using indexed 
-  objects to create different views as well as integrating something 
-  like logging for admin or version control purposes. (Both?)
+- Add a class-indexing class option to the metaclass so we can maintain class instances
+  index without any secondary indices or indexed slots (Ian)
+- Add :inverse-reader to slot options to create a named method that indexes into objects 
+  based on slot values.  Is this a GF or defun?  Do we dispatch on class name or bake it in?
 
 0.6.1 - performance, safety and portability
 
 Stability:
 - Add clsql like support for building .so/.dylib from asdf loader on most systems
 - Port elephant to closer-to-MOP to make it easier to support additional lisps (Both)
-- Cleanup multi-repository operation (a simple registry of open stores, 
-  clear object-repository associations) (Both)
+- Cleanup multi-repository operation (ensure that conflicts between an object's 
+  registry and *store-controller* does not leed to lockup, especially with BDB (Both)
 - Think through default vs. explicit store referencing all over the APIs (Both)
-- Cleaner failure modes if operations are performed without repository (Both)
-- Add asserts if *auto-index* is false and we're not in a transaction
+- Cleaner failure modes if operations are performed without repository or without
+  transaction or auto-commit (Both)
+  Add asserts if *auto-index* is false and we're not in a transaction
   to help users avoid lockups in bdb?  Should be able to turn off for
   performance but it will help catch missing with-transaction statemetns
   in user code. (Both)
@@ -34,36 +36,57 @@
 - Metering and understanding locking issues.  Large transactions seem
   to use a lot of locks.  In general understanding how to use Sleepycat
   efficiently seems like a good thing. (Both)
-- Add dependency information into secondary index callback functions so that
-  we can more easily compute which indices need to be updated to avoid the
-  global remove/add in order to maintain consistency (Ian)
 - Reclaim table storage on index drop (Ian)
 - Higher performance fix for allegro unicode serialization workaround than
   my current one (Ian)
 
 Indexing features:
-- Add a class-indexing class option to the metaclass so we can maintain class instances
-  index without any secondary indices or indexed slots (Ian)
-- on class change, new slots should have their initform values pushed 
+- On class change, new slots should have their initform values pushed 
   into the slot value as if the slot was being created the first time 
   (currently this doesn't happen) (Ian)
 
 Bugs:
 - anything else reported against 0.5.0/0.6.0
 
-0.6.2 - New operating modes
+0.6.3 - Query & indexing expansion
   - simple object query language (Ian - orthogonal, on main branch)
-  - integrate support for your in-memory database (on a separate branch)
-  - repository browser (Ian - orthogonal, on main branch)
+  - Add dependency information into secondary index callback functions so that
+    we can more easily compute which indices need to be updated to avoid the
+    global remove/add in order to maintain consistency (Ian)
+  - Add needed support (if any) for persistent graph structures & queries (Ian on a branch)
+
+0.6.4 - Compliance & Documentation
+  - Update to support BDB 4.4
+  - Tutorial example rethink: update the blog tutorial using indexed 
+    objects to create different views as well as integrating something 
+    like logging for admin or version control purposes.
+  - Finish serious update and review of users manual (building on 0.6.0 update)
+    - A guide to dealing with transactions
+    - A guide to dealing with multiple open stores
+    - A guide to performance
+    - An overview of licensing issues...
+  - Repository browser (Ian - orthogonal, on main branch)
     (a simple REPL tool to see what classes are in a repository and
      what state they're in...useful for long-lived repositories)
 
-0.6.3 - Query expansion
-  - Add needed support (if any) for persistent graph structures &
-queries (Ian on a branch)
+0.6.4 - Additional datastructures?
+  - Support for cheap persistent sets (ala ACache)
 
+Some placeholders & dreams features below... :)
 
+0.7+: Major features
+  - A backend controller for AllegroCache (Ian)
+  - Prevalence-like in-memory database system (Robert?)
+  - Richer controller modes: 
+    - Single-user mode (cache values in instance slots for fast reads, write-through)
+    - Prevalence mode (read/write to normal slots except on object creation or synch)
+                      (in-memory slot indexing, on disk class)
+		      (works for any backend)
+    - Concurrent mode (for backends that allow multiple processes to connect, current default)
+    - Controller 'switches'
+      - NoSynch - allow transactions to be lost on failure but maintains consistency instead of performance
 
+0.8 - Lisp Backend?
 
 
 




More information about the Elephant-cvs mailing list