<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: VoltDB versus NoSQL</title>
	<atom:link href="http://danweinreb.org/blog/voltdb-versus-nosql/feed" rel="self" type="application/rss+xml" />
	<link>http://danweinreb.org/blog/voltdb-versus-nosql</link>
	<description>Software and Innovation</description>
	<lastBuildDate>Sun, 10 Jul 2011 14:13:09 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
	<item>
		<title>By: Tom G</title>
		<link>http://danweinreb.org/blog/voltdb-versus-nosql/comment-page-1#comment-74695</link>
		<dc:creator>Tom G</dc:creator>
		<pubDate>Thu, 05 May 2011 19:04:53 +0000</pubDate>
		<guid isPermaLink="false">http://danweinreb.org/blog/?p=345#comment-74695</guid>
		<description>Additional problem with ad-hoc - code injection.  If it can be defined and executed, it&#039;s a problem.

Oracle has had this issue with PL/SQL since it was introduced.</description>
		<content:encoded><![CDATA[<p>Additional problem with ad-hoc &#8211; code injection.  If it can be defined and executed, it&#8217;s a problem.</p>
<p>Oracle has had this issue with PL/SQL since it was introduced.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ehcache.net</title>
		<link>http://danweinreb.org/blog/voltdb-versus-nosql/comment-page-1#comment-66584</link>
		<dc:creator>ehcache.net</dc:creator>
		<pubDate>Mon, 14 Mar 2011 13:11:03 +0000</pubDate>
		<guid isPermaLink="false">http://danweinreb.org/blog/?p=345#comment-66584</guid>
		<description>&lt;strong&gt;VoltDB versus NoSQL...&lt;/strong&gt;

Mike Stonebraker is the co-founder and CTO of VoltDB, which makes a novel on-line transaction processing (OLTP) relational database management system (RDBMS). He recently gave a talk entitled “VoltDB Decapitates Six SQL Urban Myths”. You can read the s...</description>
		<content:encoded><![CDATA[<p><strong>VoltDB versus NoSQL&#8230;</strong></p>
<p>Mike Stonebraker is the co-founder and CTO of VoltDB, which makes a novel on-line transaction processing (OLTP) relational database management system (RDBMS). He recently gave a talk entitled “VoltDB Decapitates Six SQL Urban Myths”. You can read the s&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: NoSQL Daily &#8211; Wed Sep 15 &#8250; PHP App Engine</title>
		<link>http://danweinreb.org/blog/voltdb-versus-nosql/comment-page-1#comment-50505</link>
		<dc:creator>NoSQL Daily &#8211; Wed Sep 15 &#8250; PHP App Engine</dc:creator>
		<pubDate>Wed, 15 Sep 2010 08:16:19 +0000</pubDate>
		<guid isPermaLink="false">http://danweinreb.org/blog/?p=345#comment-50505</guid>
		<description>[...] Dan Weinreb&#8217;s blog &#187; Blog Archive &#187; VoltDB versus NoSQL [...]</description>
		<content:encoded><![CDATA[<p>[...] Dan Weinreb&#8217;s blog &raquo; Blog Archive &raquo; VoltDB versus NoSQL [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Delicious Bookmarks for July 27th from 13:30 to 13:34 &#171; Lâmôlabs</title>
		<link>http://danweinreb.org/blog/voltdb-versus-nosql/comment-page-1#comment-48235</link>
		<dc:creator>Delicious Bookmarks for July 27th from 13:30 to 13:34 &#171; Lâmôlabs</dc:creator>
		<pubDate>Tue, 27 Jul 2010 18:03:18 +0000</pubDate>
		<guid isPermaLink="false">http://danweinreb.org/blog/?p=345#comment-48235</guid>
		<description>[...] Dan Weinreb&#8217;s blog &#187; Blog Archive &#187; VoltDB versus NoSQL &#8211; July 27th  %(postalicious-tags)( tags: nosql database scalability voltdb comparison )% [...]</description>
		<content:encoded><![CDATA[<p>[...] Dan Weinreb&rsquo;s blog &raquo; Blog Archive &raquo; VoltDB versus NoSQL &#8211; July 27th  %(postalicious-tags)( tags: nosql database scalability voltdb comparison )% [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John Hugg</title>
		<link>http://danweinreb.org/blog/voltdb-versus-nosql/comment-page-1#comment-48166</link>
		<dc:creator>John Hugg</dc:creator>
		<pubDate>Wed, 21 Jul 2010 17:32:12 +0000</pubDate>
		<guid isPermaLink="false">http://danweinreb.org/blog/?p=345#comment-48166</guid>
		<description>@Dan Weinreb: Yes, I&#039;ve read the Gilbert and Lynch paper and have followed much of the recent discussion around the web on the CAP theorem. I guess my position is that the CAP theorem is useful from a common sense perspective. I get how you can’t have all three, but the “pick two” mentality has never made all that much sense to me in terms of real systems. 

VoltDB is clearly interested in &quot;C&quot;, but it&#039;s not cleanly &quot;CP&quot; or &quot;CA&quot;. It will stay available in the face of many partitions/failures, but there are some scenarios where it will stop service if it can&#039;t guarantee &quot;C&quot;.

That said, it&#039;s our goal to make failures that stop service as avoidable as possible.</description>
		<content:encoded><![CDATA[<p>@Dan Weinreb: Yes, I&#8217;ve read the Gilbert and Lynch paper and have followed much of the recent discussion around the web on the CAP theorem. I guess my position is that the CAP theorem is useful from a common sense perspective. I get how you can’t have all three, but the “pick two” mentality has never made all that much sense to me in terms of real systems. </p>
<p>VoltDB is clearly interested in &#8220;C&#8221;, but it&#8217;s not cleanly &#8220;CP&#8221; or &#8220;CA&#8221;. It will stay available in the face of many partitions/failures, but there are some scenarios where it will stop service if it can&#8217;t guarantee &#8220;C&#8221;.</p>
<p>That said, it&#8217;s our goal to make failures that stop service as avoidable as possible.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dan Weinreb</title>
		<link>http://danweinreb.org/blog/voltdb-versus-nosql/comment-page-1#comment-48060</link>
		<dc:creator>Dan Weinreb</dc:creator>
		<pubDate>Thu, 15 Jul 2010 12:07:46 +0000</pubDate>
		<guid isPermaLink="false">http://danweinreb.org/blog/?p=345#comment-48060</guid>
		<description>@John Hugg: I just want to emphasize again that &quot;P&quot; in the Gilbert and Lynch paper refers not merely to &quot;split-brain&quot; scenarios, but actually to any node or network failure whatsoever.  For VoltDB, which is a &quot;CA&quot; system, that means if you want to get &quot;CA&quot;, you have to show that the system remains &quot;CA&quot; in the face of network or node failures.  (See my next blog post.) From a practical point of view, as Mike Stonebraker has pointed out, the network and nodes need only be as fail-proof as other failures modes that are inevitable (well, they should be better than that to some degree); they do not need to be perfect.  But none of us needs a fancy proof to know that!

Everything you say makes complete sense to me, and I&#039;m happy to hear that the general transactions work properly.  That must have required a lot of good engineering!  I&#039;m glad to hear things are going so well.</description>
		<content:encoded><![CDATA[<p>@John Hugg: I just want to emphasize again that &#8220;P&#8221; in the Gilbert and Lynch paper refers not merely to &#8220;split-brain&#8221; scenarios, but actually to any node or network failure whatsoever.  For VoltDB, which is a &#8220;CA&#8221; system, that means if you want to get &#8220;CA&#8221;, you have to show that the system remains &#8220;CA&#8221; in the face of network or node failures.  (See my next blog post.) From a practical point of view, as Mike Stonebraker has pointed out, the network and nodes need only be as fail-proof as other failures modes that are inevitable (well, they should be better than that to some degree); they do not need to be perfect.  But none of us needs a fancy proof to know that!</p>
<p>Everything you say makes complete sense to me, and I&#8217;m happy to hear that the general transactions work properly.  That must have required a lot of good engineering!  I&#8217;m glad to hear things are going so well.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John Hugg</title>
		<link>http://danweinreb.org/blog/voltdb-versus-nosql/comment-page-1#comment-48025</link>
		<dc:creator>John Hugg</dc:creator>
		<pubDate>Tue, 13 Jul 2010 14:18:53 +0000</pubDate>
		<guid isPermaLink="false">http://danweinreb.org/blog/?p=345#comment-48025</guid>
		<description>@Dan Weinreb: We expect the first versions of VoltDB will be deployed on a single switch in a single rack (&lt;40 nodes). When we roll out WAN support, we plan to support multiple single-switch-based clusters, each with a full copy of the data. We use TCP/IP networking, so we expect the primary failures to be individual nodes, or clusters as a whole. “Two-brain” network partitions, as Alex puts it, should be extremely rare within a rack. Two-brain scenarios are easier to run into over the WAN, but that’s true for most redundant systems today and there are ways of mitigating that pain.

Over time we will, as you say, be more careful with partition placement, and support clusters that span racks with lots of machines. This is actually particularly interesting in some of the public clouds available, as they don’t give you all the information you might like yet.

Still, we have yet to run into a use case that would need more than 20 nodes or so. We have no problem doing millions of multi-statement transactions per second on a cluster that size, and individual machines aren’t getting slower over time.  One nice thing about being more than an order of magnitude faster is that you need many fewer machines.

Re transaction types: VoltDB asks the developer to classify transactions as either single-partition or multi-partition. We do support fully general transactions with multiple round trips, but they are of course, much slower. One thing we allow the developer to to is to tag a batch of SQL as the “final” batch for a transaction. This hint allows VoltDB to combine some cleanup work and can eliminate a round trip on the network. For a transaction with a single batch of SQL (one or more statements with no Java in between), this hint allows for the transaction to often complete in one round trip. These are the “one-shot” transactions we used to talk about.

Thanks for the well wishes. Things are good at VoltDB. Congrats on the Google purchase.</description>
		<content:encoded><![CDATA[<p>@Dan Weinreb: We expect the first versions of VoltDB will be deployed on a single switch in a single rack (&lt;40 nodes). When we roll out WAN support, we plan to support multiple single-switch-based clusters, each with a full copy of the data. We use TCP/IP networking, so we expect the primary failures to be individual nodes, or clusters as a whole. “Two-brain” network partitions, as Alex puts it, should be extremely rare within a rack. Two-brain scenarios are easier to run into over the WAN, but that’s true for most redundant systems today and there are ways of mitigating that pain.</p>
<p>Over time we will, as you say, be more careful with partition placement, and support clusters that span racks with lots of machines. This is actually particularly interesting in some of the public clouds available, as they don’t give you all the information you might like yet.</p>
<p>Still, we have yet to run into a use case that would need more than 20 nodes or so. We have no problem doing millions of multi-statement transactions per second on a cluster that size, and individual machines aren’t getting slower over time.  One nice thing about being more than an order of magnitude faster is that you need many fewer machines.</p>
<p>Re transaction types: VoltDB asks the developer to classify transactions as either single-partition or multi-partition. We do support fully general transactions with multiple round trips, but they are of course, much slower. One thing we allow the developer to to is to tag a batch of SQL as the “final” batch for a transaction. This hint allows VoltDB to combine some cleanup work and can eliminate a round trip on the network. For a transaction with a single batch of SQL (one or more statements with no Java in between), this hint allows for the transaction to often complete in one round trip. These are the “one-shot” transactions we used to talk about.</p>
<p>Thanks for the well wishes. Things are good at VoltDB. Congrats on the Google purchase.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dan Weinreb</title>
		<link>http://danweinreb.org/blog/voltdb-versus-nosql/comment-page-1#comment-48024</link>
		<dc:creator>Dan Weinreb</dc:creator>
		<pubDate>Tue, 13 Jul 2010 12:37:08 +0000</pubDate>
		<guid isPermaLink="false">http://danweinreb.org/blog/?p=345#comment-48024</guid>
		<description>@John Hugg: VoltDB cannot simply be &quot;CA&quot;, since that would mean it is &quot;CA&quot; only if there are never node crashes and the network never loses messages (see my next blog post, about what the CAP theorem means).  VoltDB must also have some form of &quot;weaker&quot; protection against such failures.  Replicas are one part of this.  One must be careful about where to put replicas, taking into account which failures are independent of other failures (so that the hosts of both replicas don&#039;t crash together due to a single failure).  The Technical Overview says that it does replicas automatically, but surely it has to be told things about which boxes are on the same network switch and so on, for it to make wise choices by itself.

VoltDB also guarantees more than the &quot;C&quot; of the paper.  Their &quot;C&quot; is only linearizability.  VoltDB provides actual transactions, which provide linearizability but much more.

I have a question.  VoltDB is based, at least to some degree, on H-Store.  H-Store was a university prototype, of about two years ago. The H-Store paper that I read talked about three kinds of queries (&quot;transaction classes&quot;): single-sited, one-shot, and general.  Is the one-shot concept in VoltDB?  Does VoltDB do general transactions (even if they&#039;re not recommended and don&#039;t claim to be fast)?

Thanks!  VoltDB so novel and cool!  I hope everything is going great at VoltDB.</description>
		<content:encoded><![CDATA[<p>@John Hugg: VoltDB cannot simply be &#8220;CA&#8221;, since that would mean it is &#8220;CA&#8221; only if there are never node crashes and the network never loses messages (see my next blog post, about what the CAP theorem means).  VoltDB must also have some form of &#8220;weaker&#8221; protection against such failures.  Replicas are one part of this.  One must be careful about where to put replicas, taking into account which failures are independent of other failures (so that the hosts of both replicas don&#8217;t crash together due to a single failure).  The Technical Overview says that it does replicas automatically, but surely it has to be told things about which boxes are on the same network switch and so on, for it to make wise choices by itself.</p>
<p>VoltDB also guarantees more than the &#8220;C&#8221; of the paper.  Their &#8220;C&#8221; is only linearizability.  VoltDB provides actual transactions, which provide linearizability but much more.</p>
<p>I have a question.  VoltDB is based, at least to some degree, on H-Store.  H-Store was a university prototype, of about two years ago. The H-Store paper that I read talked about three kinds of queries (&#8220;transaction classes&#8221;): single-sited, one-shot, and general.  Is the one-shot concept in VoltDB?  Does VoltDB do general transactions (even if they&#8217;re not recommended and don&#8217;t claim to be fast)?</p>
<p>Thanks!  VoltDB so novel and cool!  I hope everything is going great at VoltDB.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alex Feinberg</title>
		<link>http://danweinreb.org/blog/voltdb-versus-nosql/comment-page-1#comment-48009</link>
		<dc:creator>Alex Feinberg</dc:creator>
		<pubDate>Mon, 12 Jul 2010 20:24:05 +0000</pubDate>
		<guid isPermaLink="false">http://danweinreb.org/blog/?p=345#comment-48009</guid>
		<description>@John Hugg:

&quot;Neither failure scenario is great, but for most apps, one scenario is much worse than the other. That’s why we believe there’s a place for both kinds of systems.&quot;

In &quot;violent agreement&quot; on this.</description>
		<content:encoded><![CDATA[<p>@John Hugg:</p>
<p>&#8220;Neither failure scenario is great, but for most apps, one scenario is much worse than the other. That’s why we believe there’s a place for both kinds of systems.&#8221;</p>
<p>In &#8220;violent agreement&#8221; on this.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jmart</title>
		<link>http://danweinreb.org/blog/voltdb-versus-nosql/comment-page-1#comment-48002</link>
		<dc:creator>jmart</dc:creator>
		<pubDate>Mon, 12 Jul 2010 18:37:28 +0000</pubDate>
		<guid isPermaLink="false">http://danweinreb.org/blog/?p=345#comment-48002</guid>
		<description>re: round trip and stored procedures: one thing that is completely missed in this discussion is that the client-side jdbc impl can and should cache information thereby eliminating the extra round-trips that stonebraker suggests. only a brain-deal developer would create a jdbc impl that doesn&#039;t batch rows between the client and the server. i&#039;m sure all commercial vendors do this. it is disingenuous for stonebraker to suggest that jdbc/odbc is inherently slow because it is primarily iterator oriented (has batch interfaces too).</description>
		<content:encoded><![CDATA[<p>re: round trip and stored procedures: one thing that is completely missed in this discussion is that the client-side jdbc impl can and should cache information thereby eliminating the extra round-trips that stonebraker suggests. only a brain-deal developer would create a jdbc impl that doesn&#8217;t batch rows between the client and the server. i&#8217;m sure all commercial vendors do this. it is disingenuous for stonebraker to suggest that jdbc/odbc is inherently slow because it is primarily iterator oriented (has batch interfaces too).</p>
]]></content:encoded>
	</item>
</channel>
</rss>

