<?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; OLTP</title>
	<atom:link href="http://www.dbms2.com/category/database-management-system/online-transaction-processing-oltp/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.dbms2.com</link>
	<description>Choices in data management and analysis</description>
	<lastBuildDate>Wed, 08 Feb 2012 22:51:11 +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>Transparent relational OLTP scale-out</title>
		<link>http://www.dbms2.com/2011/10/23/transparent-relational-oltp-scale-out/</link>
		<comments>http://www.dbms2.com/2011/10/23/transparent-relational-oltp-scale-out/#comments</comments>
		<pubDate>Mon, 24 Oct 2011 04:19:09 +0000</pubDate>
		<dc:creator>Curt Monash</dc:creator>
				<category><![CDATA[Clustering]]></category>
		<category><![CDATA[IBM and DB2]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[NoSQL]]></category>
		<category><![CDATA[OLTP]]></category>
		<category><![CDATA[Open source]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Parallelization]]></category>
		<category><![CDATA[Schooner Information Technology]]></category>
		<category><![CDATA[dbShards and CodeFutures]]></category>

		<guid isPermaLink="false">http://www.dbms2.com/?p=5521</guid>
		<description><![CDATA[There’s a perception that, if you want (relatively) worry-free database scale-out, you need a non-relational/NoSQL strategy. That perception is false. In the analytic case it’s completely ridiculous, as has been demonstrated by Teradata, Vertica, Netezza, and various other MPP (Massively Parallel Processing) analytic DBMS vendors. And now it’s false for short-request/OLTP (OnLine Transaction Processing) use [...]]]></description>
			<content:encoded><![CDATA[<p>There’s a perception that, if you want (relatively) worry-free database scale-out, you need a non-relational/NoSQL strategy. That perception is false. In the analytic case it’s completely ridiculous, as has been demonstrated by <a href="../../../../../2011/09/24/confusion-about-teradatas-big-customers/">Teradata</a>, <a href="../../../../../2011/06/20/columnar-dbms-vendor-customer-metrics/">Vertica</a>, Netezza, and various other MPP (Massively Parallel Processing) analytic DBMS vendors. And now it’s false for <a href="../../../../../2011/03/02/short-request-processing/">short-request</a>/OLTP (OnLine Transaction Processing) use cases as well.</p>
<p>My favorite relational OLTP scale-out choice these days is <a href="http://www.dbms2.com/2011/10/23/schooner-pivots-further/">the SchoonerSQL/dbShards partnership</a>. Schooner Information Technology (SchoonerSQL) and Code Futures (dbShards) are young, small companies, but I’m not too concerned about that, because the APIs they want you to write to are just MySQL’s. The main scenarios in which I can see them failing are ones in which they are competitively leapfrogged, either by other small competitors – e.g. ScaleBase, Akiban, TokuDB, or ScaleDB &#8212; or by Oracle/MySQL itself. While that could suck for my clients Schooner and Code Futures, it would still provide users relying on MySQL scale-out with one or more good product alternatives.</p>
<p>Relying on non-MySQL NewSQL startups, by way of contrast, would leave me somewhat more concerned. (However, if their code is open sourced. you have at least some vendor-failure protection.) And big-vendor scale-out offerings, such as Oracle RAC or <a href="../../../../../2011/05/06/db2-oltp-scale-out-purescale/">DB2 pureScale</a>, may be more complex to deploy and administer than the MySQL and NewSQL alternatives.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dbms2.com/2011/10/23/transparent-relational-oltp-scale-out/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Schooner pivots further</title>
		<link>http://www.dbms2.com/2011/10/23/schooner-pivots-further/</link>
		<comments>http://www.dbms2.com/2011/10/23/schooner-pivots-further/#comments</comments>
		<pubDate>Mon, 24 Oct 2011 04:18:11 +0000</pubDate>
		<dc:creator>Curt Monash</dc:creator>
				<category><![CDATA[Clustering]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[OLTP]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Parallelization]]></category>
		<category><![CDATA[Schooner Information Technology]]></category>
		<category><![CDATA[dbShards and CodeFutures]]></category>

		<guid isPermaLink="false">http://www.dbms2.com/?p=5523</guid>
		<description><![CDATA[Schooner Information Technology started out as a complete-system MySQL appliance vendor. Then Schooner went software-only, but continued to brag about great performance in configurations with solid-state drives. Now Schooner has pivoted further, and is emphasizing high availability, clustered performance, and other hardware-agnostic OLTP (OnLine Transaction Processing) features. Fortunately, Schooner has some interesting stuff in those [...]]]></description>
			<content:encoded><![CDATA[<p>Schooner Information Technology started out as a complete-system MySQL appliance vendor. Then <a href="../../../../../2011/01/28/schooner-software-onl/">Schooner went software-only, but continued to brag about great performance in configurations with solid-state drives</a>. Now Schooner has pivoted further, and is emphasizing high availability, clustered performance, and other hardware-agnostic OLTP (OnLine Transaction Processing) features. Fortunately, Schooner has some interesting stuff in those areas to talk about.</p>
<p>The short form of the SchoonerSQL (as Schooner’s product is now called) story goes roughly like this:</p>
<ul>
<li>SchoonerSQL      replicates data &#8212; synchronously if the replication target is local,      asynchronously if it is remote.</li>
<li>Local      synchronous replication provides high availability; remote asynchronous      replication provides disaster recovery.</li>
<li>SchoonerSQL’s      local synchronous replication also provides read scale-out.</li>
<li>Schooner      has a partnership with Code Futures/dbShards to provide write scale-out      via <a href="../../../../../2011/02/24/transparent-sharding/">transparent      sharding</a>.</li>
<li>SchoonerSQL      has some secret sauce in replication performance. This has the effect of      significantly increasing write performance (assuming you were going to      replicate anyway), because otherwise you might have to slow down the      master server&#8217;s write performance so that the slaves can keep up with it.</li>
<li>Schooner      believes it still has some single-server performance advantages as well.</li>
</ul>
<p><span id="more-5523"></span><em>Just to be clear here: Schooner is my client. Code Futures is my  client. I introduced them and suggested their partnership. I then  introduced them both to a user client, who was sufficiently impressed to  seriously evaluate both of them. Even so, some of the Schooner  replication story only became clear to me when I visited last Friday.</em></p>
<p>To flesh that out a bit more:</p>
<ul>
<li>Schooner      has been making performance tweaks to the MySQL/InnoDB stack for several      years. Some of them are still relevant, and can offer 50-100% performance      improvements, especially but not only if you use solid-state storage.</li>
<li>Schooner      has found a way to scale up the slave side of master-slave replication,      both in the synchronous and asynchronous cases.
<ul>
<li>The       core idea of SchoonerSQL parallel (i.e. scale-up) replication is       straightforward. The replication log streams in. A chunk is sent off to a       CPU core. The next chunk is examined for conflicts with the first chunk.       If there are none, it is sent off to a different core to be processed</li>
<li>Thus,       you can have both local replication/high availability and remote       replication/disaster recovery without slowing down writes on the master       the way you may have to with other alternatives.</li>
<li>Schooner       believes this feature alone can make SchoonerSQL 3X faster than MySQL       alternatives, at least for writes.</li>
</ul>
</li>
</ul>
<p>At least in casual conversation, Schooner synthesizes its 1.5-2X single-server figure and up-to-3X clustering figure into a single claim of frequent 2-5X speedup over generic MySQL/InnoDB. But the usual caveats about vendor-supplied performance numbers of course apply.</p>
<p>Finally, some housekeeping:</p>
<ul>
<li>At      Oracle’s polite request,* Schooner changed its product name to not mention      MySQL; hence the moniker SchoonerSQL.</li>
<li>SchoonerSQL      is being launched Monday.</li>
<li>Schooner      has determined that if its version numbers are different from MySQL’s,      confusion ensues. So the first ever version under the name SchoonerSQL is      SchoonerSQL 5.1, a factoid that Schooner is wisely omitting from the      official product launch press release.</li>
<li>The      synchronous part of SchoonerSQL’s replication story dates back to last      January’s product release.</li>
<li>Most      of the asynchronous part of SchoonerSQL story is new for Monday.</li>
<li>dbShards/SchoonerSQL      partnership engineering is still underway.</li>
</ul>
<p><em><span style="text-decoration: line-through;">*I mean that non-facetiously. </span><span style="text-decoration: line-through;">Schooner’s MySQL OEM contract was such that Oracle didn’t have a legal hammer to force the change.</span> Edit: Whoops! There turn out to have been inaccuracies in the original version of this footnote, which I now regret writing. The contract isn&#8217;t exactly OEM, and there actually were some trademark-based legal hammers.<span style="text-decoration: line-through;"><br />
</span></em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.dbms2.com/2011/10/23/schooner-pivots-further/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Oracle NoSQL is unlikely to be a big deal</title>
		<link>http://www.dbms2.com/2011/09/30/oracle-nosql/</link>
		<comments>http://www.dbms2.com/2011/09/30/oracle-nosql/#comments</comments>
		<pubDate>Fri, 30 Sep 2011 18:20:53 +0000</pubDate>
		<dc:creator>Curt Monash</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[NoSQL]]></category>
		<category><![CDATA[OLTP]]></category>
		<category><![CDATA[Object]]></category>
		<category><![CDATA[Open source]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Parallelization]]></category>
		<category><![CDATA[Schooner Information Technology]]></category>
		<category><![CDATA[Structured documents]]></category>

		<guid isPermaLink="false">http://www.dbms2.com/?p=5384</guid>
		<description><![CDATA[Alex Williams noticed that there will be a NoSQL session at Oracle OpenWorld next week, and is wondering whether this will be a big deal. I think it won&#8217;t be. There really are three major points to NoSQL. Dynamic schemas. This is the only one of the three that truly depends on NoSQL. Scale-out short-request [...]]]></description>
			<content:encoded><![CDATA[<p>Alex Williams noticed that there will be a NoSQL session at Oracle OpenWorld next week, and is wondering whether this will be a big deal. I think it won&#8217;t be.</p>
<p>There really are three major points to NoSQL.</p>
<ul>
<li><strong><a href="http://www.dbms2.com/2011/07/31/dynamic-fixed-schema-databases/">Dynamic schemas</a>.</strong> This is the only one of the three that truly depends on NoSQL.</li>
<li><strong>Scale-out <a href="http://www.dbms2.com/2011/03/30/short-request-and-analytic-processing/">short-request processing</a>.</strong> If you want to scale out efficiently at high request volumes, you&#8217;re best off not using all the flexibility SQL/relational DBMS offer. (In particular, you don&#8217;t want to do cross-node joins). Not coincidentally, a number of the best scale-out offerings were built to be NoSQL.</li>
<li><strong>Open source</strong>. Doing a relational DBMS is a big project. It seems easier to build NoSQL ones.</li>
</ul>
<p>Oracle can address the latter two points as aggressively as it wishes via MySQL. It so happens I would generally recommend MySQL enhanced by dbShards, Schooner, and/or dbShards/Schooner, rather than Oracle-only MySQL &#8230; but that&#8217;s a detail. In some form or other, Oracle&#8217;s MySQL is a huge player in the scale-out, open source, short-request database management market.</p>
<p>So that leaves us with dynamic schemas. Oracle has at least four different sets of technology in that area:</p>
<ul>
<li> As <a href="http://www.dbms2.com/2010/08/22/workday-technology-stack/">Workday</a> noticed years ago, MySQL can be used as a functional, basic key-value store.</li>
<li>Oracle also has XML-based Berkeley DB/SleepyCat kicking around.*</li>
<li>The XML extensions to Oracle&#8217;s core DBMS could be alleged to have a dynamic schema/NoSQL flavor. (Blech.)</li>
<li>A dynamic schema argument could also be made for object-oriented DBMS technology. While Oracle doesn&#8217;t to my knowledge exactly sell that, it does have the <a href="http://www.dbms2.com/2007/03/25/oracle-tangosol-objects-caching-and-disruption/">Tangosol</a> Coherence line of technology, with a potentially similar programming model.</li>
</ul>
<p>If Oracle is now refreshing and rebranding one or more of these as &#8220;NoSQL&#8221;, there&#8217;s no reason to view that as a big deal at all.</p>
<p><em>*That&#8217;s Mike Olson&#8217;s former company, if you&#8217;re keeping score at home.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.dbms2.com/2011/09/30/oracle-nosql/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Are there any remaining reasons to put new OLTP applications on disk?</title>
		<link>http://www.dbms2.com/2011/09/19/oltp-disk-solid-state/</link>
		<comments>http://www.dbms2.com/2011/09/19/oltp-disk-solid-state/#comments</comments>
		<pubDate>Mon, 19 Sep 2011 18:07:07 +0000</pubDate>
		<dc:creator>Curt Monash</dc:creator>
				<category><![CDATA[Analytic technologies]]></category>
		<category><![CDATA[Cloud computing]]></category>
		<category><![CDATA[Clustering]]></category>
		<category><![CDATA[Data warehousing]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Infobright]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[OLTP]]></category>
		<category><![CDATA[Open source]]></category>
		<category><![CDATA[Parallelization]]></category>
		<category><![CDATA[Software as a Service (SaaS)]]></category>
		<category><![CDATA[Solid-state memory]]></category>
		<category><![CDATA[dbShards and CodeFutures]]></category>

		<guid isPermaLink="false">http://www.dbms2.com/?p=5257</guid>
		<description><![CDATA[Once again, I&#8217;m working with an OLTP SaaS vendor client on the architecture for their next-generation system. Parameters include: 100s of gigabytes of data at first, growing to &#62;1 terabyte over time. High peak loads. Public cloud portability (but they have private data centers they can use today). Simple database design &#8212; not a lot [...]]]></description>
			<content:encoded><![CDATA[<p>Once again, I&#8217;m working with an OLTP SaaS vendor client on the architecture for their next-generation system. Parameters include:</p>
<ul>
<li>100s of gigabytes of data at first, growing to &gt;1 terabyte over time.</li>
<li>High peak loads.</li>
<li>Public cloud portability (but they have <strong>private data centers they can use today).</strong></li>
<li>Simple database design &#8212; not a lot of tables, not a lot of columns, not a lot of joins, and everything can be distributed on the same customer_ID key.</li>
<li>Stream the data to a data warehouse, that will grow to a few terabytes. (Keeping only one year of OLTP data online actually makes sense in this application, but of course everything should go into the DW.)</li>
</ul>
<p>So I&#8217;m leaning to saying:   <span id="more-5257"></span></p>
<ul>
<li>They should go with a scalable, MySQL-based solution.
<ul>
<li>Lots of third-party software works with MySQL, in case that&#8217;s helpful.</li>
<li>Yes, any one vendor is small and not yet firmly established, but there are numerous vendors around with interesting MySQL scaling stories.</li>
<li>In a vendor emergency, just going with Oracle&#8217;s MySQL stuff would probably work &#8230;</li>
<li>&#8230; especially because there are these lovely things in the world called <strong>solid-state drives.</strong></li>
<li>There&#8217;s also good escapability if one wants to move away from MySQL, because everybody knows how to handle MySQL data.</li>
</ul>
</li>
<li>The first product to look at is dbShards, because it meets all the topology needs:
<ul>
<li>Local scale-out (<a href="http://www.dbms2.com/2011/02/24/transparent-sharding/">transparent sharding</a>).</li>
<li><a href="http://www.dbms2.com/2011/02/09/clarification-on-dbshards-shard-replication/">Local high availability</a>.</li>
<li>Remote disaster recovery (details of that are underway).</li>
</ul>
</li>
<li>The first analytic DBMS to look at is Infobright.
<ul>
<li>Yes, I know Infobright is focused more on machine-generated data these days, but this client&#8217;s analytic needs are so straightforward Infobright should pass with flying colors.</li>
<li>The MySQL-to-MySQL aspect should make ETL dead simple.</li>
<li>Again, there&#8217;s escapability.</li>
</ul>
</li>
</ul>
<p>Mainly, this is all fine. But I&#8217;m getting pushback on the solid-state aspect, for fear that it will compromise public cloud portability.</p>
<p>Am I missing something here? As far as I&#8217;m concerned, <strong>if you&#8217;re planning an OLTP system with a many-year lifespan today, </strong>of course <strong>you should assume solid-state storage.</strong> Maybe you scale out just as far as you would with disk, striping indexes or entire databases across the RAM of multiple servers. It that case, having solid-state backing reduces the risk of bottlenecks. Maybe you don&#8217;t scale out as far as you would with disk. In that case, solid-state backing saves you money.</p>
<p><strong>As for public-cloud support for solid-state storage, that&#8217;s coming fast, right? </strong>(Actually, I have data points in support of that theory, but they&#8217;re a bit tenuous.) A large fraction of web businesses with private data centers seem to be using solid-state storage &#8212; from Facebook on down &#8212; or so the NoSQL/NewSQL/<a href="http://www.dbms2.com/2011/03/02/short-request-processing/">short-request</a> DBMS guys tell me. Surely a number of public cloud vendors are close behind.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dbms2.com/2011/09/19/oltp-disk-solid-state/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>The database architecture of salesforce.com, force.com, and database.com</title>
		<link>http://www.dbms2.com/2011/09/15/database-architecture-salesforce-com-force-com-and-database/</link>
		<comments>http://www.dbms2.com/2011/09/15/database-architecture-salesforce-com-force-com-and-database/#comments</comments>
		<pubDate>Thu, 15 Sep 2011 16:09:32 +0000</pubDate>
		<dc:creator>Curt Monash</dc:creator>
				<category><![CDATA[Data models and architecture]]></category>
		<category><![CDATA[Market share and customer counts]]></category>
		<category><![CDATA[Memory-centric data management]]></category>
		<category><![CDATA[OLTP]]></category>
		<category><![CDATA[Object]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Software as a Service (SaaS)]]></category>
		<category><![CDATA[salesforce.com]]></category>

		<guid isPermaLink="false">http://www.dbms2.com/?p=5237</guid>
		<description><![CDATA[salesforce.com, force.com, and database.com use exactly the same database infrastructure and architecture. That&#8217;s the good news. The bad news is that salesforce.com is somewhat obscure about technical details, for reasons such as: A long-ago marketing decision to not give infrastructure details, so as to convey a &#8220;Don&#8217;t worry; we&#8217;ll take care of everything&#8221; message. Even [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.dbms2.com/2011/09/15/salesforce-force-database-data-heroku/">salesforce.com, force.com, and database.com use exactly the same database infrastructure and architecture</a>. That&#8217;s the good news. The bad news is that salesforce.com is somewhat obscure about technical details, for reasons such as:</p>
<ul>
<li>A long-ago marketing decision to not give infrastructure details, so as to convey a &#8220;Don&#8217;t worry; we&#8217;ll take care of everything&#8221; message.</li>
<li>Even so, a long-ago and perhaps now-regretted marketing decision to disclose and even exaggerate salesforce.com&#8217;s reliance on Oracle, as part of an early-days attempt to prove salesforce was using enterprise-class technology.</li>
<li>A desire to hide the recipe for salesforce.com&#8217;s secret sauce.</li>
<li>Force of habit &#8212; I&#8217;m not sure salesforce even knows how to tell its technical story with any clarity.</li>
</ul>
<p>Actually, salesforce.com has moved some kinds of data out of Oracle that previously used to be stored there. Besides Oracle, salesforce uses at least a file system and a RAM-based data store about which I have no details. Even so, much of salesforce.com&#8217;s data is stored in Oracle &#8212; a single instance of Oracle, which it believes may be the largest instance of Oracle in the world.</p>
<p><span id="more-5237"></span>Salesforce did spell out some of its database story in <a href="http://www.salesforce.com/au/assets/pdf/Force.com_Multitenancy_WP_101508.pdf">a 2008 force.com white paper</a>,<em> </em>which is good stuff, but potentially misleading in one important way. The paper tells of a level of abstraction, whereby what the application sees as logical &#8220;columns&#8221; are stored in a very different schema than one might assume. However, it doesn&#8217;t spell out a second level of abstraction, whereby that logical schema also isn&#8217;t how the database is actually laid out.</p>
<p><em>Another flaw in the paper is that it spins &#8220;We had to do this, to support multitenancy, so we did.&#8221; issues as &#8220;Because we&#8217;re multitenant, we can do this, while single-tenant systems can&#8217;t.&#8221; One example is the query optimization step around &#8220;user visibility&#8221; in Figure 11. Welcome to marketing.</em></p>
<p>At the first level of abstraction, data seems to be kept mainly in a single wide table, with hundreds of columns. What&#8217;s more, many of those are &#8220;flex columns&#8221;; a flex column can hold data of many different kinds and even datatypes. Notwithstanding the second level of abstraction, I imagine the idea of stuffing different kinds of thing into the same column has something to do with the fact that <a href="../../../../../2011/03/13/so-how-many-columns-can-a-single-table-have-anyway/">Oracle&#8217;s physical limit on columns</a> falls far short of the number of logical columns salesforce wants to use.</p>
<p>If we imagine that the different kinds of data in a flex column were each in their own column instead, the whole thing might sound like BigTable/Cassandra/HBase-style column-group NoSQL. Thus, much as <a href="../../../../../2010/08/22/workday-technology-stack/">Workday uses MySQL to simulate a key-value store</a>, salesforce.com can be said to use Oracle to simulate a different kind of NoSQL. In both cases, what&#8217;s going on seems to be a kind of object/relational mapping, but with the relational aspect strongly deemphasized. Or, if you take a more relational view, we could say that salesforce.com&#8217;s tables are a lot wider than any one user organization&#8217;s, because each user sees only its own custom columns (plus the standard ones common to all users).</p>
<p>The second layer of abstraction has a lot to do with multitenancy. If you want to stick data for many different user organizations into the same huge table, then you have to label it in some way to show who is permitted to see or update each part. Logically, this leads to a join, between one table carrying data plus a simple key showing which users/roles are entitled to see it, and a second table showing who actually is that kind of user/has that kind of role. But that join makes a lot of sense to store in a denormalized way, all the more because data is partitioned across the computer cluster in line with which user organization it actually belongs to.</p>
<p><em>Multitenant security isn&#8217;t the only reason for this denormalization, but it appears to be the biggest one.</em></p>
<p>The whole thing is doing 550 million or so transactions per day. salesforce.com thinks that fact should be regarded as evidence that it works. <img src='http://www.dbms2.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.dbms2.com/2011/09/15/database-architecture-salesforce-com-force-com-and-database/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Kaminario goes (mainly) flash</title>
		<link>http://www.dbms2.com/2011/09/14/kaminario-goes-mainly-flash/</link>
		<comments>http://www.dbms2.com/2011/09/14/kaminario-goes-mainly-flash/#comments</comments>
		<pubDate>Wed, 14 Sep 2011 09:30:53 +0000</pubDate>
		<dc:creator>Curt Monash</dc:creator>
				<category><![CDATA[Kaminario]]></category>
		<category><![CDATA[OLTP]]></category>
		<category><![CDATA[Pricing]]></category>
		<category><![CDATA[Solid-state memory]]></category>

		<guid isPermaLink="false">http://www.dbms2.com/?p=5227</guid>
		<description><![CDATA[Kaminario, which used to be in the business of solid state storage via DRAM, now is emphasizing hybrid DRAM/flash storage appliances instead. The reason is evidently price. Per terabyte of primary storage (before mirroring onto disk and so on): A Kaminario K2 DRAM-only appliance costs $100K. A Kaminario K2 flash-only appliance costs $30K (but nobody [...]]]></description>
			<content:encoded><![CDATA[<p>Kaminario, which used to be in the business of solid state storage via DRAM, now is emphasizing hybrid DRAM/flash storage appliances instead. The reason is evidently price. <strong>Per terabyte of primary storage</strong> (before mirroring onto disk and so on):</p>
<ul>
<li>A Kaminario K2 DRAM-only appliance costs <strong>$100K.</strong></li>
<li>A Kaminario K2 flash-only appliance costs $30K (but nobody buys that configuration).</li>
<li>A typical Kaminario K2 hybrid DRAM/flash appliance might cost <strong>$35K</strong> (which tells us that there&#8217;s a lot more flash than DRAM).</li>
</ul>
<p>Kaminario positions DRAM as where you focus your most write-intensive/ bottlenecking loads, such as logging or <a href="../../../../../2010/08/16/vertica-flash-temp-space/">temp space</a>, with the primary benefit being performance and a secondary benefit being slowing the wear on your flash.</p>
<p><span id="more-5227"></span><em>If you want even your mirrors to be on flash &#8212; which Kaminario says greatly reduces the temporary performance hit in case of a failure &#8212; there will be an additional charge. Perhaps Kaminario will dig up a price number and post it in the comment thread.</em></p>
<p>The flash comes in via Fusion-io cards. Kaminario stresses that it sells a SAN (Storage Area Network) kind of offering, as opposed to the shared-nothing way one might otherwise use Fusion-io cards in servers&#8217; PCIe slots. Kamanario further asserts its built-in high availability is both smoother and less costly than Texas Memory Systems or Violin Memory alternatives; Kaminario is generally proud of its high availability features, down to redundant uninterruptible power supplies. Apparently the sweet spot of Kaminario&#8217;s market is single-chassis 5-6 TB systems, but Kaminario asserts seamless elasticity even if you grow into a second chassis.</p>
<p>Price resistance seems to have gotten strongly in the way of Kaminario&#8217;s growth, although the company was evasive about customer counts and the like. But it does now have 60+ employees and an aggressive hiring plan, vs. &lt;50 when <a href="../../../../../2010/10/19/introduction-to-kaminario/">I wrote about Kaminario a year ago</a>. I do believe that many enterprises would benefit from<strong> throwing solid-state storage at certain performance problems,</strong> at least as a band-aid, while they contemplate software changes.* But evidently Kaminario has had difficulties &#8212; especially at the DRAM-only price point &#8212; getting customers to agree, or at least to agree that Kaminario K2 was a sufficiently cost-effective way to address the issue.</p>
<p><em>*If you like, you can regard this as <strong>deferring repayment of your technical debt.</strong></em></p>
<p>Kaminario&#8217;s comments about how its technology is or will be applied are all over the place (again, I think part of this is due to having a small number of customers overall, and wanting to conceal how small that number is). But in general Kaminario has seen more OLTP (OnLine Transaction Processing) than analytic uptake, which contributes to them thinking that low latency is a bigger deal than raw IOPS (Input/Output Per Second). Certainly Kaminario is focused on database applications of some kind or other, generally running on big-name DBMS such as Oracle or Microsoft SQL Server</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dbms2.com/2011/09/14/kaminario-goes-mainly-flash/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Eight kinds of analytic database (Part 1)</title>
		<link>http://www.dbms2.com/2011/07/05/eight-kinds-of-analytic-database-part-1/</link>
		<comments>http://www.dbms2.com/2011/07/05/eight-kinds-of-analytic-database-part-1/#comments</comments>
		<pubDate>Tue, 05 Jul 2011 08:17:44 +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[Business intelligence]]></category>
		<category><![CDATA[Buying processes]]></category>
		<category><![CDATA[Columnar database management]]></category>
		<category><![CDATA[Data warehouse appliances]]></category>
		<category><![CDATA[Data warehousing]]></category>
		<category><![CDATA[Database compression]]></category>
		<category><![CDATA[Database diversity]]></category>
		<category><![CDATA[Exadata]]></category>
		<category><![CDATA[Greenplum]]></category>
		<category><![CDATA[IBM and DB2]]></category>
		<category><![CDATA[Infobright]]></category>
		<category><![CDATA[Investment research and trading]]></category>
		<category><![CDATA[Log analysis]]></category>
		<category><![CDATA[MOLAP]]></category>
		<category><![CDATA[Microsoft and SQL*Server]]></category>
		<category><![CDATA[Netezza]]></category>
		<category><![CDATA[OLTP]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[ParAccel]]></category>
		<category><![CDATA[Parallelization]]></category>
		<category><![CDATA[Petabyte-scale data management]]></category>
		<category><![CDATA[Predictive modeling and advanced analytics]]></category>
		<category><![CDATA[Pricing]]></category>
		<category><![CDATA[QlikTech and QlikView]]></category>
		<category><![CDATA[SAND Technology]]></category>
		<category><![CDATA[Scientific research]]></category>
		<category><![CDATA[Sybase]]></category>
		<category><![CDATA[Teradata]]></category>
		<category><![CDATA[Vertica Systems]]></category>
		<category><![CDATA[Web analytics]]></category>
		<category><![CDATA[Workload management]]></category>

		<guid isPermaLink="false">http://www.dbms2.com/?p=4868</guid>
		<description><![CDATA[Analytic data management technology has blossomed, leading to many questions along the lines of &#8220;So which products should I use for which category of problem?&#8221; The old EDW/data mart dichotomy is hopelessly outdated for that purpose, and adding a third category for &#8220;big data&#8221; is little help. Let&#8217;s try eight categories instead. While no categorization [...]]]></description>
			<content:encoded><![CDATA[<p>Analytic data management technology has blossomed, leading to many questions along the lines of &#8220;So which products should I use for which category of problem?&#8221; The old EDW/data mart dichotomy is hopelessly outdated for that purpose, and adding a third category for &#8220;big data&#8221; is little help.</p>
<p>Let&#8217;s try eight categories instead. While <a href="http://www.strategicmessaging.com/no-market-categorization-is-ever-precise/2011/03/01/">no categorization is ever perfect</a>, these each have at least some degree of technical homogeneity. Figuring out which types of analytic database you have or need &#8212; and in most cases you&#8217;ll need several &#8212; is a great early step in your analytic technology planning.  <span id="more-4868"></span></p>
<p><strong><em>Enterprise data warehouse</em></strong> (Full or partial)</p>
<ul>
<li><em>Kinds of data likely to be included:</em> All, but especially operational</li>
<li><em>Likely use styles:</em> All</li>
<li><em>Canonical example:</em> Central EDW for a big enterprise</li>
<li><em>Stresses:</em> Concurrency, reliability, workload management</li>
</ul>
<p>The enterprise data warehouse (EDW) ideal says that you copy all your data into one place, and drive all decision-making from there. <a href="../../../../../2011/06/21/its-official-the-grand-central-edw-will-never-happen/">Full EDWs are pipedreams</a>. Still, a partial EDW makes sense for most large enterprises, and many indeed already have one. The first product lines to consider for classical EDWs are Teradata, DB2, Exadata, and maybe Microsoft SQL Server, especially if you&#8217;re going to stress concurrency and/or operational use cases.</p>
<p><strong><em>Traditional data mart</em></strong></p>
<ul>
<li><em>Kinds of data likely to be included:</em> All</li>
<li><em>Likely use styles:</em> Business intelligence, budgeting/consolidation, investigative</li>
<li><em>Examples:</em> Reporting servers, planning/consolidation servers, anything MOLAP, etc.</li>
<li><em>Stresses:</em> Performance, concurrency, TCO</li>
</ul>
<p>Whether or not you have something like an enterprise data warehouse, it&#8217;s common to have lighter-weight data marts as well. A traditional data mart might drive reports and dashboards. Or it might be specialized for budgeting, planning, and/or consolidation.  Some <a href="../../../../../2011/03/03/investigative-analytics/">investigative analytics</a> may be in the mix as well.</p>
<p>Any DBMS that can support an EDW can also support a data mart, but it may not be the most cost-effective way to do so. Columnar DBMS might have more attractive performance and TCO (Total Cost of Ownership); the same goes for Netezza. Some of them &#8212; e.g. Sybase IQ and <a href="../../../../../2011/06/20/vertica-release-5/">Vertica</a> &#8212; have excellent track records in concurrent usage as well. <a href="../../../../../2011/05/29/when-to-use-relational-database-management-system/">Ted Codd</a> pushed what amounts to MOLAP (Multidimensional OnLine Analytic Processing) systems for these use cases. But relational DBMS commonly do a better job, which is one reason most major MOLAP products have wound up at RDBMS companies.</p>
<p><strong><em>Investigative data mart &#8212; agile</em></strong></p>
<ul>
<li><em>Kinds of data likely to be included:</em> All, especially customer-centric</li>
<li><em>Likely use styles</em>: Investigative</li>
<li><em>Canonical example:</em> A few analysts getting a few TB to examine</li>
<li><em>Stresses:</em> Ease of setup/load, ease of admin, price/performance</li>
</ul>
<p>Besides the traditional data mart, there are at least two other kinds. Both are focused on investigative analytics, but they&#8217;re differentiated by database size.</p>
<p>If you have just a few analysts,* looking at no more than a few terabytes of data (perhaps even just some gigabytes) &#8212; and if that data is &#8220;single-subject&#8221; and fairly homogenous &#8212; your watchwords should be &#8220;cheap&#8221;, &#8220;easy&#8221;, and &#8220;fast&#8221;. You don&#8217;t need to invest in much hardware, in expensive software, in much administrative effort (the analysts can be their own DBAs),  nor should you endure much set-up time. Just grab a product, grab some data, and start running queries (or extracts into the statistical tool of your choice).</p>
<p><em>*If you have dozens or even hundreds of analysts hitting the same database, you&#8217;re probably back to the more concurrency-oriented scenarios outlined above.</em></p>
<p>Infobright is often cost-effective among columnar analytic DBMS. Other vendors might cut you a price break as well. If you have multiple terabytes of data, don&#8217;t rule out Netezza&#8217;s lowest-end products (even if they&#8217;d really rather sell you something bigger). Or, if you&#8217;re in the sub-terabyte range, maybe you can get by with an in-memory BI tool such as QlikView, and not do anything special on the DBMS side at all.</p>
<p><strong><em>Investigative data mart &#8212; big</em></strong></p>
<ul>
<li><em>Kinds of data likely to be included:</em> All, especially customer-centric, logs, financial trade, scientific</li>
<li><em>Likely use styles</em>: Investigative</li>
<li><em>Canonical example:</em> Single-subject 20 TB &#8211; 20 PB relational database<em></em></li>
<li><em>Stresses:</em> Performance, scale-out, analytic functionality</li>
</ul>
<p>But if you&#8217;re looking at tens of terabytes of relational data, or even more, you really do have a &#8220;big data&#8221; problem. Performance and scalability are major challenges, usually best addressed by MPP (Massively Parallel Processing) systems, such as Netezza, Vertica, Aster Data, ParAccel, Teradata, or Greenplum. Performance POCs (Proofs Of Concept) are a big part of the buying process. Vendor price negotiations are crucial too.</p>
<p><em>Actually, in the low tens of terabytes you might be able to get away with a shared-disk system that has excellent compression &#8212; e.g., columnar products like Sybase IQ, Infobright, or SAND, rather than just Vertica and ParAccel.</em></p>
<p>Assuming you have affordable, scalable query performance, the competitive differentiator can switch to additional analytic functionality. Aster, Netezza, ParAccel, Vertica, and Greenplum either offer full <a href="../../../../../2011/02/24/analytic-platforms/">analytic platforms</a>, or seem to be on the path to doing so. Teradata, which now owns Aster Data, offers substantial built-in analytic capability in its traditional products as well, and the same goes for Sybase IQ.</p>
<p><em>Continued in <a href="http://www.dbms2.com/2011/07/05/eight-kinds-of-analytic-database-part-2/">Part 2</a>,</em><em> where we cover some of the more difficult use cases.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.dbms2.com/2011/07/05/eight-kinds-of-analytic-database-part-1/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Traditional databases will eventually wind up in RAM</title>
		<link>http://www.dbms2.com/2011/05/23/databases-ram/</link>
		<comments>http://www.dbms2.com/2011/05/23/databases-ram/#comments</comments>
		<pubDate>Mon, 23 May 2011 16:05:24 +0000</pubDate>
		<dc:creator>Curt Monash</dc:creator>
				<category><![CDATA[Analytic technologies]]></category>
		<category><![CDATA[Cache]]></category>
		<category><![CDATA[In-memory DBMS]]></category>
		<category><![CDATA[Memory-centric data management]]></category>
		<category><![CDATA[OLTP]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Oracle TimesTen]]></category>
		<category><![CDATA[SAP AG]]></category>
		<category><![CDATA[Storage]]></category>
		<category><![CDATA[Theory and architecture]]></category>
		<category><![CDATA[VoltDB and H-Store]]></category>
		<category><![CDATA[memcached]]></category>
		<category><![CDATA[solidDB]]></category>

		<guid isPermaLink="false">http://www.dbms2.com/?p=4520</guid>
		<description><![CDATA[In January, 2010, I posited that it might be helpful to view data as being divided into three categories: Human/Tabular data –i.e., human-generated data that fits well into relational tables or arrays. Human/Nontabular data — i.e., all other data generated by humans. Machine-Generated data. I won&#8217;t now stand by every nuance in that post, which [...]]]></description>
			<content:encoded><![CDATA[<p>In January, 2010, I posited that <a href="http://www.dbms2.com/2010/01/17/three-broad-categories-of-data/">it might be helpful to view data as being divided into three categories</a>:</p>
<ul>
<li><strong>Human/Tabular</strong> data –i.e., human-generated data that  fits well 	into relational tables or arrays.</li>
<li><strong>Human/Nontabular</strong> data — i.e., all other data  generated by humans.</li>
<li><strong>Machine-Generated</strong> data.</li>
</ul>
<p>I won&#8217;t now stand by every nuance in that post, which may differ slightly from those in my more recent posts about <a href="http://www.dbms2.com/2010/12/30/examples-and-definition-of-machine-generated-data/">machine-generated data</a> and <a href="http://www.dbms2.com/2011/05/17/poly-structured-database/">poly-structured databases</a>. But one general idea is hard to dispute:</p>
<p><strong>Traditional database data</strong> &#8212; records of human transactional activity, referred to as &#8220;Human/Tabular data above&#8221; &#8212; <strong>will not grow as fast as Moore&#8217;s Law makes computer chips cheaper.</strong></p>
<p>And that point has a straightforward corollary, namely:</p>
<p><strong>It will become ever more affordable to</strong><strong> put traditional database data entirely into RAM. </strong> <span id="more-4520"></span> </p>
<p>Actually, there are numerous ways for OLTP, other <a href="http://www.dbms2.com/2011/03/30/short-request-and-analytic-processing/">short-request</a>, and some analytic databases to wind up in RAM.</p>
<ul>
<li><a href="http://www.dbms2.com/2009/07/07/hasso-plattner-calls-for-in-memory-oltp-column-stores/">SAP has some good ideas</a> for how it could happen, banging transactions into what is essentially an in-memory analytic database. (I dispute SAP&#8217;s claims of transformational database technology leadership, but that doesn&#8217;t mean the underlying ideas aren&#8217;t good.)</li>
<li>For those who can afford the associated technology disruption, <a href="http://www.dbms2.com/2011/05/21/object-oriented-database-management-systems-oodbms/">memory-centric object-oriented DBMS</a> could be appealing.</li>
<li>Web scalability best practices commonly include keeping data in RAM (e.g., that&#8217;s pretty much the point of caching layer memcached).</li>
<li>SaaS (Software as a Service) companies &#8212; such as <a href="http://www.dbms2.com/2010/08/22/workday-technology-stack/">Workday</a> &#8212; often bring a particular tenant&#8217;s database entirely into RAM.</li>
<li><a href="http://www.dbms2.com/2010/06/12/the-underlying-technology-of-qlikview/">QlikView</a> highlights the benefits of doing business intelligence in RAM.</li>
<li><a href="http://www.dbms2.com/2011/04/21/sas-hpa-does-make-sense-after-all/">SAS HPA</a> makes the argument that even &#8220;big data analytics&#8221; should sometimes be done in RAM.</li>
<li>I don&#8217;t have particularly favorable opinions at this time about marketing strategies or momentum at <a href="http://www.dbms2.com/2008/12/29/ordinary-oltp-dbms-vs-memory-centric-processing/">Oracle TimesTen, IBM solidDB</a>, or <a href="http://www.dbms2.com/2010/06/30/details-and-analysis-of-the-voltdb-argument/">VoltDB</a>, but those examples at least serve to illustrate that memory-centric OLTP DBMS have existed for years.</li>
<li>Actually, SAP has at least two good ideas, if you count <a href="http://www.dbms2.com/2010/02/05/sybase-aleri-rap/">Sybase</a> as part of SAP.</li>
</ul>
<p>And here&#8217;s the kicker: Intel told me last year that <strong>CPUs are headed to 46-bit address spaces around mid-decade.</strong> Indeed, they hired me to help figure out if that was enough.* That multiplies out to <strong>64 terabytes of RAM on a single server,</strong> chip costs permitting. So most of what we now think of as operational databases &#8212; and many of the analytic ones too &#8212; will fit in-memory, even if they run very large businesses.</p>
<p><em>*And did so without putting the discussion under any kind of NDA.</em></p>
<p>Likely consequences of all this include:</p>
<ul>
<li><strong>Legacy apps will</strong> (eventually)<strong> be consolidated and virtualized in-memory.</strong> Their underlying databases will grow so slowly that eventually the cost of putting them in RAM will be too low to worry about.</li>
<li><strong>Expensive storage systems will </strong>(continue to)<strong> be irrelevant to database processing. </strong>Databases that don&#8217;t fit in RAM will typically be big enough to require the attention of a lot of CPUs &#8212; and in those cases the DBMS software itself will handle all the storage tasks.</li>
<li><strong>Major OLTP DBMS vendors, </strong>such as Oracle,<strong> will need alternate in-memory code lines, </strong>because disk-centric architectures are sub-optimal in-memory. Well, that&#8217;s what they have those big R&amp;D budgets for.</li>
<li><strong>SaaS vendors and web businesses may not rely on today&#8217;s major OLTP DBMS vendors.</strong> (I was going to say &#8220;won&#8217;t&#8221; rather than &#8220;may not&#8221; until I recalled the likely M&amp;A endgame.) Traditional enterprises may blanch at migrating away from their legacy DBMS environments, but the trade-offs are different for technology companies using DBMS as subsystems.</li>
</ul>
<p>Of course, the same trends that make data-storing chips cheaper will make data-generating chips cheaper too. So, just as there are huge amounts of machine-generated data that you&#8217;d never pay to store in RAM, the same will still be true 10 years from now; the data volumes involved will just be a lot bigger. And thus there will still be plenty of very large analytic databases using relatively cheap forms of storage, perhaps even disk.</p>
<p>But <strong>OLTP and other short-request processing are likely to wind up in-memory.</strong> And the same may be true for a considerable amount of <strong>analytics,</strong> especially but not only if the analytics have a low-latency requirement.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dbms2.com/2011/05/23/databases-ram/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Object-oriented database management systems (OODBMS)</title>
		<link>http://www.dbms2.com/2011/05/21/object-oriented-database-management-systems-oodbms/</link>
		<comments>http://www.dbms2.com/2011/05/21/object-oriented-database-management-systems-oodbms/#comments</comments>
		<pubDate>Sat, 21 May 2011 10:45:49 +0000</pubDate>
		<dc:creator>Curt Monash</dc:creator>
				<category><![CDATA[Cache]]></category>
		<category><![CDATA[In-memory DBMS]]></category>
		<category><![CDATA[Intersystems and Cache']]></category>
		<category><![CDATA[Memory-centric data management]]></category>
		<category><![CDATA[OLTP]]></category>
		<category><![CDATA[Objectivity and Infinite Graph]]></category>
		<category><![CDATA[Software as a Service (SaaS)]]></category>
		<category><![CDATA[Starcounter]]></category>

		<guid isPermaLink="false">http://www.dbms2.com/?p=4512</guid>
		<description><![CDATA[There seems to be a fair amount of confusion about object-oriented database management systems (OODBMS). Let&#8217;s start with a working definition: An object-oriented database management system (OODBMS, but sometimes just called &#8220;object database&#8221;) is a DBMS that stores data in a logical model that is closely aligned with an application program&#8217;s object model. Of course, [...]]]></description>
			<content:encoded><![CDATA[<p>There seems to be a fair amount of confusion about object-oriented database management systems (OODBMS). Let&#8217;s start with a working definition:</p>
<p><strong>An object-oriented database management system</strong> (OODBMS, but sometimes just called &#8220;object database&#8221;) is a <strong>DBMS that stores data in a logical model that is closely aligned with an application program&#8217;s object model. </strong>Of course, an OODBMS will have a physical data model optimized for the kinds of logical data model it expects.</p>
<p>If you&#8217;re guessing from that definition that there can be difficulties drawing boundaries between the application, the application programming language, the data manipulation language, and/or the DBMS &#8212; you&#8217;re right. Those difficulties have been a big factor in relegating OODBMS to being a relatively niche technology to date.</p>
<p>Examples of what I would call OODBMS include:  <span id="more-4512"></span></p>
<ul>
<li>Intersystems Cache&#8217;, <a href="../../../../../2010/01/15/intersystems-cache-highlights/">the most successful OODBMS product by far</a>, with good OLTP (OnLine Transaction Processing) capabilities and a strong presence in the health care market. Although it was designed around the specialized MUMPS/M language, Cache&#8217; happily talks Java and SQL.</li>
<li><a href="../../../../../2008/02/01/dan-weinreb-on-objectstore/">ObjectStore</a>, a well-pedigreed startup a couple decades ago, which wound up focusing on complex objects in markets such as computer-aided design. ObjectStore was eventually sold to Progress Software, which is positioning ObjectStore more as a <a href="http://web.progress.com/en/objectstore/">distributed caching system</a> than anything else (<a href="../../../../../2005/10/10/the-amazoncom-bookstore-is-a-huge-modern-oltp-app-so-is-it-relational/">Amazon</a> was an impressive reference for that use case). That said, Progress&#8217; ObjectStore business is small, as is its ObjectStore level of effort. Both Cache&#8217; and ObjectStore were at some point unsuccessfully targeted at the XML database market.</li>
<li>Part of <a href="../../../../../2010/08/22/workday-technology-stack/">Workday&#8217;s technology stack</a>. Very-well-pedigreed SaaS (Software as a Service) application vendor Workday decided to go with what amounts to an in-memory OODBMS. This makes all kinds of sense, and is a lot of what rekindled my interest in object-oriented database management.</li>
<li><a href="../../../../../2010/06/19/objectivity-infinite-graph/">Objectivity</a>, also from the 20-years-ago generation, and a poster child for the &#8220;DBMS toolkit as much as a DBMS&#8221; issue.</li>
<li><a href="../../../../../2008/06/08/perst/">McObject Perst</a>, an embeddable memory-centric OODBMS.</li>
<li><a href="../../../../../2008/06/08/perst/">Versant</a>. Actually, by now the Versant company has several different OODBMS; I&#8217;m not sure whether what it&#8217;s selling has much to do with the original Versant product. Anyhow, both the original and current Versant product seem to be positioned in OLTP. Versant has recently suffered from <a href="http://sec.gov/Archives/edgar/data/865917/000104746911000392/a2201670z10-k.htm">declining revenues</a>, in license fees and maintenance alike.</li>
<li><a href="../../../../../2011/05/18/starcounter-high-speed-memory-centric-object-oriented-dbms-coming-soon/">Forthcoming technology from Starcounter</a>, in the area of high-performance memory-centric OLTP. According to my correspondents, Starcounter still needs to explain how its technology is different from what Versant and ObjectStore introduced 20 or so years ago. Interestingly, while ObjectStore shines as a distributed system, Starcounter&#8217;s developers have consigned scale-out to the &#8220;too hard to bother with&#8221; category.</li>
<li>Gemstone, which seemed to be on an ObjectStore-like caching track until it was acquired by VMware.</li>
</ul>
<p>Arguably, OODBMS have all the benefits of <a href="../../../../../2011/02/07/notes-on-document-oriented-nosql/">document-model DBMS</a>, but with different language bindings. And if you&#8217;re going to write in an object-oriented language anyway, those language bindings can seem pretty appealing. In particular, they might be preferable to fighting your way through object/relational mapping.</p>
<p>Other than the double-edged language sword, the main criticism of object-oriented DBMS is that they include a whole lot of pointers. Intersystems and others have shown that, even in a disk-centric world, OODBMS can have excellent performance in OLTP and tolerable performance in simple reporting. As RAM gets cheaper, memory-centric operation becomes ever more viable, making the pointers even less problematic.</p>
<p><strong>Bottom line: If I were starting a SaaS project today, I&#8217;d give serious consideration to memory-centric OODBMS technology. </strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.dbms2.com/2011/05/21/object-oriented-database-management-systems-oodbms/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Starcounter high-speed memory-centric object-oriented DBMS, coming soon</title>
		<link>http://www.dbms2.com/2011/05/18/starcounter-high-speed-memory-centric-object-oriented-dbms-coming-soon/</link>
		<comments>http://www.dbms2.com/2011/05/18/starcounter-high-speed-memory-centric-object-oriented-dbms-coming-soon/#comments</comments>
		<pubDate>Wed, 18 May 2011 10:14:11 +0000</pubDate>
		<dc:creator>Curt Monash</dc:creator>
				<category><![CDATA[Data models and architecture]]></category>
		<category><![CDATA[In-memory DBMS]]></category>
		<category><![CDATA[Memory-centric data management]]></category>
		<category><![CDATA[OLTP]]></category>
		<category><![CDATA[Object]]></category>
		<category><![CDATA[Starcounter]]></category>
		<category><![CDATA[Theory and architecture]]></category>

		<guid isPermaLink="false">http://www.dbms2.com/?p=4502</guid>
		<description><![CDATA[Since posting recently about Starcounter, I&#8217;ve had the chance to actually talk with the company (twice). Hence I know more than before. Starcounter: Has been around as a company since 2006. Has developed memory-centric object-oriented DBMS technology that has been OEMed by a few application software companies (especially in bricks-and-mortar retailing and in online advertising). [...]]]></description>
			<content:encoded><![CDATA[<p>Since posting recently about <a href="../../../../../2011/04/13/starcounter/">Starcounter</a>, I&#8217;ve had the chance to actually talk with the company (twice). Hence I know more than before. <img src='http://www.dbms2.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Starcounter:</p>
<ul>
<li>Has been around as a company since 2006.</li>
<li>Has developed <strong>memory-centric object-oriented DBMS</strong> technology that has been OEMed by a few application software companies (especially in bricks-and-mortar retailing and in online advertising).</li>
<li>Is planning to actually launch an OODBMS product sometime this summer.</li>
<li>Has 14 employees (most or all of whom are in Sweden, which is also where I think Starcounter&#8217;s current customers are centered).</li>
<li>Is planning to shift emphasis soon to the US market.</li>
</ul>
<p>Starcounter&#8217;s value propositions are <strong>programming ease (no object/relational impedance mismatch) </strong>and<strong> performance. </strong>Starcounter believes its DBMS has 100X the performance of conventional DBMS at short-request transaction processing, and 10X the performance of other memory-centric and/or object-oriented DBMS (e.g. Oracle TimesTen, or Versant). That said, Starcounter has not yet tested VoltDB. Starcounter does not claim performance much beyond that of disk-based DBMS on analytic tasks such as aggregations.</p>
<p>The key technical aspect to Starcounter is <strong>integration between the DBMS and the virtual machine,</strong> so that <strong>the same copy of the data is accessed by both the DBMS and the application program,</strong> without any movement or transformation being needed. (Starcounter isn&#8217;t aware of any other object-oriented DBMS that work this way.) Transient and persistent data are handled in the same way, seamlessly.</p>
<p>Other Starcounter technical highlights include:  <span id="more-4502"></span></p>
<ul>
<li>Starcounter is focused on OLTP (OnLine Transaction Processing).</li>
<li>The Starcounter OODBMS is ACID-compliant.</li>
<li>The Starcounter DBMS is single-server, albeit multi-core. Starcounter thinks this is OK because the Starcounter DBMS can do millions of transactions per second on a server with 8 cores or less. (I neglected to ask how quickly Starcounter thinks RAM would fill up on a single server at that kind of update rate.)</li>
<li>A Starcounter database sits in RAM. Logs go to disk, and Starcounter doesn&#8217;t commit a transaction in RAM until there&#8217;s been an acknowledgement that it&#8217;s been logged to disk.*</li>
<li>Since Starcounter never wants to read from disk (except in the case of recovery), logs can be written pretty much at sequential/batch update speeds.</li>
<li>You can do SQL queries against Starcounter objects, based on T-tree indexes. Otherwise, Starcounter data manipulation is done via what effectively is a proprietary object-oriented data manipulation language. (I neglected to ask whether there was any concept of join, or whether Starcounter SQL just does SELECTs. Starcounter did say that the only schema in a Starcounter database is the object model.)</li>
<li>Naturally, Starcounter objects are compressed, so that the most possible data fits into the fastest possible tier of memory. Proxy objects also come into play here.</li>
<li>Starcounter runs on Windows and .NET, supposedly for reasons of better virtual machine performance. Ports to Linux, Java, etc. are on the drawing boards, but won&#8217;t be particularly easy.</li>
</ul>
<p><em>*I thought Starcounter said that the core that runs the operating system communicates the acknowledgement via Direct Memory Access to a core that runs the Starcounter DBMS, obviating the need for an interrupt (except to the core that runs the operating system). But upon reflection, that doesn&#8217;t really seem to make sense.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.dbms2.com/2011/05/18/starcounter-high-speed-memory-centric-object-oriented-dbms-coming-soon/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

