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
Original issue reported on code.google.com by
vbonfa...@gmail.com
on 19 Oct 2009 at 7:30