Update of /project/elephant/cvsroot/elephant In directory clnet:/tmp/cvs-serv25298
Modified Files: TODO Log Message: 0.6.1 Working HEAD is limping again. All tests pass on Allegro 8.0/Mac OS X
--- /project/elephant/cvsroot/elephant/TODO 2007/01/21 21:20:03 1.34 +++ /project/elephant/cvsroot/elephant/TODO 2007/01/22 16:17:43 1.35 @@ -6,38 +6,22 @@ 0.6.1 - performance, safety and portability --------------------------------------------
-Bugs or Observations: -- Windows support for asdf-based library builds? Include dll? -- Validate migration 0.6.0->0.6.1 +Active tasks: +- Enable and verify symbol-id strategy - Full 64-bit support (arrays, native 64-bit fixnums, etc) - char vs. uint8 in buffer-stream - flexible handling of 64-bit fixnums
-Stability: -- Delete persistent slot values from the slot store with remove-kv to ensure that - there's no data left lying around if you define then redefine a class and add - back a persistent slot name that you thought was deleted and it gets the old - value by default. -- Cleaner failure modes if operations are performed without repository or without - transaction or auto-commit (auto-commit solved by 4.4?) -- Review all NOTE comments in the code -- Validate that migrate can use either O(c) or O(n/c) where c << n memory -- Migrate code base to SVN and create tickets in TRAC - -Store variables: -- Think through default *store-controller* vs. explicit parameter passing - referencing all over the APIs +Multi-threading support and multiple-store cleanup: - Think about dynamic vs. object based store & transaction resolution? - Perform error checking when mixed - Current store specific *current-transaction* stack -- Throw condition when store spec is invalid, etc - -Multi-threading operation: - Make elephant threads appropriately bind dynamic variables? - Thread safety for all global vars - Thread safe API option for user-managed store-controller? - Thread safe API for transactions - Update to require BDB 4.5? +- Throw condition when store spec is invalid, etc
BDB Features: ? Determine how to detect deadlock conditions as an optional run-safe mode? @@ -63,22 +47,39 @@ parameter that determines if this is the default?
Performance: -- Allow dump of fast-symbol tables for low-level reconstruction in case of - catastrophic errors +- Implement unicode performance hacks for various lisps; validate UTF8 works everywhere - Metering and understanding locking issues. Large transactions seem to use a lot of locks. In general understanding how to use Berkeley DB efficiently seems like a good thing. (From Ben) - 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) -- Improve SQL serializer performance (Robert/Ian) + +Stability: +- Delete persistent slot values from the slot store with remove-kv to ensure that + there's no data left lying around if you define then redefine a class and add + back a persistent slot name that you thought was deleted and it gets the old + value by default. +- Cleaner failure modes if operations are performed without repository or without + transaction or auto-commit (auto-commit solved by 4.4?) +- Review and address all NOTE comments in the code + +RELEASE ISSUES
Test coverage: - Test for optimize storage method (just add probe-file methods to get file size) - Multi-threading stress tests? Ensure that there are conflicts and lots of serialization happening concurrently to make sure that multi-threading is in good shape
+Utilities and Build features: +- Validate migration 0.6.0->0.6.1 + - Validate that migrate can use either O(c) or O(n/c) where c << n memory +- Windows support for asdf-based library builds? Include dll? +- Allow dump of fast-symbol tables for low-level reconstruction in case of + catastrophic errors + Documentation: +- Migrate code base to SVN and create tickets in TRAC - Add notes about with-transaction usage (abort & commit behavior on exit) - Add notes about fast-symbols - Add notes about optimize-storage @@ -100,6 +101,9 @@ x Ensure thread safety in buffer-stream allocation!
January 2006 checkins; minor fixes +x Think through default *store-controller* vs. explicit parameter passing referencing all over the APIs + (Enable explicit passing everywhere, maintain *store-controller* defaults. This makes multi-threading + support simpler. Users can pass the store controller or rely on a global *store-controller*) x New build interface; all-lisp compilation (sans win32), (help from elephant-devel) x Verify that operations such as indexing are thread safe x Diffs for lisp-controlled DB checkpointing (by Gabor Melis) @@ -124,6 +128,9 @@
0.6.2 - Advanded work, low-hanging fruit (Summer '07) -------------------------------------------------- + - BDB sorting + - Compare strings of different types in BDB C sorting function + - Or support Lisp sorting callback - Persistent variables (abstraction that allows compound lisp objects at the cost of full serialization after each write that indirects through the API). Can this be done with clean semantics or should we punt it? @@ -140,6 +147,7 @@ - A guide to dealing with multiple open stores - A guide to performance - An overview of licensing issues... + - Improve SQL serializer performance (Robert/Ian)
0.7.0: Fast In-Memory Database (Not backwards compatible) --------------------------------------------------