Hi,

I've been watching the development of the MVStore engine as a potential 
solution for an idea I'm working on where I need to store large associative 
arrays where the data looks something like this for an example "users" 
structure.

user[12345].name.first = "Foo"
user[12345].name.last = "Bar"
user[12345].address[1].city = "Seattle"
etc....

This data can get very large 10-100's millions of nodes (and maybe 6-8 
levels deep).  One of my requirements is that I can iterate through all the 
nodes if necessary (usually just through very specific subtree's, IE 
iterate through all the addresses for a user). So basically I need 
a hierarchical storage engine and was wondering if MVStore (or MapDB) would 
fit my needs? 

Here were a few design ideas on how I could approach this with MVStore:

1) Tuple key with simple value (similar to this 
example<https://github.com/jankotek/MapDB/blob/master/src/test/java/examples/TreeMap_Composite_Key.java>from
 MapDB).  Is MVStore designed for this? How could I iterate through all 
the nodes?  It seems like the key storage might not be very efficient as 
the full hierarchy of keys is stored for each small value?

2) Using something like java.util.Arrays.DeepHashCode(new String[] 
{"user","12345","name","first"}) to compute a single key value whole key 
path.  But then I have the iterable requirement and I'm not sure how I 
could derive all the keys.

3) Maybe a hybrid approach where I use 2 related MVMaps, one I use to store 
the raw data using a hash technique like #2, and a second MVMap to store 
the structure/hierarchy of keys, but I'm not quite sure what that would 
look like?

4) It occurred to me that maybe I need to just use raw B-Tree storage? 
 Since this data looks very much like a tree and what I'm really asking for 
is a hierarchical database.  Is that possible with MVStore?

5) I just noticed the part about R-Tree's and spatial queries, I suppose 
I've not done a lot of spacial queries, but might that be a solution to my 
problem as well?

Anyway, I'm really excited about MVStore, it seems like a great little 
storage engine, especially since I need the MVCC-ish stuff and high 
concurrency!

Thanks,
Brian

-- 
You received this message because you are subscribed to the Google Groups "H2 
Database" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/h2-database?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to