phanindra1212 / gaevfs

Automatically exported from code.google.com/p/gaevfs
Apache License 2.0
0 stars 0 forks source link

revisit use of parent keys (entity groups) within block keys #16

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
The current implementation stores the block keys as a list of keys within a 
metadata property field. The advantage of this approach is that it's easy 
to do bulk gets of all of the block entities. The problems with this 
approach are:

 1) This creates an entity group for all of the block keys for a file, 
causing datastore puts to be serialized and limiting to 10 puts per entity 
group per second (what happens if a file has more than 10 blocks that need 
to be written all at once?)

 2) There's a limit of 500 elements in a property list (?) and there's also 
the 1MB limit on the size of the metadata entity; both of these will limit 
the number of block keys that can be stored within a single metadata 
entity.

Should we instead use a unique key for each block and not use the metadata 
key as the parent? This would remove the limitations of the current design, 
but require searching for blocks instead of get-by-key.

Original issue reported on code.google.com by vbonfa...@gmail.com on 19 Oct 2009 at 7:30