<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: Multiversion Concurrency Control Before InterBase</title>
	<atom:link href="http://blogs.teamb.com/craigstuntz/2005/02/18/2699/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.teamb.com/craigstuntz/2005/02/18/2699/</link>
	<description>News of interest to Delphi, .NET, and InterBase programmers</description>
	<pubDate>Wed, 07 Jan 2009 01:40:46 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.2</generator>
		<item>
		<title>By: Duke Ganote</title>
		<link>http://blogs.teamb.com/craigstuntz/2005/02/18/2699/#comment-419</link>
		<dc:creator>Duke Ganote</dc:creator>
		<pubDate>Mon, 10 Oct 2005 17:34:39 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.teamb.com/craigstuntz/2005/02/18/2697/#comment-419</guid>
		<description>Jacob's additional comments on Oracle v3 can be found at&lt;br&gt;&lt;a rel="nofollow" target="_new" href="http://asktom.oracle.com/pls/ask/f?p=4950:8:::::F4950_P8_DISPLAYID:49361026453314#49411709820488"&gt;http://asktom.oracle.com/pls/ask/f?p=4950:8:::::F4950_P8_DISPLAYID:49361026453314#49411709820488&lt;/a&gt;</description>
		<content:encoded><![CDATA[<p>Jacob&#8217;s additional comments on Oracle v3 can be found at<br />
<br /><a rel="nofollow" target="_new" href="http://asktom.oracle.com/pls/ask/f?p=4950:8:::::F4950_P8_DISPLAYID:49361026453314#49411709820488">http://asktom.oracle.com/pls/ask/f?p=4950:8:::::F4950_P8_DISPLAYID:49361026453314#49411709820488</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Duke Ganote</title>
		<link>http://blogs.teamb.com/craigstuntz/2005/02/18/2699/#comment-418</link>
		<dc:creator>Duke Ganote</dc:creator>
		<pubDate>Mon, 10 Oct 2005 15:52:39 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.teamb.com/craigstuntz/2005/02/18/2697/#comment-418</guid>
		<description>Concur: &#34;read consistency&#34; is the goal -- MVCC is one means of achieving it; locking is another.  However, I'm guessing Oracle was using MVCC in Version 4.  Note the latter part of Jacob's description of the *prior* version: &#34;Oracle version 3 also introduced nonblocking queries, using data saved in a &#34;before image file&#34; for both queries and transaction rollback, thus avoiding the use of read locks (even though its throughput was limited by use of table-level locking).&#34;</description>
		<content:encoded><![CDATA[<p>Concur: &quot;read consistency&quot; is the goal &#8212; MVCC is one means of achieving it; locking is another.  However, I&#8217;m guessing Oracle was using MVCC in Version 4.  Note the latter part of Jacob&#8217;s description of the *prior* version: &quot;Oracle version 3 also introduced nonblocking queries, using data saved in a &quot;before image file&quot; for both queries and transaction rollback, thus avoiding the use of read locks (even though its throughput was limited by use of table-level locking).&quot;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Craig Stuntz</title>
		<link>http://blogs.teamb.com/craigstuntz/2005/02/18/2699/#comment-417</link>
		<dc:creator>Craig Stuntz</dc:creator>
		<pubDate>Mon, 10 Oct 2005 13:56:07 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.teamb.com/craigstuntz/2005/02/18/2697/#comment-417</guid>
		<description>Duke, read consistency isn't *necessarily* the same thing as MVCC; SQL Server does it today without multi-versioning, and from the sound of Jim Starkey's comments Prime used a limited form of multi-versioning for reading only. I don't know what technology Oracle used in 1984, though.&lt;br&gt;&lt;br&gt;Most people, I think, interpret MVCC as an alternative to two-phase locking for both reading and writing data.</description>
		<content:encoded><![CDATA[<p>Duke, read consistency isn&#8217;t *necessarily* the same thing as MVCC; SQL Server does it today without multi-versioning, and from the sound of Jim Starkey&#8217;s comments Prime used a limited form of multi-versioning for reading only. I don&#8217;t know what technology Oracle used in 1984, though.</p>
<p>Most people, I think, interpret MVCC as an alternative to two-phase locking for both reading and writing data.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Duke Ganote</title>
		<link>http://blogs.teamb.com/craigstuntz/2005/02/18/2699/#comment-416</link>
		<dc:creator>Duke Ganote</dc:creator>
		<pubDate>Mon, 10 Oct 2005 13:10:48 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.teamb.com/craigstuntz/2005/02/18/2697/#comment-416</guid>
		<description>Ken Jacob's history of the Oracle DBMS claims that Oracle Version 4, dated Oct 1984, had &#34;read consistency&#34; / MVCC.  See &lt;a rel="nofollow" target="_new" href="http://www.oracle.com/technology/oramag/oracle/03-may/o33drdba.html"&gt;http://www.oracle.com/technology/oramag/oracle/03-may/o33drdba.html&lt;/a&gt;</description>
		<content:encoded><![CDATA[<p>Ken Jacob&#8217;s history of the Oracle DBMS claims that Oracle Version 4, dated Oct 1984, had &quot;read consistency&quot; / MVCC.  See <a rel="nofollow" target="_new" href="http://www.oracle.com/technology/oramag/oracle/03-may/o33drdba.html">http://www.oracle.com/technology/oramag/oracle/03-may/o33drdba.html</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Craig Stuntz</title>
		<link>http://blogs.teamb.com/craigstuntz/2005/02/18/2699/#comment-286</link>
		<dc:creator>Craig Stuntz</dc:creator>
		<pubDate>Mon, 21 Feb 2005 12:48:53 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.teamb.com/craigstuntz/2005/02/18/2697/#comment-286</guid>
		<description>I have updated the post based on Jim's comments. The last two paragraphs originally read:&#60;blockquote&#62;It seems that the idea of multiversion concurrency control and recovery is somewhat older than &lt;a title="Borland InterBase home page" href="http://www.borland.com/interbase" &gt;InterBase&lt;/a&gt;. I haven't found any commercial implementations of MVCC prior to InterBase, but Reed seems to have written a noncommercial application.&#60;br&#62;&lt;br&gt;&#60;br&#62;&lt;br&gt;It not clear whether or not any of this previous work influenced InterBase, or whether Jim Starkey came up with the same ideas independently, later on.&#60;/blockquote&#62;</description>
		<content:encoded><![CDATA[<p>I have updated the post based on Jim&#8217;s comments. The last two paragraphs originally read:&lt;blockquote&gt;It seems that the idea of multiversion concurrency control and recovery is somewhat older than <a title="Borland InterBase home page" href="http://www.borland.com/interbase" >InterBase</a>. I haven&#8217;t found any commercial implementations of MVCC prior to InterBase, but Reed seems to have written a noncommercial application.&lt;br&gt;<br />
<br />&lt;br&gt;<br />
<br />It not clear whether or not any of this previous work influenced InterBase, or whether Jim Starkey came up with the same ideas independently, later on.&lt;/blockquote&gt;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Craig Stuntz</title>
		<link>http://blogs.teamb.com/craigstuntz/2005/02/18/2699/#comment-285</link>
		<dc:creator>Craig Stuntz</dc:creator>
		<pubDate>Mon, 21 Feb 2005 12:33:38 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.teamb.com/craigstuntz/2005/02/18/2697/#comment-285</guid>
		<description>Jim, thanks for your comments. I'll update the post to remove some of the ambiguity / speculation. In case you're still interested in reading Reed's paper, note that I have linked the full text.</description>
		<content:encoded><![CDATA[<p>Jim, thanks for your comments. I&#8217;ll update the post to remove some of the ambiguity / speculation. In case you&#8217;re still interested in reading Reed&#8217;s paper, note that I have linked the full text.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jim Starkey</title>
		<link>http://blogs.teamb.com/craigstuntz/2005/02/18/2699/#comment-284</link>
		<dc:creator>Jim Starkey</dc:creator>
		<pubDate>Mon, 21 Feb 2005 12:18:25 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.teamb.com/craigstuntz/2005/02/18/2697/#comment-284</guid>
		<description>Nat and I overlapped at CCA in the mid-1970s before I went to DEC.  The SDD-1 project with Dave Shipman, and Jim Rothnie came much later.  Bernstein collaborated, but was then an assistant professor at Harvard, not a CCA employee.&lt;br&gt;&lt;br&gt;Bernstein was later hired by DEC, who had funded much of his earlier research.  He had published a claiming there only two or three four ways to concurrency control, only so many ways to recovery, etc., so there were only a small number of ways to write a database system, so people were wasting their time thinking out it any.  We argued quite a bit since Rdb/ELN essentially broke his argument.  He eventually conceded the point (this was around 1983/84).&lt;br&gt;&lt;br&gt;He never mentioned an earlier paper on multi-generational concurrency control, and I was certainly unaware of it.  It would have been very interesting reading.&lt;br&gt;&lt;br&gt;As for pre-Interbase commercial use of multi-generational concurrency control, of course there was one -- DEC's Rdb/ELN.  Not only did it use much the same technology as &lt;a title="Borland InterBase home page" href="http://www.borland.com/interbase" &gt;InterBase&lt;/a&gt;, it was also called JRD.&lt;br&gt;&lt;br&gt;The inspiration for multi-generational concurrency control was a database system done by Prime that supported page level snapshots.  The intention of the feature was to give a reader a consistent view of the database without blocking writers.  The idea intrigued me as a very useful characteristic of a database system.  Sometime later, and I member the exact instant, it occurred to me that a single mechanism could be used to provide a static snapshot, provide a transaction recovery mechanism, and handle concurrency control.  The DEC JRD started a few days later as an advanced development project, and was later picked up by DEC's storage systems as the software core for a database machines based on the HSC disk controller, code named &#34;Hawk&#34;.  The first product in the family was Jayhawk, a dedicated server implementation on the MicroVax-II using Dave Cutler's VAX Eln operating system.  Cutler took a fancy to JRD and decided he'd rather have a full blown relational database than an ISAM system, so we agreed to do a first release on ELN and ELN's development system, VMS.</description>
		<content:encoded><![CDATA[<p>Nat and I overlapped at CCA in the mid-1970s before I went to DEC.  The SDD-1 project with Dave Shipman, and Jim Rothnie came much later.  Bernstein collaborated, but was then an assistant professor at Harvard, not a CCA employee.</p>
<p>Bernstein was later hired by DEC, who had funded much of his earlier research.  He had published a claiming there only two or three four ways to concurrency control, only so many ways to recovery, etc., so there were only a small number of ways to write a database system, so people were wasting their time thinking out it any.  We argued quite a bit since Rdb/ELN essentially broke his argument.  He eventually conceded the point (this was around 1983/84).</p>
<p>He never mentioned an earlier paper on multi-generational concurrency control, and I was certainly unaware of it.  It would have been very interesting reading.</p>
<p>As for pre-Interbase commercial use of multi-generational concurrency control, of course there was one &#8212; DEC&#8217;s Rdb/ELN.  Not only did it use much the same technology as <a title="Borland InterBase home page" href="http://www.borland.com/interbase" >InterBase</a>, it was also called JRD.</p>
<p>The inspiration for multi-generational concurrency control was a database system done by Prime that supported page level snapshots.  The intention of the feature was to give a reader a consistent view of the database without blocking writers.  The idea intrigued me as a very useful characteristic of a database system.  Sometime later, and I member the exact instant, it occurred to me that a single mechanism could be used to provide a static snapshot, provide a transaction recovery mechanism, and handle concurrency control.  The DEC JRD started a few days later as an advanced development project, and was later picked up by DEC&#8217;s storage systems as the software core for a database machines based on the HSC disk controller, code named &quot;Hawk&quot;.  The first product in the family was Jayhawk, a dedicated server implementation on the MicroVax-II using Dave Cutler&#8217;s VAX Eln operating system.  Cutler took a fancy to JRD and decided he&#8217;d rather have a full blown relational database than an ISAM system, so we agreed to do a first release on ELN and ELN&#8217;s development system, VMS.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Craig Stuntz</title>
		<link>http://blogs.teamb.com/craigstuntz/2005/02/18/2699/#comment-41</link>
		<dc:creator>Craig Stuntz</dc:creator>
		<pubDate>Mon, 21 Feb 2005 12:00:15 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.teamb.com/craigstuntz/2005/02/18/2697/#comment-41</guid>
		<description>Ann is correctly describing U.S. patent law; my comment about what the USPTO actually does was (mostly) intended as humor.</description>
		<content:encoded><![CDATA[<p>Ann is correctly describing U.S. patent law; my comment about what the USPTO actually does was (mostly) intended as humor.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ann Harrison</title>
		<link>http://blogs.teamb.com/craigstuntz/2005/02/18/2699/#comment-40</link>
		<dc:creator>Ann Harrison</dc:creator>
		<pubDate>Mon, 21 Feb 2005 11:46:42 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.teamb.com/craigstuntz/2005/02/18/2697/#comment-40</guid>
		<description>&lt;br&gt;The patent issue is moot.  The USPTO has many flaws, but it does require that an invention be patented within a reasonable amount of time (1 year?) after its first commercial use.  Rdb/ELN was released in 1984, using exactlly the same MVCC that &lt;a title="Borland InterBase home page" href="http://www.borland.com/interbase" &gt;InterBase&lt;/a&gt; uses, so that window is well passed.</description>
		<content:encoded><![CDATA[<p>The patent issue is moot.  The USPTO has many flaws, but it does require that an invention be patented within a reasonable amount of time (1 year?) after its first commercial use.  Rdb/ELN was released in 1984, using exactlly the same MVCC that <a title="Borland InterBase home page" href="http://www.borland.com/interbase" >InterBase</a> uses, so that window is well passed.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Craig Stuntz</title>
		<link>http://blogs.teamb.com/craigstuntz/2005/02/18/2699/#comment-283</link>
		<dc:creator>Craig Stuntz</dc:creator>
		<pubDate>Mon, 21 Feb 2005 10:34:52 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.teamb.com/craigstuntz/2005/02/18/2697/#comment-283</guid>
		<description>If anyone has patented the technique, it's news to me. Of course, with the way the USPTO is run, someone could probably patent it tomorrow....</description>
		<content:encoded><![CDATA[<p>If anyone has patented the technique, it&#8217;s news to me. Of course, with the way the USPTO is run, someone could probably patent it tomorrow&#8230;.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
