[elephant-devel] DB migration issue
Ian Eslick
eslick at media.mit.edu
Mon Dec 29 13:37:25 UTC 2008
That would be elephant-unstable
Sent from my iPhone
On Dec 29, 2008, at 7:36 AM, Ian Eslick <eslick at media.mit.edu> wrote:
> Hi Quan,
>
> Can you try the latest darcs with BDB 4.6 or 4.7? I made some changes
> to migration, but I can't recall if they were in the latest darcs or
> not - I think the latest darcs doesn't play well with BDB 4.5 so
> please make sure you can reproduce under the above configuration if
> you can.
>
> Thank you,
> Ian
>
> On Dec 29, 2008, at 3:40 AM, quan hu wrote:
>
>> Hello,
>>
>> I run into a problem when doing the garbage collection via data
>> migration.
>> The environment is elephant 0.9.1 and BDB 4.5. I also tried
>> the latest elephant in darc and get the same result.
>>
>> 1. Test case to reproduce the problem.
>>
>> (defpclass user-profile()
>> ((id :initform nil :index t)
>> (sms-inbox :initform (make-pset))))
>>
>> ;; Create a new db for test purpose
>> (setf *migrate-src* (open-store '(:bdb "/tmp/db/src/")))
>> (setf *test-obj* (make-instance 'user-profile :sc
>> *migrate-src*))
>> (insert-item 'foo (slot-value *test-obj* 'sms-inbox))
>> (setf *migrate-dst* (open-store '(:bdb "/tmp/db/dst/")))
>>
>> TEST> (migrate *migrate-dst* *migrate-src*)
>> Migrating class indexes for: USER-PROFILE
>> ; => Input get blocked, not response anymore
>>
>> 2. Using "db_stat -C A" get following output:
>> 1 Lock requests not available due to conflicts, for
>> which we waited
>>
>> 3. I do some debug work and found the problem may be caused
>> by nested transaction of different store controller.
>> I can reproduce the issue with following code segment
>>
>> TEST> (ensure-transaction (:store-controller *migrate-dst*)
>> (add-to-root 'foo 'foo :sc *migrate-dst*)
>> (ensure-transaction (:store-controller
>> *migrate-src*)
>> (add-to-root 'bar 'bar :sc *migrate-
>> dst*)))
>>
>> This kind of nested transaction scenario can appear in
>> the migrate process, because it uses source/destination store
>> controller at the same time.
>>
>> I do not understand why different store controller's
>> transaction can result in the lock conflict and want to know how to
>> fix it.
>>
>> Is there anyone meet the similar problem before?
>>
>> Thanks
>> Quan
>>
>>
>>
>>
>>
>> _______________________________________________
>> elephant-devel site list
>> elephant-devel at common-lisp.net
>> http://common-lisp.net/mailman/listinfo/elephant-devel
>
>
> _______________________________________________
> elephant-devel site list
> elephant-devel at common-lisp.net
> http://common-lisp.net/mailman/listinfo/elephant-devel
More information about the elephant-devel
mailing list