On 4/23/07, Jukka Zitting <[EMAIL PROTECTED]> wrote:
Hi,

I started prototyping the next generation persistence proposal
discussed before, and would like feedback on an idea on how to store
values in this persistence model.

My idea is to store each value in a unique and immutable "value
record" identified by a "value identifier". Duplicate values are only
stored once in a single value record. This saves space especially when
storing multiple copies of large binary documents and allows value
equality comparisons based on just the identifiers.

A value record would essentially be an array of bytes as defined in
Value.getStream(). In other words the integer value 123 and the string
value "123" would both be stored in the same value record. More
specific typing information would be indicated in the property record
that refers to that value. For example an integer property and a
string property could both point to the same value record, but have
different property types that indicate the default interpretation of
the value.


I may be misreading something, but my main concern with this approach
is that while minimizing the size of the storage (which is very cheap
right now and almost infinite) it has a penalty on the access
performance: needing 2 "I/O" operations for reading a value. The
caching strategy may address this problem, but even if memory is also
cheap it is still limitted. So, while I see this solution fit for
cases where huge amounts of duplicate data would be stored, for all
the other cases I see it as suboptimal.

bests,

./alex
--
.w( the_mindstorm )p.
_____________________________________
 Alexandru Popescu, OSS Evangelist
TestNG/Groovy/AspectJ/WebWork/more...
 Information Queue ~ www.InfoQ.com

Reply via email to