<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>DBMS 2 : DataBase Management System Services &#187; Michael Stonebraker</title>
	<atom:link href="http://www.dbms2.com/category/michael-stonebraker/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.dbms2.com</link>
	<description>Choices in data management and analysis</description>
	<lastBuildDate>Tue, 07 Feb 2012 06:49:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.3</generator>
		<item>
		<title>Soundbites: the Facebook/MySQL/NoSQL/VoltDB/Stonebraker flap, continued</title>
		<link>http://www.dbms2.com/2011/07/15/facebook-mysql-nosql-voltdb-stonebraker/</link>
		<comments>http://www.dbms2.com/2011/07/15/facebook-mysql-nosql-voltdb-stonebraker/#comments</comments>
		<pubDate>Fri, 15 Jul 2011 08:27:18 +0000</pubDate>
		<dc:creator>Curt Monash</dc:creator>
				<category><![CDATA[Akiban]]></category>
		<category><![CDATA[Cache]]></category>
		<category><![CDATA[Cassandra]]></category>
		<category><![CDATA[Clustrix]]></category>
		<category><![CDATA[Couchbase]]></category>
		<category><![CDATA[Data models and architecture]]></category>
		<category><![CDATA[Database diversity]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[HBase]]></category>
		<category><![CDATA[In-memory DBMS]]></category>
		<category><![CDATA[Michael Stonebraker]]></category>
		<category><![CDATA[MongoDB and 10gen]]></category>
		<category><![CDATA[NoSQL]]></category>
		<category><![CDATA[Open source]]></category>
		<category><![CDATA[ScaleBase]]></category>
		<category><![CDATA[ScaleDB]]></category>
		<category><![CDATA[Schooner Information Technology]]></category>
		<category><![CDATA[Software as a Service (SaaS)]]></category>
		<category><![CDATA[Tokutek]]></category>
		<category><![CDATA[VoltDB and H-Store]]></category>
		<category><![CDATA[dbShards and CodeFutures]]></category>
		<category><![CDATA[memcached]]></category>

		<guid isPermaLink="false">http://www.dbms2.com/?p=4977</guid>
		<description><![CDATA[As a follow-up to the latest Stonebraker kerfuffle, Derrick Harris asked me a bunch of smart followup questions. My responses and afterthoughts include: Facebook et al. are in effect Software as a Service (SaaS) vendors, not enterprise technology users. In particular: They have the technical chops to rewrite their code as  needed. Unlike packaged software [...]]]></description>
			<content:encoded><![CDATA[<p>As a follow-up to the latest <a href="http://www.dbms2.com/2011/07/14/an-odd-claim-attributed-to-mike-stonebraker/">Stonebraker kerfuffle</a>, Derrick Harris asked me a bunch of smart followup questions. My responses and afterthoughts include:</p>
<ul>
<li>Facebook et al. are in effect Software as a Service (SaaS) vendors, not enterprise technology users. In particular:
<ul>
<li>They have the technical chops to rewrite their code as  needed.</li>
<li>Unlike packaged software vendors, they&#8217;re not answerable to anybody for keeping legacy code alive after a rewrite. That makes migration a lot easier.</li>
<li>If they want to write different parts of their system on different technical underpinnings, nobody can stop them. For example &#8230;</li>
<li>&#8230;  <a href="http://www.dbms2.com/2008/07/21/project-cassandra-facebook-open-sourced-quasi-dbms/">Facebook innovated Cassandra</a>, and is now heavily committed to HBase.</li>
</ul>
</li>
<li>It makes little sense to talk of Facebook&#8217;s use of &#8220;MySQL.&#8221; Better to talk of Facebook&#8217;s use of &#8220;MySQL +  memcached  + non-transparent sharding.&#8221; That said:
<ul>
<li>It&#8217;s hard to see why somebody today would use MySQL +  memcached  + non-transparent sharding for a new project. At least one of <a href="http://www.dbms2.com/2011/02/08/couchbase-membase-couchone-couchdb/">Couchbase</a> or <a href="http://www.dbms2.com/2011/02/24/transparent-sharding/">transparently-sharded</a> MySQL is very likely a superior alternative. Other alternatives might be better yet.</li>
<li>As noted above in the example of Facebook, the many major web businesses that are using MySQL +  memcached  + non-transparent sharding for existing projects can be presumed able to migrate away from that stack as the need arises.</li>
</ul>
</li>
</ul>
<p>Continuing with that discussion of DBMS alternatives:</p>
<ul>
<li>If you just want to write to the memcached API anyway, why not go with Couchbase?</li>
<li>If you want to go relational, why not go with MySQL? There are many alternatives for scaling or accelerating MySQL &#8212; dbShards, Schooner, Akiban, Tokutek, ScaleBase, ScaleDB, Clustrix, and Xeround come to mind quickly, so there&#8217;s a great chance that one or more will fit your use case. (And if you don&#8217;t get the choice of MySQL flavor right the first time, porting to another one shouldn&#8217;t be all THAT awful.)</li>
<li>If you really, really want to go in-memory, and don&#8217;t mind writing Java stored procedures, and don&#8217;t need to do the kinds of joins it isn&#8217;t good at, but do need to do the kinds of joins it is, VoltDB could indeed be a good alternative.</li>
</ul>
<p>And while we&#8217;re at it &#8212; going <strong>schema-free</strong> often makes a whole lot of sense. I need to write much more about the point, but for now let&#8217;s just say that I look favorably on the Big Four schema-free/NoSQL options of MongoDB, Couchbase, HBase, and Cassandra.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dbms2.com/2011/07/15/facebook-mysql-nosql-voltdb-stonebraker/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>An odd claim attributed to Mike Stonebraker</title>
		<link>http://www.dbms2.com/2011/07/14/an-odd-claim-attributed-to-mike-stonebraker/</link>
		<comments>http://www.dbms2.com/2011/07/14/an-odd-claim-attributed-to-mike-stonebraker/#comments</comments>
		<pubDate>Thu, 14 Jul 2011 11:10:34 +0000</pubDate>
		<dc:creator>Curt Monash</dc:creator>
				<category><![CDATA[Cache]]></category>
		<category><![CDATA[Clustering]]></category>
		<category><![CDATA[Couchbase]]></category>
		<category><![CDATA[Games and virtual worlds]]></category>
		<category><![CDATA[In-memory DBMS]]></category>
		<category><![CDATA[Michael Stonebraker]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Parallelization]]></category>
		<category><![CDATA[Theory and architecture]]></category>
		<category><![CDATA[VoltDB and H-Store]]></category>
		<category><![CDATA[memcached]]></category>

		<guid isPermaLink="false">http://www.dbms2.com/?p=4964</guid>
		<description><![CDATA[This post has a sequel. Last week, Mike Stonebraker insulted MySQL and Facebook&#8217;s use of it, by implication advocating VoltDB instead. Kerfuffle ensued. To the extent Mike was saying that non-transparently sharded MySQL isn&#8217;t an ideal way to do things, he&#8217;s surely right. That still leaves a lot of options for massive short-request databases, however, [...]]]></description>
			<content:encoded><![CDATA[<p><em>This post has a <a href="http://www.dbms2.com/2011/07/15/facebook-mysql-nosql-voltdb-stonebraker/">sequel</a>.</em></p>
<p>Last week, Mike Stonebraker <a href="http://gigaom.com/cloud/facebook-trapped-in-mysql-fate-worse-than-death/">insulted MySQL and Facebook&#8217;s use of it</a>, by implication advocating <a href="http://www.dbms2.com/2010/06/30/details-and-analysis-of-the-voltdb-argument/">VoltDB</a> instead. Kerfuffle ensued. To the extent Mike was saying that non-transparently sharded MySQL isn&#8217;t an ideal way to do things, he&#8217;s surely right. That still leaves a lot of options for massive <a href="http://www.dbms2.com/2011/03/02/short-request-processing/">short-request</a> databases, however, including <a href="http://www.dbms2.com/2011/02/24/transparent-sharding/">transparently sharded</a> RDBMS, scale-out <a href="http://www.dbms2.com/2011/05/23/databases-ram/">in-memory DBMS</a> (whether or not VoltDB*), and various NoSQL options. If nothing else, <a href="http://www.dbms2.com/2011/02/08/couchbase-membase-couchone-couchdb/">Couchbase</a> would seem superior to memcached/non-transparent MySQL if you were starting a project today.</p>
<p><em>*The big problem with VoltDB, last I checked, was its reliance on Java stored procedures to get work done.</em></p>
<p>Pleasantries continued in <em><a href="http://www.theregister.co.uk/2011/07/13/mike_stonebraker_versus_facebook/">The Register</a>,</em> which got an amazing-sounding quote from Mike. If <em>The Reg</em> is to be believed &#8212; something <a href="http://www.monashreport.com/2006/03/22/goodmail-esther-dyson-andrew-orlowski-etc/">I wouldn&#8217;t necessarily take for granted</a> &#8212; Mike claimed that he (i.e. VoltDB) knows how to solve the <strong>distributed join</strong> performance problem.  <span id="more-4964"></span></p>
<blockquote><p>So, it&#8217;s Stonebraker against the web. And the difference of option is  severe. In May, at a MongoDB developer conference in San Francisco,  Mongo creator Dwight Merriman told his audience there was &#8220;no way&#8221; to do distributed joins in a way that really scales.  &#8220;I&#8217;m not smart enough to do distributed joins that scale horizontally,  widely, and are super fast. You have to choose something else. We have  no choice but to not be relational,&#8221; he said</p>
<p>&#8220;You can do distributed transactions, but if you do them with no loss  of generality and you do them across a thousand machines, it&#8217;s not  going to be that fast.&#8221;</p>
<p>Stonebraker says precisely the opposite, and in typical fashion, he  goes right for the jugular. &#8220;I reject what Merriman says out of hand,&#8221;  he tells <em>The Register</em>. Merriman and his company, 10gen, declined  to comment for this story. But Stonebaker says words don&#8217;t matter. As  much as he likes to wield his opinions, he insists the debate will be  decided elsewhere. &#8220;Let the bake-off begin,&#8221; he crows.</p></blockquote>
<p>But when last I checked, VoltDB made nowhere near that claim. And well it shouldn&#8217;t have. In the fully general case, there&#8217;s no way to ensure super distributed join performance other than by throwing lots and lots of gear at the problem. But if you do that, many alternatives are fast. More specialized cases may be a different matter &#8212; but there are many fast alternatives for those too.</p>
<p>I imagine there will be use cases for which VoltDB sustains a lead as the truly fastest alternative, similarly-architected competitors perhaps excepted.* But what Mike supposedly said seems quite forward-leaning when compared to technical reality.</p>
<p><em>*The canonical VoltDB use case is <a href="http://www.dbms2.com/2010/05/25/voltdb-finally-launches/">e-commerce in virtual goods</a>, the point of &#8220;virtual&#8221; being that physical inventory might necessitate costlier kinds of joins.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.dbms2.com/2011/07/14/an-odd-claim-attributed-to-mike-stonebraker/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>Now we know why Vertica has been so weirdly evasive</title>
		<link>http://www.dbms2.com/2011/02/14/now-we-know-why-vertica-has-been-so-weirdly-evasive/</link>
		<comments>http://www.dbms2.com/2011/02/14/now-we-know-why-vertica-has-been-so-weirdly-evasive/#comments</comments>
		<pubDate>Mon, 14 Feb 2011 16:34:10 +0000</pubDate>
		<dc:creator>Curt Monash</dc:creator>
				<category><![CDATA[Analytic technologies]]></category>
		<category><![CDATA[Data warehousing]]></category>
		<category><![CDATA[HP and Neoview]]></category>
		<category><![CDATA[Market share and customer counts]]></category>
		<category><![CDATA[Michael Stonebraker]]></category>
		<category><![CDATA[Vertica Systems]]></category>

		<guid isPermaLink="false">http://www.dbms2.com/?p=3852</guid>
		<description><![CDATA[Communicating with Vertica has been tricky recently. But HP is now announced to be buying Vertica, which pretty much forces me to comment about Vertica. So I&#8217;ll indulge in a little bit of explanation as to what I know about Vertica, whether for publication or under NDA. My analysis of the HP/Vertica combination, and expectations [...]]]></description>
			<content:encoded><![CDATA[<p>Communicating with Vertica has been tricky recently. But HP is now announced to be buying Vertica, which pretty much forces me to comment about Vertica. <img src='http://www.dbms2.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  So I&#8217;ll indulge in a little bit of explanation as to what I know about Vertica, whether for publication or under NDA. My analysis of the HP/Vertica combination, and expectations for same, will go into another post.  <span id="more-3852"></span></p>
<p>Vertica parted ways with marketing VP Dave Menninger in June. I started working with his successor, but despite seeming smart and energetic, she didn&#8217;t last long. Her successor didn&#8217;t even last long enough for me to meet him. And Vertica&#8217;s Colin Mahony, who was filling the gap, was a bit evasive.</p>
<p>I did have a recent NDA briefing with Vertica (Colin plus Shilpa Lawande). When I asked about announcements for this week (the TDWI conference is a common time for announcements), Colin told me there would be a few partnerships, and that one of them would go beyond <a href="http://www.strategicmessaging.com/barney-partnerships/2010/08/12/">Barney</a>. I&#8217;ve got to give him credit for underselling on that score. <img src='http://www.dbms2.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>I asked Colin about Vertica&#8217;s stated figure of<strong> 328 customers by year-end 2010. </strong>He assured me that <strong>250 or so were end-sale</strong> customers, with the rest being OEM sell-through. In all other ways I could think to ask about, <strong>Vertica&#8217;s stated customer count sounds clean</strong> &#8212; revenue recognized, not just for a paid POC, and so on.</p>
<p>By the way, Vertica has impressive market share among flashy internet companies, especially for an East Coast company &#8212; Twitter, Mozilla, a large fraction of the larger Facebook game vendors, and surely others that I&#8217;m forgetting as well.</p>
<p>Finally, let me point out that two other oddities go together, namely that:</p>
<ul>
<li> Vertica has positioned itself as an <a href="http://www.dbms2.com/2011/01/24/analytic-computing-system/">analytic platform</a> company despite not obviously having the technology to back that up.</li>
<li>Vertica went retro in its marketing with some <a href="http://www.dbms2.com/2011/01/12/mike-stonebraker-on-real-column-stores/">Mike Stonebraker column-store architetural tub-thumping</a> &#8212; and then <a href="http://www.dbms2.com/2011/01/20/notes-links-and-comments-january-20-2010/">removed the post a few days later</a> when it came under fire.</li>
</ul>
<p>Obviously &#8212; and I can also confirm both parts of this based on recent Vertica discussions &#8212; <strong>Vertica thinks it will soon have strong analytic platform technology,</strong> and doesn&#8217;t want to get mired in its &#8220;It&#8217;s Columnar!!!&#8221; marketing strategy of the past.</p>
<p><em>As for why that post ever went up in the first place &#8212; well, YOU try telling Mike Stonebraker not to say something that&#8217;s on his mind. <img src='http://www.dbms2.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </em></p>
<p>I do actually have quite a few details of product plans and customer success under NDA. I&#8217;ll think about what I can or can&#8217;t expose, and then perhaps write a more forward-looking HP/Vertica post.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dbms2.com/2011/02/14/now-we-know-why-vertica-has-been-so-weirdly-evasive/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Architectural options for analytic database management systems</title>
		<link>http://www.dbms2.com/2011/01/18/architectural-options-for-analytic-database-management-systems/</link>
		<comments>http://www.dbms2.com/2011/01/18/architectural-options-for-analytic-database-management-systems/#comments</comments>
		<pubDate>Tue, 18 Jan 2011 14:22:09 +0000</pubDate>
		<dc:creator>Curt Monash</dc:creator>
				<category><![CDATA[Analytic technologies]]></category>
		<category><![CDATA[Aster Data]]></category>
		<category><![CDATA[Benchmarks and POCs]]></category>
		<category><![CDATA[Columnar database management]]></category>
		<category><![CDATA[Data pipelining]]></category>
		<category><![CDATA[Data warehousing]]></category>
		<category><![CDATA[Database compression]]></category>
		<category><![CDATA[Exadata]]></category>
		<category><![CDATA[Michael Stonebraker]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Solid-state memory]]></category>
		<category><![CDATA[Theory and architecture]]></category>

		<guid isPermaLink="false">http://www.dbms2.com/?p=3588</guid>
		<description><![CDATA[Mike Stonebraker recently kicked off some discussion about desirable architectural features of a columnar analytic DBMS. Let&#8217;s expand the conversation to cover desirable architectural characteristics of analytic DBMS in general.  But first, a few housekeeping notes: This is a very long post. Even so, to keep it somewhat manageable, I&#8217;ve cut corners on completeness. Most [...]]]></description>
			<content:encoded><![CDATA[<p>Mike Stonebraker recently kicked off some discussion about <a href="../../../../../2011/01/12/mike-stonebraker-on-real-column-stores/">desirable architectural features of a columnar analytic</a> DBMS. Let&#8217;s expand the conversation to cover desirable architectural characteristics of analytic DBMS in general.  <span id="more-3588"></span>But first, a few housekeeping notes:</p>
<ul>
<li>This is a very long post.</li>
<li>Even so, to keep it somewhat manageable, I&#8217;ve cut corners on completeness. Most notably, two important areas are entirely deferred to future posts &#8212; advanced-analytics-specific architecture, and in-memory processing (including CEP).</li>
<li>The subjects here are not strictly parallel. The distinction between major add-on modules and &#8220;turtles all the way down&#8221; core architectural choices is rarely crystal-clear &#8212; Mike Stonebraker&#8217;s recent post notwithstanding <img src='http://www.dbms2.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  &#8212; and I&#8217;ve mixed subjects of varying degrees of &#8220;fundamentalness&#8221; pretty freely.</li>
<li>There&#8217;s a long list of links at the end, pointing at posts that help explain or give examples of specific features named in the body of the text, somewhat like unnumbered footnotes.</li>
</ul>
<p>OK. In my opinion, the four drop-dead requirements for an analytic DBMS are:</p>
<ul>
<li><strong>Relational/SQL support.</strong> That&#8217;s how you get great flexibility in more or less easily constructing queries, as well as connectivity to a vast number of tools. In a few cases, I guess <strong>MDX</strong> might suffice as an alternative.</li>
<li>Sufficiently <strong>great query performance,</strong> on the queries you&#8217;re actually going to run, for however many concurrent users you actually will have.</li>
<li>Sufficiently high <strong>data loading throughput</strong> and sufficiently low <strong>data loading latency.</strong></li>
<li>Sufficiently favorable <strong>TCO </strong>(Total Cost of Ownership), all things considered, where &#8220;all things&#8221; at a minimum includes software license, software maintenance, hardware, power, people costs for administration, and people costs for development.</li>
</ul>
<p>Depending on your use case, you might have additional make-or-break requirements. Possible areas include:</p>
<ul>
<li>Additional <strong>query functionality,</strong> of course with good performance. Specific examples include:
<ul>
<li>ANSI-standard SQL features that are not universally supported (e.g. windowing).</li>
<li>Geospatial datatype support.</li>
</ul>
</li>
<li>Further high-performing <strong>integrated analytics</strong>, such as:
<ul>
<li>Data mining/machine learning modeling and scoring.</li>
<li>Other mathematical functions, such as linear algebra, optimization, or Monte Carlo simulation.</li>
<li>Extensibility via MapReduce and/or sufficiently robust user-defined function (UDF) capabilities.</li>
</ul>
</li>
<li>Platform support that matches your needs.</li>
<li>Security, auditability, and/or high-performance encryption.</li>
</ul>
<p>Other possibly important features &#8212; but ones that would usually go on &#8220;nice to have&#8221; rather than &#8220;must have&#8221; lists &#8212; include:</p>
<ul>
<li>Yet more <strong>query functionality,</strong> in areas such as:
<ul>
<li>Non-standard SQL extensions (e.g. temporal ones)</li>
<li>Specific prepackaged UDFs.</li>
<li>Cross-column text search.</li>
</ul>
</li>
<li>Nice <strong>administrative tools,</strong> in areas such as:
<ul>
<li>Single-query performance/optimization.</li>
<li>Authorization/permission.</li>
<li>Workload management.</li>
<li>Data mart spin-out.</li>
</ul>
</li>
</ul>
<p>So what kinds of architectural choices (or major features) should one look to to support such features? On the performance side there are many candidates, including:</p>
<ul>
<li><strong>Specialized indexes</strong>, more commonly found in older DBMS. Leading examples include star and especially bitmap indices, both of which I was already writing about back in the 1990s. Ditto <strong>materialized views</strong>, which aren&#8217;t exactly indices, but are closely related.</li>
<li><strong>Partition elimination.</strong> Single- or multi-level range partitioning can cause whole regions of the database never to be checked in a particular query&#8217;s evaluation. (That&#8217;s a good thing.) The functionality popularized by Netezza as <strong>zone maps </strong>does something similar, without requiring the partitions to be chosen in advance.</li>
<li><strong>Scan-friendliness.</strong> If a query runs a long time, it may include a lot of (full or partial) table scanning. Assuming you rely on spinning disk &#8212; as opposed to solid-state memory &#8212; one way to improve your sequential-scan throughput far above your random-read throughput is to support <a href="../../../../../2006/09/20/teradata-netezza-datallegro-appliance/">large block sizes. </a></li>
<li><strong>Parallelism</strong>. It&#8217;s possible to screw up even multi-core parallelism, but the big issue is multi-server. In particular:
<ul>
<li>An analytic DBMS must <strong>avoid a &#8220;fat head&#8221; bottleneck,</strong> either because there is no head node at all directing things, or else because data redistribution algorithms are sufficiently mature as to not overload it. (In naive parallel DBMS implementations, intermediate query results get sent back to the head node to be, for example, JOINed together. This is not a good thing.)</li>
<li>Multiple analytic DBMS vendors have chosen to develop <strong>custom data transfer protocols,</strong> for more reliable performance than they can get from TCP/IP. Examples include Teradata, Netezza, and ParAccel.</li>
</ul>
</li>
<li><strong>Predicate pushdown. </strong>Predicate pushdown takes several forms, in all cases having the goal of executing certain simpler database operations &#8212; predicate evaluations &#8212; close to the data, thus minimizing I/O or upstream processing.<strong></strong>
<ul>
<li>Netezza famously offloads the first part of predicate evaluation to FPGA (Field-Programmable Gate Array) chips.</li>
<li>At least in theory, I like <a href="../../../../../2008/09/28/exadata-oracle-database-machine-parallelization/">the Exadata form of node specialization</a>, in which a tier of server nodes does the first part of the processing, with the results being sent to a second upstream database tier. But it&#8217;s not obvious that any RDBMS vendor has done a great job with it. Oracle is famously secretive about Exadata&#8217;s track record, and as of this writing apparently still resists on-site benchmarks. <a href="../../../../../2008/09/05/mpp-data-warehouse-nodes/">Calpont</a> hasn&#8217;t accomplished much. And <a href="../../../../../2010/11/29/marklogic-and-its-document-dbms/">MarkLogic</a> of course doesn&#8217;t sell an RDBMS.</li>
<li>There&#8217;s reason to think predicate pushdown would help exploit flash memory, although I&#8217;m not sure vendors are moving in a direction that will let us find out.</li>
</ul>
</li>
<li><strong>Columnar</strong> data storage. Columnar storage is pretty much the ultimate in predicate pushdown, and advantageous in many analytic query scenarios. (Main exception: When you&#8217;re bringing back the majority of a row anyway, you might as well fetch the thing pre-assembled.) As Mike Stonebraker points out, <a href="../../../../../2011/01/12/mike-stonebraker-on-real-column-stores/">columnar storage should not incur serious row-ID overhead</a>, and ideally should be available for multiple sort orders on each column.</li>
<li><strong>Compression.</strong> This, rightly, is another of Mike Stonebraker&#8217;s favorite features. Database compression is hugely important, for I/O and in silicon alike. (And it can also save money on storage.) There are a broad variety of compression techniques, suited for different kinds of data, different kinds of queries, or different points on the storage saving/decompression performance tradeoff spectrum.<strong></strong></li>
<li><strong>Flexible storage.</strong> Not all data is best stored the same way, even if it&#8217;s in the same database. Some is destined for columnar-friendly use cases, other for whole row. Some is compressed ideally by one technique, some by another. And so on. Some database managers do a good job of letting different parts of the database (even within the same table) be stored in different ways. <strong></strong></li>
<li><strong>Query pipelining. </strong>There are a lot of steps to query execution, in both the fine-grained sense (a whole lot of rows) and the coarse-grained (all but the simplest execution plans feature a number of operations each). FPGA-based vendors XtremeData and Kickfire used the innate parallelism of an FPGA to pipeline query execution. Kickfire failed, and XtremeData hasn&#8217;t sold many systems, but that doesn&#8217;t mean it isn&#8217;t a good idea. <a href="../../../../../2010/08/12/teradata-future-product-strategy/">Kickfire&#8217;s assets were sold to Teradata</a>. Meanwhile, VectorWise&#8217;s very name speaks to its (Intel-based) vector processing architecture.</li>
<li><strong>Result set reuse.</strong> Instead of mixing together different steps of the same query, how about mixing together the same step in different queries, so that you don&#8217;t have to repeat it? As a simple example, suppose two queries need to do the same table scan. Well then, it would be nice to only do the scan once. In most cases, query workloads are too diverse for result set reuse of that kind to be very important; still, it&#8217;s a cool feature, which Teradata calls <a href="../../../../../2006/09/20/teradata-netezza-datallegro-appliance/">synchronized scan</a>.</li>
<li><strong>Suitably optimized execution engine </strong>&#8211; column, row, whatever. (This is Mike Stonebraker&#8217;s &#8220;inner loop&#8221; point generalized.)<strong></strong></li>
<li>Well-factored<strong> query optimizer. </strong>No matter what, it&#8217;s good for a query optimizer to have been through a few rounds of <a href="../../../../../2009/08/21/bottleneck-whack-a-mole/">Bottleneck Whack-A-Mole</a>. Beyond that, an optimizer with sufficiently convenient hooks can have cool and occasionally valuable features such as:
<ul>
<li><strong>On-the-fly query re-planning. </strong>Do part of the query, rerun column statistics, and re-plan the query if appropriate.<strong></strong></li>
<li><strong>Not-so-black-box optimization. </strong>Work interactively with the DBA to find the best query plan.<strong></strong></li>
<li><strong>Query rewriting.</strong> Any decent optimizer will take a complex query and produce an execution plan that in some cases looks quite unlike the original query. Some optimizers go further in rewriting the query first, essentially to psych themselves into coming up with a better plan.<strong></strong></li>
</ul>
</li>
</ul>
<p>You can&#8217;t do much with an analytic database unless you get data into it in the first place. Thus, performance in writing and loading data are important, and there are a number of architectural decisions that can be helpful in those regards.</p>
<ul>
<li><strong>Row-based architecture.</strong> Column stores have obvious advantages for query, but in a naive column store implementation you have tremendous overhead, pulling the rows apart and storing them in many different columns. This is particularly the case for small, frequent updates.</li>
<li><strong>Batched writes. </strong>The classic way to deal with column stores&#8217; data writing challenges is to batch data in memory, then bang it to disk only occasionally. Hopefully the data is available seamlessly for query in RAM before the disk-banging occurs. This technique is by no means restricted to analytic and/or columnar use cases, but the single best-known example may be Vertica&#8217;s Read-Optimized Store (disk)/Write-Optimized Store (RAM) pairing.</li>
<li><strong>Lack of indices and materialized views</strong>. Indexes and materialized views can help query speed, albeit at the cost of disk space and administrative effort. But maintaining them multiplies the difficulty of loading data in the first place.</li>
<li><strong>Lockless or optimistic-locking concurrency model.</strong> Locking models suitable for OLTP  can be ridiculous for analytic databases, blocking queries for no good reason. Fortunately, there are alternatives.</li>
<li><strong>Append-only updating. </strong>When I/O volumes are high, append-only updating can give an important performance improvement over update-in-place, assuming you have sufficiently good algorithms for garbage-collection/clean-up. If I/O volumes are so low that you don&#8217;t care about the performance benefits, maybe it would be nice to have the &#8220;time-travel&#8221; feature that&#8217;s a potential byproduct of MVCC (Multi-Version Concurrency Control). Neither part of this observation applies solely to analytic DBMS.</li>
<li><strong>Parallel load (no fat head). </strong>It&#8217;s not just query execution that can get bottlenecked at a &#8220;head node;&#8221; the same can happen with loads, batch or otherwise. That&#8217;s not a good thing. Thus, various parallel analytic DBMS vendors have set up ways to load data directly to the nodes where it&#8217;s going to be stored.<strong></strong></li>
<li><strong>Specialized load nodes</strong>. <a href="../../../../../2008/10/22/aster-data-systems-ncluster/">Aster Data nCluster features specialized data loading nodes</a>, although Aster has introduced a more conventional kind of parallel load as well.</li>
</ul>
<p>And of course, all of the above need to be implemented in the context of well-configured combinations of hardware, networking, and software.</p>
<p>Topics I know I&#8217;ve left out include advanced-analytics functionality, and in-memory processing (CEP or otherwise). Also missing are specifics of compression algorithms &#8212; or indeed of anything else. I&#8217;m sure there&#8217;s much else missing besides, so please point out the most glaring omissions in the comment thread below. <img src='http://www.dbms2.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong><em>Related links:</em></strong></p>
<ul>
<li><a href="../../../../../2010/05/15/further-clarifying-in-database-mpp-sas/">Why even in-database scoring can be important</a> (May, 2010).</li>
<li><a href="../../../../../2009/10/18/three-big-myths-about-mapreduce/">Three big myths about MapReduce</a> (October, 2009).</li>
<li><a href="../../../../../2008/08/26/why-mapreduce-matters-to-sql-data-warehousing/">Why you might ever want to integrate MapReduce into your DBMS</a> (August, 2008).</li>
<li><a href="../../../../../2009/06/08/the-future-of-data-marts/">The future of data marts</a>, specifically data mart spin-out. (June, 2009).</li>
<li>Netezza offers both zone maps and <a href="../../../../../2010/06/21/netezza-database-software-technology-overview/">clustered base tables</a> (June, 2010).</li>
<li>Oracle Exadata <a href="../../../../../2010/01/22/oracle-database-hardware-strategy/">Storage Indexes</a> are like Netezza zone maps (January, 2010).</li>
<li><a href="../../../../../2009/08/08/netezza-fpga/">How Netezza uses the FPGA</a> (August, 2010).</li>
<li><a href="../../../../../2009/02/01/oracle-says-they-do-onsite-exadata-pocs-after-all/">Oracle is reluctant to do on-site Exadata POCs</a> (February, 2009). As of the end of 2010, that doesn&#8217;t seem to have changed.</li>
<li><a href="../../../../../2010/06/21/netezza-ibm-db2-compression/">The Netezza and IBM DB2 approaches to compression</a> (June, 2010, which is before IBM acquired Netezza).</li>
<li><a href="../../../../../2009/05/14/the-secret-sauce-to-clearpaces-compression/">The secret sauce to Rainstor&#8217;s extreme compression</a> (May, 2009, when Rainstor was still called Clearpace).</li>
<li><a href="../../../../../2009/08/04/pax-analytica-row-and-column-stores-begin-to-come-together/">The row-based/columnar distinction gets blurred</a>, e.g. by Vertica FlexStore (August, 2009).</li>
<li>And by <a href="../../../../../2009/10/14/greenplum-hybrid-columnar/">Greenplum</a> (October, 2009). Also contains the observation that even row-style compression works better when data is stored columnarly.</li>
<li>And by <a href="../../../../../2010/09/15/aster-data-ncluster-version-4-6/">Aster Data</a> (September, 2010).</li>
<li>Teradata is particularly aggressive about <a href="../../../../../2009/08/02/teradata-13-focuses-on-advanced-analytic-performance/">query rewrite</a> (August, 2009).</li>
<li><a href="../../../../../2006/09/27/logless-lockless-netezza-more-carefully-explained/">Netezza&#8217;s logless, lockless architecture</a> (September, 2006).<a href="../../../../../2006/09/27/logless-lockless-netezza-more-carefully-explained/"><br />
</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.dbms2.com/2011/01/18/architectural-options-for-analytic-database-management-systems/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Mike Stonebraker on &#8220;real column stores&#8221;</title>
		<link>http://www.dbms2.com/2011/01/12/mike-stonebraker-on-real-column-stores/</link>
		<comments>http://www.dbms2.com/2011/01/12/mike-stonebraker-on-real-column-stores/#comments</comments>
		<pubDate>Wed, 12 Jan 2011 13:43:07 +0000</pubDate>
		<dc:creator>Curt Monash</dc:creator>
				<category><![CDATA[Aster Data]]></category>
		<category><![CDATA[Columnar database management]]></category>
		<category><![CDATA[Database compression]]></category>
		<category><![CDATA[Michael Stonebraker]]></category>
		<category><![CDATA[Sybase]]></category>
		<category><![CDATA[Theory and architecture]]></category>
		<category><![CDATA[Vertica Systems]]></category>

		<guid isPermaLink="false">http://www.dbms2.com/?p=3552</guid>
		<description><![CDATA[Mike Stonebraker has a post up on Vertica&#8217;s blog trying to differentiate &#8220;real&#8221; from &#8220;pretend&#8221; column stores. (Edit: That post seems to have come back down, but as of 1/19 it can be found in Google Cache.) In essence, Mike argues that the One Right Way to design a column store is Vertica&#8217;s, a position [...]]]></description>
			<content:encoded><![CDATA[<p>Mike Stonebraker has a <a href="http://www.vertica.com/blog/86-will_the_real_column_stores_please_stand_up">post</a> up on Vertica&#8217;s blog trying to differentiate &#8220;real&#8221; from &#8220;pretend&#8221; column stores. <em>(Edit: That post seems to have come back down, but as of 1/19 it can be found in <a href="Several row-store vendors (including Oracle, Greenplum and Aster Data) now claim to be selling a column store.   ">Google Cache</a>.)</em> In essence, Mike argues that the One Right Way to design a column store is Vertica&#8217;s, a position that Daniel Abadi used to share but since has <a href="http://dbmsmusings.blogspot.com/2009/07/watch-out-for-vectorwise.html">retreated</a> from.</p>
<p>There are some good things about that post, and some not-so-good. The worst paragraph is probably</p>
<blockquote><p>Several row-store vendors (including Oracle, Greenplum and Aster Data)  now claim to be selling a column store.   Obviously, this would require a  complete rewrite of a DBMS to move from Figure 1 to Figure 2.  Hence,  none of the “pretenders” have actually done this.  Instead all have  implemented some aspects of column stores, and then claim to be the real  thing.  This blog defines what the “real enchilada” looks like, and how  to tell it from the pretenders.</p></blockquote>
<p>which I question on two levels. <span id="more-3552"></span>First, the vendors cited don&#8217;t actually claim to be selling a column store; thus, the whole premise of Mike&#8217;s post is incorrect. Second, neither those vendors nor Mike are really correct. What Mike is really doing is differentiating, in his opinion,* good column stores from bad or mediocre ones.</p>
<p><em>*That Mike&#8217;s opinion in that regard is neither (wholly) unreasonable nor (wholly) unbiased should go pretty much without saying.</em></p>
<p>A lesser oopsie is Mike&#8217;s criterion &#8220;IO-1&#8243;, which is written so confusingly that it technically seems not to be met by any of the vendors cited &#8212; including Vertica, which introduced <a href="http://www.dbms2.com/2009/08/04/pax-analytica-row-and-column-stores-begin-to-come-together/">Vertica FlexStore</a> in mid-2009.  And while I&#8217;m at it &#8212; Aster Data nCluster definitely meets criterion IO-3; I confirmed that by asking Tasso Agyros. Mike&#8217;s &#8220;No&#8221; for Sybase IQ on his criterion CPU-5 is also pretty questionable, given that <a href="http://www.dbms2.com/2009/08/25/sybase-iq-technical-highlights/">Sybase IQ operates on compressed data until &#8220;the last possible moment</a>.&#8221;</p>
<p>With the minor stuff cleared away, let&#8217;s get to the heart of the matter. Mike in essence concedes that <strong>multiple competitors can get the I/O benefits of a column store,</strong> even &#8220;aggressive compression.&#8221; However, he asserts that <strong>a designed-from-the-ground-up column store also can and should have major CPU advantages</strong> over row stores or row/column hybrids, for three reasons (as I paraphase them):</p>
<ul>
<li>CPU-5 Good column stores operate on compressed data, while other DBMS decompress first.</li>
<li>CPU-6 Good column stores benefit from storing data in multiple sort orders on disk, while other DBMS don&#8217;t.</li>
<li>CPU-4 Good column stores have column-oriented inner loops, while other DBMS don&#8217;t.</li>
</ul>
<p>Actually, I have my doubts about the competitive-comparison aspect CPU-5. I think multiple DBMS that have dictionary/token compression, for example, operate on tokenized data in memory. I&#8217;ll confess to not having a current list memorized as to who does or doesn&#8217;t, but anyhow it&#8217;s a solvable technical problem. Also, as Tasso points out, if you use a bitmapped index you&#8217;re surely operating on compressed data.</p>
<p>On the other hand, the goodness of CPU-5 functionality is beyond reasonable dispute. For many queries (albeit by no means all), <strong>operating on compressed data is a major advantage.</strong></p>
<p>For CPU-6, things are the other way around. Vertica is probably alone in the flexibility of how it orders columns on disk. Any other system I can think of is generally restricted to two storage orders at most &#8212; e.g., some kind of universal ID/row-ID, plus a sort on the actual values of the column. But is this a significant advantage at all?</p>
<p>Competitors like to argue that storing even in sort-by-value order is not advantageous at all, because of the overhead at data loading time, and the questionable number of queries that benefit. That extreme seems overstated. Why would the overhead be higher than that to, for example, maintain a b-tree index? And surely queries try to pick out specific values and/or value ranges, for a significant fraction of all columns.</p>
<p>On the other hand, total flexibility in storage sort order might require yet more overhead, and would also be of rarer benefit. And while Vertica claims to have fixed a prior drawback to the feature &#8212; administrative complexity &#8212; in <a href="http://www.dbms2.com/2010/02/22/vertica-4/">Vertica 4.0</a>, I don&#8217;t have hard facts as to how complete the fix really is.</p>
<p>As for the CPU-4 inner loop point &#8212; I must confess to not knowing much about it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dbms2.com/2011/01/12/mike-stonebraker-on-real-column-stores/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
		</item>
		<item>
		<title>A few notes from XLDB 4</title>
		<link>http://www.dbms2.com/2010/10/10/xldb4-xldb/</link>
		<comments>http://www.dbms2.com/2010/10/10/xldb4-xldb/#comments</comments>
		<pubDate>Sun, 10 Oct 2010 17:49:03 +0000</pubDate>
		<dc:creator>Curt Monash</dc:creator>
				<category><![CDATA[Analytic technologies]]></category>
		<category><![CDATA[Health care]]></category>
		<category><![CDATA[Liberty and privacy]]></category>
		<category><![CDATA[Michael Stonebraker]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Open source]]></category>
		<category><![CDATA[Parallelization]]></category>
		<category><![CDATA[Petabyte-scale data management]]></category>
		<category><![CDATA[Scientific research]]></category>

		<guid isPermaLink="false">http://www.dbms2.com/?p=3132</guid>
		<description><![CDATA[As much as I believe in the XLDB conferences, I only found time to go to (a big) part of one day of XLDB 4 myself. In general:  XLDB 4 had a good crowd, including Phil Bernstein (quiet), Mike Stonebraker (not quiet), Martin Kersten (ditto), Luke Lonergan (ditto), Todd Walter (almost unrecognizable without his usual [...]]]></description>
			<content:encoded><![CDATA[<p>As much as <a href="http://www.dbms2.com/2010/07/01/why-you-should-go-to-xldb4/">I believe in the XLDB conferences</a>, I only found time to go to (a big) part of one day of XLDB 4 myself. In general:  <span id="more-3132"></span></p>
<ul>
<li>XLDB 4 had a good crowd, including Phil Bernstein (quiet), Mike Stonebraker (not quiet), Martin Kersten (ditto), Luke Lonergan (ditto), Todd Walter (almost unrecognizable without his usual cowboy gear), <a href="http://www.dbms2.com/2010/10/06/ebay-followup-greenplum-out-teradata-10-petabytes-hadoop-has-some-value-and-more/">Oliver Ratzesberger</a>, and a bunch of actual science types.</li>
<li>XLDB 4 had one weakness &#8212; panels with lots of participants, but only a single microphone among them. That tends to make for serial declamations more than true interactive discussion, at least until the audience starts chiming in, which thankfully it tends to eventually do. (I had the same problem in spades while moderating the <a href="http://www.dbms2.com/2009/11/23/boston-big-data-summit-keynote-outline/">Boston Big Data Summit panel</a> last year; at least at XLDB 4 nobody was TRYING to filibuster.)</li>
</ul>
<p>My notes have unfortunately disappeared, but from memory:</p>
<ul>
<li>Mike Stonebraker asserted that SciDB outperforms sharded MySQL by two orders of magnitude for some classes of scientific application. One of the big reasons was that SciDB lets you overlap partitions, so that for any feature you want to extract, you can be confident there&#8217;s at least one partition that actually contains it.</li>
<li>I chatted with Peter Breunig of Chevron about analytic issues in the oil &amp; gas industry. I got the impression:
<ul>
<li>Refineries are generally well-instrumented with sensors.</li>
<li>Oil wells may not be, especially the less valuable/lower producing ones.</li>
<li>He&#8217;d love to scatter passive sensors all around, waiting for natural tremors &#8212; as opposed to just geologist-set explosions &#8212; to provide more insight into what&#8217;s under the ground.</li>
<li>50-100 TB geological data sets are common. Processing them takes 2-3 weeks. As the technology gets better, so do the results (rather than the time being shortened).</li>
<li>All this suggests that there&#8217;s a huge need for better technology in resovoir analysis.</li>
<li>His other big unmet analytic desire is refinery simulation.</li>
</ul>
</li>
<li>Kevin Winsen told about the proposed radio astronomy project <a href="http://www.atnf.csiro.au/SKA/">ASKAP</a>, which will have raw data volumes that make the <a href="http://www.dbms2.com/2009/09/12/xldb-scid/">LSST&#8217;s</a> look small. (More precisely, ASKAP is the name proposed by Australia, one of the two finalists for the location; South Africa presumably has a different name for it.) 8 petabytes/day were mentioned, although most of this will be rapidly discarded. That could be the largest unclassified data acquisition rate out there, although it&#8217;s known that there&#8217;s a classified one at &gt;10 PB/day (image data).</li>
<li>Health care researchers repeatedly complained that <strong>privacy </strong>regulations get in the way of them using clinical data for medical research. Just more grist for my &#8220;HIPAA must die so that people can live&#8221; mill.</li>
<li>Mike Stonebraker is pushing the idea of a &#8220;science benchmark.&#8221; (A <a href="http://www-conf.slac.stanford.edu/xldb10/docs/SSDB_benchmark.pdf">paper</a> on same has been posted.) The idea is that the existence of said benchmark should provide a spur for DBMS vendors to make their products run faster for scientific purposes, in line with the supposed salutary effects of <a href="http://www.softwarememories.com/2009/07/02/historical-significance-of-tpc-benchmarks/">TPC-A, TPC-B</a>, and <a href="http://itmarketstrategy.com/2010/10/08/database-benchmarks-the-gift-that-keeps-on-giving/">TPC-C</a>. Notwithstanding that attendees included Oracle, Microsoft, EMC/Greenplum, Teradata, and Aster Data &#8212; with Greenplum, IBM, and Aster Data also being sponsors &#8212; I am skeptical because:
<ul>
<li>Leaders of the XLDB effort seem convinced that <a href="http://www.dbms2.com/2009/10/04/jacek-becla-on-issues-in-scientific-data-management/">only open source DBMS can meet their needs</a>.</li>
<li>They further characterize scientific DBMS as <a href="http://www.scidb.org/about/history.php">a zero billion dollars/year market</a>.</li>
</ul>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.dbms2.com/2010/10/10/xldb4-xldb/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Details and analysis of the VoltDB argument</title>
		<link>http://www.dbms2.com/2010/06/30/details-and-analysis-of-the-voltdb-argument/</link>
		<comments>http://www.dbms2.com/2010/06/30/details-and-analysis-of-the-voltdb-argument/#comments</comments>
		<pubDate>Wed, 30 Jun 2010 14:37:37 +0000</pubDate>
		<dc:creator>Curt Monash</dc:creator>
				<category><![CDATA[In-memory DBMS]]></category>
		<category><![CDATA[Michael Stonebraker]]></category>
		<category><![CDATA[OLTP]]></category>
		<category><![CDATA[Parallelization]]></category>
		<category><![CDATA[Theory and architecture]]></category>
		<category><![CDATA[VoltDB and H-Store]]></category>

		<guid isPermaLink="false">http://www.dbms2.com/?p=2432</guid>
		<description><![CDATA[Todd Hoff (High Scalability blog) posted a lengthy examination of the case and use cases for VoltDB. That excellent post, in turn, is based on a Mike Stonebraker* webinar for VoltDB, for which the slide deck is happily available. It&#8217;s all nicely consistent with what I wrote about VoltDB last month, in connection with its [...]]]></description>
			<content:encoded><![CDATA[<p>Todd Hoff <em>(High Scalability</em> blog) posted <a href="http://highscalability.com/blog/2010/6/28/voltdb-decapitates-six-sql-urban-myths-and-delivers-internet.html">a lengthy examination of the case and use cases for VoltDB</a>. That excellent post, in turn, is based on <a href="http://voltdb.com/voltdb-webinar-sql-urban-myths">a Mike Stonebraker* webinar for VoltDB</a>, for which the <a href="http://voltdb.com/_pdf/VoltDB-MikeStonebraker-SQLMythsWebinar-060310.pdf">slide deck</a> is happily available. It&#8217;s all nicely consistent with <a href="http://www.dbms2.com/2010/05/25/voltdb-finally-launches/">what I wrote about VoltDB</a> last month, in connection with its launch.  <span id="more-2432"></span></p>
<p><em>*Who, in Todd&#8217;s apt description, is &#8220;the sword wielding Johnny Appleseed of the database world&#8221;.</em></p>
<p>Todd wrote:</p>
<blockquote><p>What matters to VoltDB is: <em>speed at scale, speed at scale, speed at scale, SQL, and ACID</em>. If that matches your priorities then you&#8217;ll probably be happy. Otherwise, as you&#8217;ll see, everything is sacrificed for speed at scale and what is sacrificed is often ease of use, generality, and <a href="http://community.voltdb.com/node/77">error checking</a>. It&#8217;s likely we&#8217;ll see ease of use improve over time, but for now it looks like rough going, unless of course, you are a going for speed at scale.</p></blockquote>
<p>Indeed.</p>
<p>Todd&#8217;s list of interesting VoltDB features is also pretty good, namely</p>
<ul>
<blockquote>
<li>Main-memory storage.</li>
<li>Run transactions to completion –single threaded –in timestamp order. <em> </em></li>
<li>Replicas.</li>
<li>Tables are partitioned across multiple servers.</li>
<li>Stored procedures, written in Java, are the unit of transaction.</li>
<li>A limited subset of SQL &#8217;99 is supported.</li>
<li>Design a schema and workflow to use single-sited procedures.</li>
<li>Challenging operations model.</li>
<li>No WAN support.</li>
<li>OLAP is purposefully kept separate.</li>
</blockquote>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.dbms2.com/2010/06/30/details-and-analysis-of-the-voltdb-argument/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>VoltDB finally launches</title>
		<link>http://www.dbms2.com/2010/05/25/voltdb-finally-launches/</link>
		<comments>http://www.dbms2.com/2010/05/25/voltdb-finally-launches/#comments</comments>
		<pubDate>Tue, 25 May 2010 07:15:04 +0000</pubDate>
		<dc:creator>Curt Monash</dc:creator>
				<category><![CDATA[EAI, EII, ETL, ELT, ETLT]]></category>
		<category><![CDATA[Games and virtual worlds]]></category>
		<category><![CDATA[In-memory DBMS]]></category>
		<category><![CDATA[Investment research and trading]]></category>
		<category><![CDATA[Michael Stonebraker]]></category>
		<category><![CDATA[NoSQL]]></category>
		<category><![CDATA[OLTP]]></category>
		<category><![CDATA[Parallelization]]></category>
		<category><![CDATA[Solid-state memory]]></category>
		<category><![CDATA[Telecommunications]]></category>
		<category><![CDATA[Theory and architecture]]></category>
		<category><![CDATA[VoltDB and H-Store]]></category>

		<guid isPermaLink="false">http://www.dbms2.com/?p=2201</guid>
		<description><![CDATA[VoltDB is finally launching today. As is common for companies in sectors I write about, VoltDB &#8212; or just &#8220;Volt&#8221; &#8212; has discovered the virtues of embargoes that end 12:01 am. Let&#8217;s go straight to the technical highlights: VoltDB is based on the H-Store technology, which I wrote about in February, 2009. Most of what [...]]]></description>
			<content:encoded><![CDATA[<p>VoltDB is finally launching today. As is common for companies in sectors I write about, VoltDB &#8212; or just &#8220;Volt&#8221; &#8212; has discovered the virtues of embargoes that end 12:01 am. Let&#8217;s go straight to the technical highlights:</p>
<ul>
<li>VoltDB is based on the <a href="http://www.dbms2.com/2008/02/19/h-store-architecture/">H-Store</a> technology, which I wrote about in February, 2009. Most of what I said about H-Store then applies to VoltDB today.</li>
<li>VoltDB is a no-apologies ACID relational DBMS, which runs entirely in RAM.</li>
<li>VoltDB has rather limited SQL. (One example: VoltDB can&#8217;t do SUMs in SQL.) However, VoltDB guy Tim Callaghan (Mark Callaghan&#8217;s lesser-known but nonetheless smart brother) asserts that if you code up the missing functionality, it&#8217;s almost as fast as if it were present in the DBMS to begin with, because there&#8217;s no added I/O from the handoff between the DBMS and the procedural code. (The data&#8217;s in RAM one way or the other.)</li>
<li>VoltDB&#8217;s Big Conceptual Performance Story is that it does away with most locks, latches, logs, etc., and also most context switching.</li>
<li>In particular, you&#8217;re supposed to partition your data and architect your application so that most transactions execute on a single core. When you can do that, you get VoltDB&#8217;s performance benefits. To the extent you can&#8217;t, you&#8217;re in two-phase-commit performance land. (More precisely, you&#8217;re doing 2PC for multi-core writes, which is surely a major reason that multi-core reads are a lot faster in VoltDB than multi-core writes.)</li>
<li>VoltDB has a little less than one DBMS thread per core. When the data partitioning works as it should, you execute a complete transaction in that single thread. Poof. No context switching.</li>
<li>A transaction in VoltDB is a Java stored procedure. (The early idea of Ruby on Rails in lieu of the Java/SQL combo didn&#8217;t hold up performance-wise.)</li>
<li>Solid-state memory is not a viable alternative to RAM for VoltDB. Too slow.</li>
<li>Instead, VoltDB lets you snapshot data to disk at tunable intervals. &#8220;Continuous&#8221; is one of the options, wherein a new snapshot starts being made as soon as the last one completes.</li>
<li>In addition, VoltDB will also spool a kind of transaction log to the target of your choice. (Obvious choice: An analytic DBMS such as Vertica, but there&#8217;s no such connectivity partnership actually in place at this time.)</li>
</ul>
<p><span id="more-2201"></span>I should also note that when Tim Callaghan described architectural options to get around 2PC performance issues, they sounded a lot like eventual consistency. Maybe tunable <a href="http://www.dbms2.com/2010/05/01/ryw-read-your-writes-consistency/">RYW consistency</a> isn&#8217;t in the cards, but at least there&#8217;s a NoSQL-like possibility with VoltDB.</p>
<p>VoltDB&#8217;s open source strategy is:</p>
<ul>
<li>VoltDB will be open sourced.</li>
<li>Community VoltDB will be GPLed. Professional Edition VoltDB has a non-GPL license.</li>
<li>The VoltDB Professional Edition won&#8217;t start out with features beyond the Community Edition ones, but will gain such later on. I didn&#8217;t get the sense the plans for those features were completely baked yet, but ideas mentioned included:
<ul>
<li>Management/monitoring tools.</li>
<li>Integration with expense closed-source enterprise software products, such as ones in the management/monitoring area.</li>
<li>Yet more &#8220;extreme&#8221;/edge-case performance.</li>
</ul>
</li>
<li>Before VoltDB decided for sure that it wasn&#8217;t selling licenses, it sold a license to Getco, which also seems to be an investor in the company.</li>
</ul>
<p>VoltDB had a beta test with about 150 participants. None is in production yet, although at least a few are clearly headed there. Most VoltDB beta testers are in some kind of online business, with a particular concentration in everybody&#8217;s new favorite market, online gaming. Most of the rest are in investment/trading &#8212; a major target market for at least three different Mike Stonebraker companies &#8212; and a few are in telecom. VoltDB assures me that some of the beta users are companies one actually has heard of before, but VoltDB is not in a position to name any of those.</p>
<p>VoltDB is not ideally suited for a classic order management system, since you&#8217;d want to partition both on CustomerID and SKU, the latter because you&#8217;d constantly updating inventory stock levels. However, this argument doesn&#8217;t apply in the case of virtual goods. Virtual goods that are sold for real money &#8212; and hence need ACID levels of transaction integrity &#8212; are thus a clear target market for VoltDB. (The example that came up was in, you guessed it, online gaming.) The other interesting use case that Tim highlighted was low-latency analytics/ELT. For reasons I didn&#8217;t totally grasp, Tim likes to call this &#8220;Stateful ELT.&#8221; (Given that the data goes into the VoltDB database before much else happens to it, I&#8217;m pretty sure I heard &#8220;ELT&#8221; correctly. But I guess I might have been mishearing &#8220;ETL&#8221;.)</p>
<p>VoltDB company highlights include:</p>
<ul>
<li>VoltDB has about a dozen employees, all but two of whom are technical. (However, I&#8217;m not sure they&#8217;re counting Andy Ellicott against the two. But then, last I heard he wasn&#8217;t full time at VoltDB.)</li>
<li>VoltDB&#8217;s venture funding status is, if I may paraphrase, &#8220;Mumble mumble.&#8221;</li>
<li>Although long separate from Vertica, VoltDB is still located in Vertica&#8217;s offices.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.dbms2.com/2010/05/25/voltdb-finally-launches/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Flash, other solid-state memory, and disk</title>
		<link>http://www.dbms2.com/2010/01/31/flash-pcmsolid-state-memory-disk/</link>
		<comments>http://www.dbms2.com/2010/01/31/flash-pcmsolid-state-memory-disk/#comments</comments>
		<pubDate>Sun, 31 Jan 2010 22:12:30 +0000</pubDate>
		<dc:creator>Curt Monash</dc:creator>
				<category><![CDATA[Data warehousing]]></category>
		<category><![CDATA[Michael Stonebraker]]></category>
		<category><![CDATA[Presentations]]></category>
		<category><![CDATA[Solid-state memory]]></category>
		<category><![CDATA[Storage]]></category>
		<category><![CDATA[Theory and architecture]]></category>

		<guid isPermaLink="false">http://www.dbms2.com/?p=1469</guid>
		<description><![CDATA[If there&#8217;s one subject on which the New England Database Summit changed or at least clarified my thinking,* it&#8217;s future storage technologies. Here&#8217;s what I now think: Solid-state memory will soon be the right storage technology for a large fraction of databases, OLTP and analytic alike. I&#8217;m not sure whether the initial cutoff in database [...]]]></description>
			<content:encoded><![CDATA[<p style="margin-bottom: 0in;">If there&#8217;s one subject on which the <a href="http://www.dbms2.com/2009/11/25/new-england-database-summit-january-28-2010/">New England Database Summit</a> changed or at least clarified my thinking,* it&#8217;s future storage technologies. Here&#8217;s what I now think:</p>
<ul>
<li><strong>Solid-state memory will soon be 	the right storage technology for a large fraction of databases,</strong> OLTP and analytic alike. I&#8217;m not sure whether the initial cutoff in 	database size is best thought of as terabytes or 10s of terabytes, 	but it&#8217;s in that range. And it will increase over time, for the 	usual cheaper-parts reasons.</li>
<li><strong>That doesn&#8217;t necessarily mean 	flash.</strong> <a href="http://en.wikipedia.org/wiki/Phase-change_memory">PCM</a> (Phase-Change Memory) is coming down the pike, with perhaps 100X the 	durability of flash, in terms of the total number of writes it can 	tolerate. On the other hand, PCM has issues in the face of heat. 	More futuristically, IBM is also high on <a href="http://www.almaden.ibm.com/spinaps/research/sd/?racetrack">magnetic racetrack 	memory</a>. IBM likes the term <em>storage-class memory</em> to 	cover all this &#8212; which I find regrettable, since the acronym SCM is 	way overloaded already. <img src='http://www.dbms2.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
<li><strong>Putting a disk controller in 	front of solid-state memory is really wasteful.</strong> It wreaks havoc 	on I/O rates.</li>
<li><strong>Generic PCIe interfaces don&#8217;t 	suffice either,</strong> in many analytic use cases. Their I/O is better, 	but still not good enough. (Doing better yet is where Petascan – 	the stealth-mode company I keep teasing about – comes in.)</li>
<li><strong>Disk will long be useful for 	very large databases.</strong> Kryder&#8217;s Law, about disk <strong>capacity,</strong> has at 	least as high an annual improvement as Moore&#8217;s Law shows for chip 	capacity, the <a href="http://www.dbms2.com/2010/01/31/the-disk-rotation-speed-bottleneck/">disk rotation speed bottleneck</a> notwithstanding. Disk 	will long be much cheaper than silicon for data storage. And cheaper 	silicon in sensors will lead to ever more <a href="http://www.dbms2.com/2010/01/17/three-broad-categories-of-data/">machine-generated data</a> that fills up a lot of disks.</li>
<li><strong>Disk will long be useful for 	archiving.</strong> Disk is the new tape.</li>
</ul>
<p style="margin-bottom: 0in;"><em>*When the first three people to the question microphone include both Mike Stonebraker and Dave DeWitt, your thinking tends to clarify in a hurry.</em></p>
<p style="margin-bottom: 0in;"><em><strong>Related links</strong></em></p>
<ul>
<li><span style="font-style: normal;"><span style="font-weight: normal;">A 	<a href="http://drona.csa.iisc.ernet.in/%7Egopi/west10/HPCA-WEST-SCMandSoftware.pdf">slide 	deck by Mohan of IBM</a> similar to the one he presented at the 	NEDB Summit about storage-class memories.</span></span></li>
<li><span style="font-style: normal;"><span style="font-weight: normal;">A 	much more detailed <a href="http://www.usenix.org/events/fast/tutorials/T3.pdf">IBM 	presentation</a> on storage-class memories.</span></span></li>
<li><span style="font-style: normal;"><span style="font-weight: normal;"><a href="http://www.dbms2.com/2010/01/22/oracle-database-hardware-strategy/">Oracle&#8217;s</a> and <a href="http://www.dbms2.com/2009/10/25/teradata-hardware-strategy-and-tactics/">Teradata&#8217;s</a> beliefs about the importance of solid-state memory.<br />
</span></span></li>
</ul>
<p><em><strong>Other posts based on my January, 2010 New England Database Summit keynote address</strong></em></p>
<ul>
<li><a title="Data-based snooping — a huge threat to liberty that we’re all helping make worse" href="../2010/01/31/data-based-snooping-threat-libert/">Data-based snooping — a huge threat to liberty that we’re all helping make worse</a></li>
<li><a title="Interesting trends in database and analytic technology" href="../2010/01/31/trends-database-aanalytic-technology/">Interesting trends in database and analytic technology</a></li>
<li><a title="Open issues in database and analytic technology" href="../2010/02/01/open-issues-in-database-and-analytic-technology/">Open issues in database and analytic technology</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.dbms2.com/2010/01/31/flash-pcmsolid-state-memory-disk/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>New England Database Summit (January 28, 2010)</title>
		<link>http://www.dbms2.com/2009/11/25/new-england-database-summit-january-28-2010/</link>
		<comments>http://www.dbms2.com/2009/11/25/new-england-database-summit-january-28-2010/#comments</comments>
		<pubDate>Wed, 25 Nov 2009 06:46:45 +0000</pubDate>
		<dc:creator>Curt Monash</dc:creator>
				<category><![CDATA[Analytic technologies]]></category>
		<category><![CDATA[Data warehousing]]></category>
		<category><![CDATA[Michael Stonebraker]]></category>
		<category><![CDATA[Presentations]]></category>
		<category><![CDATA[Theory and architecture]]></category>

		<guid isPermaLink="false">http://www.dbms2.com/?p=1260</guid>
		<description><![CDATA[New England Database Day has now, in its third year, become a &#8220;Summit.&#8221;  It&#8217;s a nice event, providing an opportunity for academics and business folks to mingle.  The organizers are basically the local branch of the Mike Stonebraker research tree, with this year&#8217;s programming head being Daniel Abadi. It will be on Thursday, January 28, [...]]]></description>
			<content:encoded><![CDATA[<p>New England Database Day has now, in its third year, become a &#8220;Summit.&#8221;  It&#8217;s a nice event, providing an opportunity for academics and business folks to mingle.  The organizers are basically the local branch of the Mike Stonebraker research tree, with this year&#8217;s programming head being Daniel Abadi. It will be on Thursday, January 28, 2010, once again in the Stata Center at MIT. It would be reasonable to park in the venerable 4/5 Cambridge Center parking lot, especially if you&#8217;d like to eat at Legal Seafood afterwards.</p>
<p>So far there are two confirmed speakers &#8212; Raghu Ramakrishnan of Yahoo and me.  My talk title will be something like &#8220;Database and analytic technology: The state of the union&#8221;, with all wordplay intended.</p>
<p>There&#8217;s more information at <a href="http://db.csail.mit.edu/nedbday10/">the official New England Database Summit website</a>. There&#8217;s also a post with similar information on <a href="http://dbmsmusings.blogspot.com/2009/11/deadlines-approaching-for-two-upcoming.html">Daniel Abadi&#8217;s <em>DBMS Musings</em> blog</a>.</p>
<p><em>Edit after the event:</em></p>
<p><em><strong>Posts based on my January, 2010 New England Database Summit keynote address</strong></em></p>
<ul>
<li><em><a title="Data-based snooping — a huge threat to liberty that we’re all helping make worse" href="../2010/01/31/data-based-snooping-threat-libert/">Data-based snooping — a huge threat to liberty that we’re all helping make worse</a></em></li>
<li><em><a title="Flash, other solid-state memory, and disk" href="../2010/01/31/flash-pcmsolid-state-memory-disk/">Flash, other solid-state memory, and disk</a></em></li>
<li><em><a title="Interesting trends in database and analytic technology" href="../2010/01/31/trends-database-aanalytic-technology/">Interesting trends in database and analytic technology</a></em></li>
<li><em><a title="Open issues in database and analytic technology" href="../2010/02/01/open-issues-in-database-and-analytic-technology/">Open issues in database and analytic technology</a></em></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.dbms2.com/2009/11/25/new-england-database-summit-january-28-2010/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

