From: Kevin D. <ke...@tr...> - 2008-06-17 19:03:14
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML><HEAD> <STYLE type=text/css> P, UL, OL, DL, DIR, MENU, PRE { margin: 0 auto;}</STYLE> <META content="MSHTML 6.00.2900.3059" name=GENERATOR></HEAD> <BODY leftMargin=1 topMargin=1 rightMargin=1><FONT face=Arial size=2> <DIV>I think something that may be getting missed here is that the BTree implementation is, itself, a higher level construct (which serializes itself into a byte array that is then stored in the record manager). Simple storage of byte arrays is supported directly in record manager (that's pretty much the point of RecordManager).</DIV> <DIV> </DIV> <DIV>If you wish to store into a BTree, then serialization is required (the tree has to have *some* mechanism for serializing itself, after all - so a nested serialization is called for on both the key and value side of the tuple). If all you care about is storing byte arrays, then use the provided ByteArraySerializer.INSTANCE object when you initialize the BTree, and you are done.</DIV> <DIV> </DIV> <DIV> </DIV> <DIV>FYI - If your keys are relatively well ordered, and you are doing a lot of storage, I definitely recommend that you structure your key byte arrays so the common values are left oriented, then turn on the the key compressor feature in the BTree. This significantly reduces disk usage and in most cases improves speed considerably.</DIV> <DIV> </DIV> <DIV>- K</DIV> <DIV> </DIV> <DIV> </DIV> <DIV> </DIV> <DIV> </DIV></FONT> <DIV style="FONT-SIZE: x-small; FONT-FAMILY: Tahoma"> <DIV>----------------------- <B>Original Message</B> -----------------------</DIV> <DIV> </DIV> <DIV><B>From:</B> Tatu Saloranta <A href="mailto:cow...@ya..."><FONT color=#0000ff><cow...@ya...></FONT></A></DIV> <DIV><B>To:</B> <A href="mailto:jdb...@li..."><FONT color=#0000ff>"jdb...@li...</FONT></A> >> JDBM General listserv" <A href="mailto:jdb...@li..."><FONT color=#0000ff><jdb...@li...>,</FONT></A> Mark Proctor <A href="mailto:mpr...@co..."><FONT color=#0000ff><mpr...@co...></FONT></A></DIV> <DIV><B>Cc:</B> </DIV> <DIV><B>Date:</B> Tue, 17 Jun 2008 11:42:59 -0700 (PDT)</DIV> <DIV><B>Subject: <U>Re: [Jdbm-general] extensible serializer</U></B></DIV> <DIV> </DIV></DIV><FONT face=Tahoma size=2> <DIV>--- On Tue, 6/17/08, Mark Proctor <A href="mailto:mpr...@co..."><FONT color=#0000ff><mpr...@co...></FONT></A> wrote:<BR><BR>...<BR>> for me I just want to be able to efficiently write my own<BR>> byte[], <BR>> without having to go through any serialisation mechanism.<BR><BR>Hear hear. That's kind of my view too -- I am not against layering<BR>additional stuff on top of this low-level layer, but for my use<BR>cases they are not essential. Conversely, when layer are defined<BR>properly (and hooks are in place -- which was an important part of<BR>the patches) it should be possible to add more advanced but still<BR>integrated object persistence systems.<BR><BR>...<BR>> <BR>> Interestingly the other day I was talking to someone who<BR>> built a <BR>> key/value store for journal logging, they use to use BDB,<BR>> but moved away <BR>> sa the btree was overkill. They built a system that created<BR>> 10 x 10mb <BR>> files ( configurable). You would insert the byte[] and it<BR>> would return a <BR>...<BR>> they only ever <BR>> write to the head location. Whlie you can remove entries<BR><BR>Isn't this similar to what BDB-JE does too? (not the traditional BDB).<BR>Basically allowing fast writers, good concurrency, but quite a bit more storage space overhead.<BR><BR>-+ Tatu +-<BR><BR><BR><BR> <BR><BR>-------------------------------------------------------------------------<BR>Check out the new SourceForge.net Marketplace.<BR>It's the best place to buy or sell services for<BR>just about anything Open Source.<BR><A href="http://sourceforge.net/services/buy/index.php"><FONT color=#0000ff>http://sourceforge.net/services/buy/index.php</FONT></A><BR>_______________________________________________<BR>Jdbm-general mailing list<BR><A href="mailto:Jdb...@li..."><FONT color=#0000ff>Jdb...@li...</FONT></A><BR><A href="https://lis ts.sourceforge.net/lists/listinfo/jdbm-general"><FONT color=#0000ff>https://lists.sourceforge.net/lists/listinfo/jdbm-general</FONT></A><BR><BR></DIV></FONT></BODY></HTML> |