From: Matthew Mondor Date: Wed, 9 Sep 2015 23:10:17 +0000 (+0000) Subject: Initial import of an old forgotten note X-Git-Url: http://git.pulsar-zone.net/?a=commitdiff_plain;h=8b8f5e13a58e571ceb33625da5d75296d019c2ca;p=mmondor.git Initial import of an old forgotten note --- diff --git a/mmsoftware/cl/test/object.lisp b/mmsoftware/cl/test/object.lisp new file mode 100644 index 0000000..8c02c37 --- /dev/null +++ b/mmsoftware/cl/test/object.lisp @@ -0,0 +1,29 @@ + +;;;; Creating/linking, unlinking, modifying objects should use logged +;;;; transactions which could be rolled-back or commited. +;;;; Referencial integrity and type checking should be done as requested. +;;;; Adding a slot to an object should cause instances that lack it to use +;;;; the default provided for it. Slot access should ideally be faster than +;;;; using hash tables; possibly that every object/class should both hold +;;;; a hash table for slot editing and vector for actual slot contents, +;;;; with every slot assigned a unique index. Very similar to optimizations +;;;; done in Common Lisp for packages and symbols. +;;;; Internal storage of objects could use a system similar to PostgreSQL +;;;; although we could probably store data as (optionally compressed) +;;;; s-expressions... One file per object might be suboptimal, though. +;;;; But we should try not to have to save the whole database at once +;;;; regularily, as it may grow large. We also ideally shouldn't expect +;;;; all data sets to have to hold in RAM... +;;;; We should also permit to specify the location of the transactions logs +;;;; such that they may be placed on fast battery-backed RAM devices, etc. +;;;; See what to do in order to maintain in-memory efficient indexes. +;;;; Slots of objects used for sorting or searching should be indexed. +;;;; Perhaps that part of that indexing could be stored as part of the +;;;; object metadata, and perhaps that the index could be larger than +;;;; RAM. Similar goes for object references, which must be resolved +;;;; efficiently, and "keys" which must be unique, which existence must +;;;; be efficiently verified. +;;;; Finally, it would be nice for the system to be able to work over the +;;;; network, with safe concurrency. +;;;; Evaluate if we need OO-style stuff like inheritence. +