[elephant-cvs] CVS elephant/src/elephant

ieslick ieslick at common-lisp.net
Fri Mar 9 00:44:35 UTC 2007


Update of /project/elephant/cvsroot/elephant/src/elephant
In directory clnet:/tmp/cvs-serv2630/src/elephant

Modified Files:
	migrate.lisp 
Log Message:
Fixed migrate bug that created new dst objects for each src persistent object

--- /project/elephant/cvsroot/elephant/src/elephant/migrate.lisp	2007/02/26 19:12:18	1.9
+++ /project/elephant/cvsroot/elephant/src/elephant/migrate.lisp	2007/03/09 00:44:35	1.10
@@ -48,10 +48,11 @@
 ;;   other way to do comparisons between objects across stores (different
 ;;   oid namespaces) so user beware of the pitfalls of partial migrations...
 ;;
-;; - Migrate keeps a memory-resident hash of all objects; this means
-;;   you cannot currently migrate a store that has more data than your 
-;;   main memory.  (This could be fixed by keeping the oid table in
-;;   the target store and deleting it on completion)
+;; - Migrate keeps a memory-resident hash of all persistent objects;
+;;   this is not as bad as it sounds as an object is only an oid reference 
+;;   and a pointer to the store controller it belongs to.  However, you 
+;;   may eventually run out of heap space for very large DB's.  We can use
+;;   the old DB to store the mappings if this becomes a problem.
 ;;
 ;; - Migration does not maintain OID equivalence so any datastructures which
 ;;   index into those will have to have a way to reconstruct themselves (better
@@ -73,6 +74,7 @@
 ;;
 
 
+
 (defgeneric migrate (dst src)
   (:documentation 
    "Migrate an object from the src object, collection or controller
@@ -96,7 +98,7 @@
 
 ;; ERROR CHECKING
 
-(defmethod migrate :around ((dst store-controller) (src t))
+(defmethod migrate :around ((dst store-controller) (src store-controller))
   "This method ensures that we wipe our duplication detection
    around any top level call to migrate"
   (if *migrating*




More information about the Elephant-cvs mailing list