From: Kevin D. <ke...@tr...> - 2006-02-16 18:40:18
|
<!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.2802" name=GENERATOR></HEAD> <BODY leftMargin=1 topMargin=1 rightMargin=1><FONT face=Tahoma> <DIV><FONT face=Arial size=2>Bryan-</FONT></DIV> <DIV><FONT face=Arial size=2></FONT> </DIV> <DIV><FONT face=Arial size=2>Nope - in MVCC a read should never cause a writer to abort. It it does, then you are getting none of the bennefit of MVCC (you've effectively gone to a locking CC at that point). In MVCC reads do *not* cause locks. Therefore, it is not possible to have a read cause an abort.</FONT></DIV> <DIV><FONT face=Arial size=2></FONT> </DIV> <DIV><FONT face=Arial size=2>- K</FONT></DIV> <DIV><FONT face=Arial size=2></FONT> </DIV> <DIV><FONT face=Arial size=2> </FONT> <TABLE> <TBODY> <TR> <TD width=1 bgColor=blue><FONT face=Arial size=2></FONT></TD> <TD><FONT face=Arial size=2><FONT color=red>> Well, there are implementation questions and semantics. My point was that a<BR>read could cause a writer to abort.<BR><BR>-bryan<BR><BR><BR>-----Original Message-----<BR>From: <A href="mailto:jdb...@li..."><FONT color=#0000ff>jdb...@li...</FONT></A> on behalf of Kevin Day <BR>Sent: Thu 2/16/2006 9:55 AM<BR>To: 'JDBM Developer listserv '<BR>Subject: re[6]: [Jdbm-developer] MC-DataSafe (in Persistent Store Inte<BR>rface).<BR><BR>Bryan-<BR><BR>Thanks - the link was chopped up in my email client (piece of junk) - now<BR>that you pointed it out, I was able to get a copy.<BR><BR>If I read it correctly (it's not very easy to figure out what he's trying to<BR>do), Figure 11 is using time stamping the read and write times of individual<BR>records. I don't think that this is a good way to go (Because of the<BR>problem outlined, plus the fact that you have no way of knowing when it's<BR>safe to purge old versions).<BR><BR>Instead, wouldn't it make more sense to stamp records with a transaction<BR>identifier that indicates when the version was created and then have a<BR>mechanism for determining when the version expires (i.e. a 'valid through'<BR>value for each row) ?<BR><BR>The following criteria is then used for determining which version to pull<BR>for a given tx (copied directly from [1]): the row's creation transaction<BR>ID is a committed transaction and is less than the current transaction<BR>counter, and the row lacks an expiration transaction ID or its expiration<BR>transaction ID was in process at query start.<BR><BR>In [1] they talk about going back and updating the 'expires' value on a<BR>version, but there are better ways to do it (namely, mapping an 'expires'<BR>value to each committed tx and doing a lookup).<BR><BR>- K<BR><BR><BR>[1] <A href="http://linuxgazette.net/issue68/mitchell.html"><FONT color=#0000ff>http://linuxgazette.net/issue68/mitchell.html</FONT></A><BR> <BR> > Kevin,<BR><BR>You can download it free of charge from:<BR><BR><BR><A href="http://www-static.cc.gatech.edu/classes/AY2003/cs8803i_fall/ConcurrencyCont"><FONT color=#0000ff><http://www-static.cc.gatech.edu/classes/AY2003/cs8803i_fall/ConcurrencyCont</FONT></A><BR>r><BR><A href="http://www-static.cc.gatech.edu/classes/AY2003/cs8803i_fall/ConcurrencyContr"><FONT color=#0000ff>http://www-static.cc.gatech.edu/classes/AY2003/cs8803i_fall/ConcurrencyContr</FONT></A><BR>ol.pdf<BR><BR>-bryan<BR><BR>-----Original Message-----<BR>From: <A href="mailto:jdb...@li..."><FONT color=#0000ff><mailto:jdb...@li...></FONT></A><BR><A href="mailto:jdb...@li..."><FONT color=#0000ff>jdb...@li...</FONT></A><BR>To: JDBM Developer listserv<BR>Sent: 2/16/2006 9:09 AM<BR>Subject: re[4]: [Jdbm-developer] MC-DataSafe (in Persistent Store Inte<BR>rface).<BR><BR>Bryan-<BR><BR>I am unable to get a copy of [1] so I can't comment on the figures<BR>therin. Can you please send us an excerpt?<BR><BR>What I can say is that in MVCC it is absolutely permissable for a tx to<BR>modify a row that has already been read by another transaction. Why is<BR>this? Because that other transaction will *always* have it's own view<BR>of the entire database as the database existed when the tx started (plus<BR>it's changes, and only it's changes).<BR><BR>Why does updating of a row by another tx have any correlation whatsoever<BR>with reads being done by another simultaneous tx? These are completely<BR>isolated activities.<BR><BR>If you don't have multi-version (i.e. you are using a simple time<BR>stamping CC mechanism), then the activities are not isolated and you do<BR>have to rollback the tx doing the update at the time of the update (at<BR>least in a pessimistic locking mode).<BR><BR>- K<BR><BR><BR> > Kevin,<BR><BR>I think that we probably need to be much more concrete. However MVCC<BR>does NOT permit a write to create a version which would pre-date a<BR>version which had already been read by another tx. Intuitively such a<BR>write would mean that the read had accessed the incorrect version. This<BR>is the subject of figure 11 in [1]. Are we disagreeing about the<BR>meaning<BR>of figure 11?<BR><BR>-bryan<BR><BR>-----Original Message-----<BR>From: <A href="mailto:jdb...@li..."><FONT color=#0000ff><mailto:jdb...@li...></FONT></A><BR><A href="mailto:jdb...@li..."><FONT color=#0000ff><mailto:jdb...@li...></FONT></A><BR><A href="mailto:jdb...@li..."><FONT color=#0000ff><mailto:jdb...@li...></FONT></A><BR><A href="mailto:jdb...@li..."><FONT color=#0000ff>jdb...@li...</FONT></A><BR>To: ''JDBM Developer listserv ' '<BR>Sent: 2/16/2006 8:35 AM<BR>Subject: re[2]: [Jdbm-developer] MC-DataSafe (in Persistent Store<BR>Interface).<BR><BR>Bryan-<BR><BR>What you are describing is time stamping CC - not MVCC.<BR><BR>In MVCC, it is perfectly legal for t2 to read data that t1 was updated -<BR>that's the primary bennefit of MVCC. It is just not legal for t2 to<BR>*change* data that t1 has updated.<BR><BR>- K<BR><BR><BR> > Alex,<BR><BR>I am sure that we will go around on this any number of times when<BR>getting<BR>into an implementation. However, it is my understanding that if there<BR>is<BR>a tx with a later timestamp, e.g., ts(t2)>ts(t1) then t2 can not read<BR>data which t1 updates since the update would invalidate the read by t2<BR>(t2 would have failed to read the most current version as of the<BR>timestamp<BR>when it started executing). In this case you can either abort t1 (the<BR>writer) or you can block t2 (the reader) until t1 has completed. What<BR>you can not do is permit a writer to write a version of x that has a <BR>timestamp earlier than the most recent read of x -- since that would<BR>invalidate the read by changing the value of x post-factor.<BR><BR>See page 202, Figure 11 "Multiversion reading and writing" [1].<BR><BR>Also [2] outlines some approaches for avoiding rollback (which may not<BR>be very practical) and also suggests a timestamp generation mechanism<BR>that may help to manage version expiration and avoids writing operations<BR>for readers (you do not have to write the reader timestamp into the DB).<BR><BR>-bryan<BR><BR>[1] Bernstein, P. A. and Goodman, N. 1981. Concurrency Control in<BR>Distributed Database Systems. ACM Comput. Surv. 13, 2 (Jun. 1981),<BR>185-221. DOI= <A href="http://doi.acm.org/10.1145/356842.356846"><FONT color=#0000ff><http://doi.acm.org/10.1145/356842.356846></FONT></A><BR><A href="http://doi.acm.org/10.1145/356842.356846"><FONT color=#0000ff><http://doi.acm.org/10.1145/356842.356846></FONT></A><BR><A href="http://doi.acm.org/10.1145/356842.356846"><FONT color=#0000ff><http://doi.acm.org/10.1145/356842.356846></FONT></A><BR><A href="http://doi.acm.org/10.1145/356842.356846"><FONT color=#0000ff><http://doi.acm.org/10.1145/356842.356846></FONT></A><BR><A href="http://doi.acm.org/10.1145/356842.356846"><FONT color=#0000ff><http://doi.acm.org/10.1145/356842.356846></FONT></A><BR><A href="http://doi.acm.org/10.1145/356842.356846"><FONT color=#0000ff><http://doi.acm.org/10.1145/356842.356846></FONT></A><BR><A href="http://doi.acm.org/10.1145/356842.356846"><FONT color=#0000ff><http://doi.acm.org/10.1145/356842.356846></FONT></A><BR><A href="http://doi.acm.org/10.1145/356842.356846"><FONT color=#0000ff>http://doi.acm.org/10.1145/356842.356846</FONT></A><BR><BR><BR><BR><A href="http://www-static.cc.gatech.edu/classes/AY2003/cs8803i_fall/Concurrency"><FONT color=#0000ff><http://www-static.cc.gatech.edu/classes/AY2003/cs8803i_fall/Concurrency></FONT></A><BR><A href="http://www-static.cc.gatech.edu/classes/AY2003/cs8803i_fall/Concurrency"><FONT color=#0000ff><http://www-static.cc.gatech.edu/classes/AY2003/cs8803i_fall/Concurrency</FONT></A><BR>><BR><A href="http://www-static.cc.gatech.edu/classes/AY2003/cs8803i_fall/Concurrency"><FONT color=#0000ff><http://www-static.cc.gatech.edu/classes/AY2003/cs8803i_fall/Concurrency></FONT></A><BR><A href="http://www-static.cc.gatech.edu/classes/AY2003/cs8803i_fall/Concurrency"><FONT color=#0000ff><http://www-static.cc.gatech.edu/classes/AY2003/cs8803i_fall/Concurrency</FONT></A><BR>Contr><BR><BR><A href="http://www-static.cc.gatech.edu/classes/AY2003/cs8803i_fall/Concurrency"><FONT color=#0000ff><http://www-static.cc.gatech.edu/classes/AY2003/cs8803i_fall/Concurrency></FONT></A><BR><A href="http://www-static.cc.gatech.edu/classes/AY2003/cs8803i_fall/Concurrency"><FONT color=#0000ff><http://www-static.cc.gatech.edu/classes/AY2003/cs8803i_fall/Concurrency</FONT></A><BR>C><BR><A href="http://www-static.cc.gatech.edu/classes/AY2003/cs8803i_fall/ConcurrencyC"><FONT color=#0000ff><http://www-static.cc.gatech.edu/classes/AY2003/cs8803i_fall/ConcurrencyC></FONT></A><BR><A href="http://www-static.cc.gatech.edu/classes/AY2003/cs8803i_fall/ConcurrencyC"><FONT color=#0000ff>http://www-static.cc.gatech.edu/classes/AY2003/cs8803i_fall/ConcurrencyC</FONT></A><BR>ontr<BR>ol.pdf<BR><BR>[2] Gael N. Buckley, Abraham Silberschatz: Obtaining Progressive<BR>Protocols for a Simple Multiversion Database Model. VLDB 1983:<BR>74-80 <A href="http://www.vldb.org/conf/1983/P074.PDF"><FONT color=#0000ff><http://www.vldb.org/conf/1983/P074.PDF></FONT></A><BR><A href="http://www.vldb.org/conf/1983/P074.PDF"><FONT color=#0000ff><http://www.vldb.org/conf/1983/P074.PDF></FONT></A><BR><A href="http://www.vldb.org/conf/1983/P074.PDF"><FONT color=#0000ff><http://www.vldb.org/conf/1983/P074.PDF></FONT></A><BR><A href="http://www.vldb.org/conf/1983/P074.PDF"><FONT color=#0000ff><http://www.vldb.org/conf/1983/P074.PDF></FONT></A><BR><A href="http://www.vldb.org/conf/1983/P074.PDF"><FONT color=#0000ff><http://www.vldb.org/conf/1983/P074.PDF></FONT></A><BR><A href="http://www.vldb.org/conf/1983/P074.PDF"><FONT color=#0000ff><http://www.vldb.org/conf/1983/P074.PDF></FONT></A><BR><A href="http://www.vldb.org/conf/1983/P074.PDF"><FONT color=#0000ff><http://www.vldb.org/conf/1983/P074.PDF></FONT></A><BR><A href="http://www.vldb.org/conf/1983/P074.PDF"><FONT color=#0000ff>http://www.vldb.org/conf/1983/P074.PDF</FONT></A><BR><BR>-----Original Message-----<BR>From: Alex Boisvert<BR>To: Thompson, Bryan B.<BR>Cc: 'Kevin Day '; <A href="mailto:jdb...@li..."><FONT color=#0000ff><mailto:jdb...@li...></FONT></A><BR><A href="mailto:jdb...@li..."><FONT color=#0000ff><mailto:jdb...@li...></FONT></A><BR><A href="mailto:jdb...@li..."><FONT color=#0000ff><mailto:jdb...@li...></FONT></A><BR><A href="mailto:jdb...@li..."><FONT color=#0000ff><mailto:jdb...@li...></FONT></A><BR><A href="mailto:jdb...@li..."><FONT color=#0000ff><mailto:jdb...@li...></FONT></A><BR><A href="mailto:jdb...@li..."><FONT color=#0000ff><mailto:jdb...@li...></FONT></A><BR><A href="mailto:jdb...@li..."><FONT color=#0000ff><mailto:jdb...@li...></FONT></A><BR><A href="mailto:jdb...@li..."><FONT color=#0000ff>'jdb...@li...</FONT></A> '; 'JDBM<BR>Developer listserv '<BR>Sent: 2/15/2006 7:42 PM<BR>Subject: Re: [Jdbm-developer] MC-DataSafe (in Persistent Store Inte<BR>rface).<BR><BR>Thompson, Bryan B. wrote:<BR><BR>>It is not quite fair to say that MVCC removes the read bottleneck. A<BR>>reader may have to wait for a writer to commit. This can happen when<BR>>x is updated by t1 and the t2 starts after t1 and wants to read x as<BR>>well. t1 must block until we know whether or not t2 succeeds since (a)<BR>>it can not read the uncommitted version of (x) and (b) if it reads the<BR>>previous version of x then that would violate serializability.<BR>> <BR>><BR><BR>If t2 starts after t1 and t1 has not yet committed, t2 should only<BR>access pre-t1 data, which means that it will not block. t2 can even<BR>complete after t1 commits and this is still a completely serializable<BR>history.<BR><BR>Readers never block writers. Writers never block readers. (Unless you<BR>use locking)<BR><BR>alex<BR><BR><BR>-------------------------------------------------------<BR>This SF.net email is sponsored by: Splunk Inc. Do you grep through log<BR>files<BR>for problems? Stop! Download the new AJAX search engine that makes<BR>searching your log files as easy as surfing the web. DOWNLOAD SPLUNK!<BR><BR><BR><A href="http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=12164"><FONT color=#0000ff><http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=12164></FONT></A><BR><A href="http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=12164"><FONT color=#0000ff><http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=12164</FONT></A><BR>><BR><A href="http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=12164"><FONT color=#0000ff><http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=12164></FONT></A><BR><A href="http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=12164"><FONT color=#0000ff><http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=12164</FONT></A><BR>2><BR><BR><A href="http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=12164"><FONT color=#0000ff><http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=12164></FONT></A><BR><A href="http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=12164"><FONT color=#0000ff><http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=12164</FONT></A><BR>2><BR><A href="http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642"><FONT color=#0000ff><http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642></FONT></A><BR><A href="http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642"><FONT color=#0000ff>http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642</FONT></A><BR>_______________________________________________<BR>Jdbm-developer mailing list<BR><A href="mailto:Jdb...@li..."><FONT color=#0000ff><mailto:Jdb...@li...></FONT></A><BR><A href="mailto:Jdb...@li..."><FONT color=#0000ff><mailto:Jdb...@li...></FONT></A><BR><A href="mailto:Jdb...@li..."><FONT color=#0000ff><mailto:Jdb...@li...></FONT></A><BR><A href="mailto:Jdb...@li..."><FONT color=#0000ff><mailto:Jdb...@li...></FONT></A><BR><A href="mailto:Jdb...@li..."><FONT color=#0000ff><mailto:Jdb...@li...></FONT></A><BR><A href="mailto:Jdb...@li..."><FONT color=#0000ff><mailto:Jdb...@li...></FONT></A><BR><A href="mailto:Jdb...@li..."><FONT color=#0000ff><mailto:Jdb...@li...></FONT></A><BR><A href="mailto:Jdb...@li..."><FONT color=#0000ff>Jdb...@li...</FONT></A><BR><A href="https://lists.sourceforge.net/lists/listinfo/jdbm-developer"><FONT color=#0000ff><https://lists.sourceforge.net/lists/listinfo/jdbm-developer></FONT></A><BR><A href="https://lists.sourceforge.net/lists/listinfo/jdbm-developer"><FONT color=#0000ff><https://lists.sourceforge.net/lists/listinfo/jdbm-developer></FONT></A><BR><A href="https://lists.sourceforge.net/lists/listinfo/jdbm-developer"><FONT color=#0000ff><https://lists.sourceforge.net/lists/listinfo/jdbm-developer></FONT></A><BR><A href="https://lists.sourceforge.net/lists/listinfo/jdbm-developer"><FONT color=#0000ff><https://lists.sourceforge.net/lists/listinfo/jdbm-developer></FONT></A><BR><A href="https://lists.sourceforge.net/lists/listinfo/jdbm-developer"><FONT color=#0000ff><https://lists.sourceforge.net/lists/listinfo/jdbm-developer></FONT></A><BR><A href="https://lists.sourceforge.net/lists/listinfo/jdbm-developer"><FONT color=#0000ff><https://lists.sourceforge.net/lists/listinfo/jdbm-developer></FONT></A><BR><A href="https://lists.sourceforge.net/lists/listinfo/jdbm-developer"><FONT color=#0000ff><https://lists.sourceforge.net/lists/listinfo/jdbm-developer></FONT></A><BR><A href="https://lists.sourceforge.net/lists/listinfo/jdbm-developer"><FONT color=#0000ff>https://lists.sourceforge.net/lists/listinfo/jdbm-developer</FONT></A><BR><BR><<BR> <BR>------------------------------------------------------- This SF.net<BR>email is sponsored by: Splunk Inc. Do you grep through log files for<BR>problems? Stop! Download the new AJAX search engine that makes searching<BR>your log files as easy as surfing the web. DOWNLOAD SPLUNK!<BR><BR><A href="http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=12164"><FONT color=#0000ff><http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=12164></FONT></A><BR><A href="http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=12164"><FONT color=#0000ff><http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=12164</FONT></A><BR>2><BR><A href="http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642"><FONT color=#0000ff><http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642></FONT></A><BR><A href="http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642"><FONT color=#0000ff>http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642</FONT></A><BR>_______________________________________________ Jdbm-developer mailing<BR>list <A href="mailto:Jdb...@li..."><FONT color=#0000ff><mailto:Jdb...@li...></FONT></A><BR><A href="mailto:Jdb...@li..."><FONT color=#0000ff><mailto:Jdb...@li...></FONT></A><BR><A href="mailto:Jdb...@li..."><FONT color=#0000ff><mailto:Jdb...@li...></FONT></A><BR><A href="mailto:Jdb...@li..."><FONT color=#0000ff>Jdb...@li...</FONT></A><BR><A href="https://lists.sourceforge.net/lists/listinfo/jdbm-developer"><FONT color=#0000ff><https://lists.sourceforge.net/lists/listinfo/jdbm-developer></FONT></A><BR><A href="https://lists.sourceforge.net/lists/listinfo/jdbm-developer"><FONT color=#0000ff><https://lists.sourceforge.net/lists/listinfo/jdbm-developer></FONT></A><BR><A href="https://lists.sourceforge.net/lists/listinfo/jdbm-developer"><FONT color=#0000ff><https://lists.sourceforge.net/lists/listinfo/jdbm-developer></FONT></A><BR><A href="https://lists.sourceforge.net/lists/listinfo/jdbm-developer"><FONT color=#0000ff>https://lists.sourceforge.net/lists/listinfo/jdbm-developer</FONT></A><BR><BR><<BR> <BR>------------------------------------------------------- This SF.net<BR>email is sponsored by: Splunk Inc. Do you grep through log files for<BR>problems? Stop! Download the new AJAX search engine that makes searching<BR>your log files as easy as surfing the web. DOWNLOAD SPLUNK!<BR><A href="http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642"><FONT color=#0000ff><http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642></FONT></A><BR><A href="http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642"><FONT color=#0000ff>http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642</FONT></A><BR>_______________________________________________ Jdbm-developer mailing<BR>list <A href="mailto:Jdb...@li..."><FONT color=#0000ff><mailto:Jdb...@li...></FONT></A><BR><A href="mailto:Jdb...@li..."><FONT color=#0000ff>Jdb...@li...</FONT></A><BR><A href="https://lists.sourceforge.net/lists/listinfo/jdbm-developer"><FONT color=#0000ff><https://lists.sourceforge.net/lists/listinfo/jdbm-developer></FONT></A><BR><A href="https://lists.sourceforge.net/lists/listinfo/jdbm-developer"><FONT color=#0000ff>https://lists.sourceforge.net/lists/listinfo/jdbm-developer</FONT></A><BR><BR><<BR> <BR>------------------------------------------------------- This SF.net email is<BR>sponsored by: Splunk Inc. Do you grep through log files for problems? Stop!<BR>Download the new AJAX search engine that makes searching your log files as<BR>easy as surfing the web. DOWNLOAD SPLUNK!<BR><A href="http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642"><FONT color=#0000ff>http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642</FONT></A><BR>_______________________________________________ Jdbm-developer mailing list<BR><A href="mailto:Jdb...@li..."><FONT color=#0000ff>Jdb...@li...</FONT></A><BR><A href="https://lists.sourceforge.net/lists/listinfo/jdbm-developer"><FONT color=#0000ff>https://lists.sourceforge.net/lists/listinfo/jdbm-developer</FONT></A><BR><BR><BR><BR>-------------------------------------------------------<BR>This SF.net email is sponsored by: Splunk Inc. Do you grep through log files<BR>for problems? Stop! Download the new AJAX search engine that makes<BR>searching your log files as easy as surfing the web. DOWNLOAD SPLUNK!<BR><A href="http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642"><FONT color=#0000ff>http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642</FONT></A><BR>_______________________________________________<BR>Jdbm-developer mailing list<BR><A href="mailto:Jdb...@li..."><FONT color=#0000ff>Jdb...@li...</FONT></A><BR><A href="https://lists.sourceforge.net/lists/listinfo/jdbm-developer"><FONT color=#0000ff>https://lists.sourceforge.net/lists/listinfo/jdbm-developer</FONT></A><BR><BR><<BR></FONT></FONT></TD></TR></TBODY></TABLE></DIV></FONT></BODY></HTML> |