[elephant-devel] gp-export

Alex Mizrahi killerstorm at newmail.ru
Fri Apr 24 17:04:19 UTC 2009


helo

(Short introduction for those who does not know what is this about: 
gp-export is a tool
to export/import databases in human-readable (SEXP) format, with 
serialization based on
s-serialization of cl-prevalence, meant to work with different databases. In 
previous discussions
it was considered as a path of migration between version 0.9 and 1.0 of 
elephant/postmodern.)

Just a few monthes passed, and I've made gp-export that is suitable for 
migration from 0.9 to 1.0. :)
The problem was that there was no support for btrees whatsoever, so I had to 
refactor it badly.
Anyway, now it seems to work and it even has some tests.

However, for now gp-export does not back up whole store -- it only iterates 
through all objects
it finds in index and dumps them together with all their slots etc. It is 
such because it was meant
to be working with various stores. (But it supports only elephant/postmodern 
so far.)
But probably if we also backup store root as some fake object instance, it 
would make full
elephant store backup.

Also, there are some backend-specific pieces in exporter, such as what slots 
to filter out.
I've only made support for postmodern, if one wants it to work with BDB, he 
needs to add support.
Also, migration is backend-specific (as it needs to map between btree 
classes), maybe it needs
some refactoring to be unified.

So, the questions are:
   Is there a need for such thing?
   Are backups described above full/good enough?
   Should it be somehow bundled with elephant or maintained separately?
   Are there people who'd like to hack it to add support for different 
stuff?
   (Well, I can do this, but I'm not very fast :) )

By the way, besides gp-export, I've considered using elephant's migration 
for 0.9 to 1.0 upgrade:

postmodern-0.9 --migration--> bdb-0.9 --upgrade--> bdb-1.0 --migration--> 
postmodern-1.0

However, migration does not work right in version 0.9... And I'm not very 
enthusiastic about
digging old code. I've asked about this some time ago, as nobody replied I'm 
assuming nobody
cares, so I'm officially giving up.

with best regards, Alex 'killerstorm' Mizrahi. 







More information about the elephant-devel mailing list