[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