<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: GDC08: SQL Considered Harmful</title>
	<atom:link href="http://t-machine.org/index.php/2008/02/21/gdc08-sql-considered-harmful/feed/" rel="self" type="application/rss+xml" />
	<link>http://t-machine.org/index.php/2008/02/21/gdc08-sql-considered-harmful/</link>
	<description>Internet Gaming, Computer Games, Technology, MMO, and Web 2.0</description>
	<lastBuildDate>Wed, 10 Mar 2010 11:31:29 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Jez Nicholson</title>
		<link>http://t-machine.org/index.php/2008/02/21/gdc08-sql-considered-harmful/comment-page-1/#comment-1707</link>
		<dc:creator>Jez Nicholson</dc:creator>
		<pubDate>Tue, 01 Apr 2008 12:05:57 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/index.php/2008/02/21/gdc08-sql-considered-harmful/#comment-1707</guid>
		<description>..&quot;one column per stat, with no actual names for columns, instead just have “Stat 1 value”, “stat 2 value”&quot;....that sounds very like traditional OLAP design to me, which is all about structuring data ready for analysis. The &quot;how to get proper stats info&quot; is an entirely different problem to the &quot;how to highly performant db read-write&quot;.</description>
		<content:encoded><![CDATA[<p>..&#8221;one column per stat, with no actual names for columns, instead just have “Stat 1 value”, “stat 2 value”&#8221;&#8230;.that sounds very like traditional OLAP design to me, which is all about structuring data ready for analysis. The &#8220;how to get proper stats info&#8221; is an entirely different problem to the &#8220;how to highly performant db read-write&#8221;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Darius K.</title>
		<link>http://t-machine.org/index.php/2008/02/21/gdc08-sql-considered-harmful/comment-page-1/#comment-1672</link>
		<dc:creator>Darius K.</dc:creator>
		<pubDate>Thu, 13 Mar 2008 14:30:38 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/index.php/2008/02/21/gdc08-sql-considered-harmful/#comment-1672</guid>
		<description>Okay, I just got around to reading this post for the first time today. Let me just say that the way COH initially did their stat collection was bad, but the switch to generic stat fields was WAY WORSE. Holy crap, who thought of that? Oh wait, I know: it was a programmer who thought of that. Not a data analyst. Anyone who actually wants to write queries to report off a database would have kicked and screamed until they did something more sensible.

What&#039;s with the obsession with having one unified table for all your stats? That&#039;s insane. It&#039;s a fucking RELATIONAL database.

I can only hope that the talks I have given on this have steered developers away from making those mistakes in the future.</description>
		<content:encoded><![CDATA[<p>Okay, I just got around to reading this post for the first time today. Let me just say that the way COH initially did their stat collection was bad, but the switch to generic stat fields was WAY WORSE. Holy crap, who thought of that? Oh wait, I know: it was a programmer who thought of that. Not a data analyst. Anyone who actually wants to write queries to report off a database would have kicked and screamed until they did something more sensible.</p>
<p>What&#8217;s with the obsession with having one unified table for all your stats? That&#8217;s insane. It&#8217;s a fucking RELATIONAL database.</p>
<p>I can only hope that the talks I have given on this have steered developers away from making those mistakes in the future.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: T=Machine &#187; Entity Systems are the Future of MMOs Part 4</title>
		<link>http://t-machine.org/index.php/2008/02/21/gdc08-sql-considered-harmful/comment-page-1/#comment-1669</link>
		<dc:creator>T=Machine &#187; Entity Systems are the Future of MMOs Part 4</dc:creator>
		<pubDate>Wed, 12 Mar 2008 23:02:44 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/index.php/2008/02/21/gdc08-sql-considered-harmful/#comment-1669</guid>
		<description>[...] industry that specializes in providing software to manage databases of this size and larger, but MMO developers don&#8217;t like SQL and Relational programming. This is a real problem - relational databases can handle the load, but relational programming is [...]</description>
		<content:encoded><![CDATA[<p>[...] industry that specializes in providing software to manage databases of this size and larger, but MMO developers don&#8217;t like SQL and Relational programming. This is a real problem &#8211; relational databases can handle the load, but relational programming is [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ben Zeigler</title>
		<link>http://t-machine.org/index.php/2008/02/21/gdc08-sql-considered-harmful/comment-page-1/#comment-1584</link>
		<dc:creator>Ben Zeigler</dc:creator>
		<pubDate>Fri, 07 Mar 2008 08:49:25 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/index.php/2008/02/21/gdc08-sql-considered-harmful/#comment-1584</guid>
		<description>Also, presentation slides have now been &lt;a href=&quot;http://doublebuffered.com/2008/03/07/sql-considered-harmful-presentation-slides/&quot; rel=&quot;nofollow&quot;&gt;posted&lt;/a&gt;</description>
		<content:encoded><![CDATA[<p>Also, presentation slides have now been <a href="http://doublebuffered.com/2008/03/07/sql-considered-harmful-presentation-slides/" onclick="javascript:pageTracker._trackPageview('/outbound/comment/http://doublebuffered.com/2008/03/07/sql-considered-harmful-presentation-slides/');" rel="nofollow">posted</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ben Zeigler</title>
		<link>http://t-machine.org/index.php/2008/02/21/gdc08-sql-considered-harmful/comment-page-1/#comment-1555</link>
		<dc:creator>Ben Zeigler</dc:creator>
		<pubDate>Tue, 26 Feb 2008 11:43:42 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/index.php/2008/02/21/gdc08-sql-considered-harmful/#comment-1555</guid>
		<description>Heyo. Ben Zeigler from Cryptic Studios. I was the other guy answering questions after the talk (Shannon&#039;s a way better speaker than me, trust me :) ). Anyway, I just put up some responses to some of the general comments people have at &lt;a href=&quot;http://doublebuffered.com/2008/02/26/gdc-08-sql-considered-harmful/&quot; rel=&quot;nofollow&quot;&gt;my blog&lt;/a&gt;.

Another note is that I probably overstated it when I said &quot;Whole System in 2 programmer years&quot;. What I meant was the Transaction and DB part of the system. It was built on top of a data serialization engine developed and in production in CoH. Basically, it was 2 programmer years to transition from a robust data parser to a high-performance DB and transaction engine.</description>
		<content:encoded><![CDATA[<p>Heyo. Ben Zeigler from Cryptic Studios. I was the other guy answering questions after the talk (Shannon&#8217;s a way better speaker than me, trust me :) ). Anyway, I just put up some responses to some of the general comments people have at <a href="http://doublebuffered.com/2008/02/26/gdc-08-sql-considered-harmful/" onclick="javascript:pageTracker._trackPageview('/outbound/comment/http://doublebuffered.com/2008/02/26/gdc-08-sql-considered-harmful/');" rel="nofollow">my blog</a>.</p>
<p>Another note is that I probably overstated it when I said &#8220;Whole System in 2 programmer years&#8221;. What I meant was the Transaction and DB part of the system. It was built on top of a data serialization engine developed and in production in CoH. Basically, it was 2 programmer years to transition from a robust data parser to a high-performance DB and transaction engine.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: GDC 08: SQL Considered Harmful &#171; Double Buffered</title>
		<link>http://t-machine.org/index.php/2008/02/21/gdc08-sql-considered-harmful/comment-page-1/#comment-1554</link>
		<dc:creator>GDC 08: SQL Considered Harmful &#171; Double Buffered</dc:creator>
		<pubDate>Tue, 26 Feb 2008 11:36:29 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/index.php/2008/02/21/gdc08-sql-considered-harmful/#comment-1554</guid>
		<description>[...] Shannon&#8217;s working on putting slides up, but until then there&#8217;s an great summary up at T=Machine. [NC]Anson has some commentary up, as does Jeff Freeman (cute image, need to use that somewhere). I [...]</description>
		<content:encoded><![CDATA[<p>[...] Shannon&#8217;s working on putting slides up, but until then there&#8217;s an great summary up at T=Machine. [NC]Anson has some commentary up, as does Jeff Freeman (cute image, need to use that somewhere). I [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike Jackson</title>
		<link>http://t-machine.org/index.php/2008/02/21/gdc08-sql-considered-harmful/comment-page-1/#comment-1553</link>
		<dc:creator>Mike Jackson</dc:creator>
		<pubDate>Tue, 26 Feb 2008 10:33:45 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/index.php/2008/02/21/gdc08-sql-considered-harmful/#comment-1553</guid>
		<description>It&#039;s not just this talk that argumes generic RDBMSs like MSSQL can do everything badly and more specialised engines are needed for different functions.

This paper is an interesting take on how a specific OLTP engine could be designed:
http://www.vldb.org/conf/2007/papers/industrial/p1150-stonebraker.pdf

Summary: Current RDBMSs are provably useless for everything but OLTP and actually they&#039;re rubbish at that too. Suggested replacement (called H-Store) OLTP design using distributed nodes with all data in main memory. No redo log (failed machines rebuild from good ones), undo log in main memory and not persisted beyond completion of transaction. Clustering gives availability and scalability advantages. Since OLTP transactions are light-weight and fast, make it single threaded for each node and lose multi-threading management overhead. Assumptions made about the types of transactions to be run (no ad-hoc queries, no analysis queries etc.) and query planning and execution simplified based on that. They&#039;ve built a prototype that wins at TPC-C by a factor of 82.

It&#039;s not actually that far from Crypic DB, if I understand it correctly.

Personally, having historical game metrics in SQL accessable relational databases seems like the most sensible approach. Whether the write-heavy &#039;live&#039; game database should also be in a conventional disk based RDBMS is worth discussion I think.</description>
		<content:encoded><![CDATA[<p>It&#8217;s not just this talk that argumes generic RDBMSs like MSSQL can do everything badly and more specialised engines are needed for different functions.</p>
<p>This paper is an interesting take on how a specific OLTP engine could be designed:<br />
<a href="http://www.vldb.org/conf/2007/papers/industrial/p1150-stonebraker.pdf" onclick="javascript:pageTracker._trackPageview('/outbound/comment/http://www.vldb.org/conf/2007/papers/industrial/p1150-stonebraker.pdf');" rel="nofollow">http://www.vldb.org/conf/2007/papers/industrial/p1150-stonebraker.pdf</a></p>
<p>Summary: Current RDBMSs are provably useless for everything but OLTP and actually they&#8217;re rubbish at that too. Suggested replacement (called H-Store) OLTP design using distributed nodes with all data in main memory. No redo log (failed machines rebuild from good ones), undo log in main memory and not persisted beyond completion of transaction. Clustering gives availability and scalability advantages. Since OLTP transactions are light-weight and fast, make it single threaded for each node and lose multi-threading management overhead. Assumptions made about the types of transactions to be run (no ad-hoc queries, no analysis queries etc.) and query planning and execution simplified based on that. They&#8217;ve built a prototype that wins at TPC-C by a factor of 82.</p>
<p>It&#8217;s not actually that far from Crypic DB, if I understand it correctly.</p>
<p>Personally, having historical game metrics in SQL accessable relational databases seems like the most sensible approach. Whether the write-heavy &#8216;live&#8217; game database should also be in a conventional disk based RDBMS is worth discussion I think.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Matthew Weigel</title>
		<link>http://t-machine.org/index.php/2008/02/21/gdc08-sql-considered-harmful/comment-page-1/#comment-1542</link>
		<dc:creator>Matthew Weigel</dc:creator>
		<pubDate>Sat, 23 Feb 2008 07:17:44 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/index.php/2008/02/21/gdc08-sql-considered-harmful/#comment-1542</guid>
		<description>Shannon, I&#039;ve got a big enough response that I went ahead and posted it to &lt;a href=&quot;http://ncanson.livejournal.com/4953.html&quot; rel=&quot;nofollow&quot;&gt;my blog&lt;/a&gt; rather than in this tiny comment field.</description>
		<content:encoded><![CDATA[<p>Shannon, I&#8217;ve got a big enough response that I went ahead and posted it to <a href="http://ncanson.livejournal.com/4953.html" onclick="javascript:pageTracker._trackPageview('/outbound/comment/http://ncanson.livejournal.com/4953.html');" rel="nofollow">my blog</a> rather than in this tiny comment field.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Shannon Posniewski</title>
		<link>http://t-machine.org/index.php/2008/02/21/gdc08-sql-considered-harmful/comment-page-1/#comment-1541</link>
		<dc:creator>Shannon Posniewski</dc:creator>
		<pubDate>Sat, 23 Feb 2008 04:08:35 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/index.php/2008/02/21/gdc08-sql-considered-harmful/#comment-1541</guid>
		<description>Matthew: Just read about your approach on your site, which is mainly to use Blobs for storing data. We had a mandate to expose all the internal fields by the publisher so they could build tools, which they never did :-), so Blobs weren&#039;t allowed. The Cryptic DB approach is to speak &quot;Blob&quot; natively (more or less).</description>
		<content:encoded><![CDATA[<p>Matthew: Just read about your approach on your site, which is mainly to use Blobs for storing data. We had a mandate to expose all the internal fields by the publisher so they could build tools, which they never did :-), so Blobs weren&#8217;t allowed. The Cryptic DB approach is to speak &#8220;Blob&#8221; natively (more or less).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Shannon Posniewski</title>
		<link>http://t-machine.org/index.php/2008/02/21/gdc08-sql-considered-harmful/comment-page-1/#comment-1540</link>
		<dc:creator>Shannon Posniewski</dc:creator>
		<pubDate>Sat, 23 Feb 2008 04:02:45 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/index.php/2008/02/21/gdc08-sql-considered-harmful/#comment-1540</guid>
		<description>It&#039;s certainly possible (thought I personally don&#039;t think it&#039;s probable) that some other DB out there would have worked perfectly. I regret that I wasn&#039;t clear enough about that in the talk.

I realize now that the talk should have emphasized the static data storage system we had more. It was the existence of this system which precipitated our approach to Cryptic DB. Since we already had a method of defining data structures with metadata and storing and retrieving them generically, we already had a big jump on the system. The DB impedance is practically zero, which is a huge boon.

Matthew: The write-through cache method operates well for City of Heroes/Villains and is still used today. Debugging it wasn&#039;t fun, and we lost real ACID game transactions in the process. In our new engine, we need a lot more performance than that could provide (15x is the goal, IIRC) and we want game transactions (e.g. both sides of a trade) to be ACID to the DB. A  write-through cache does not typically provide this.

I appreciate all your comments. If I ever give the talk again, I shall be certain to declare the shortcomings of the talk itself at the outset. :-)</description>
		<content:encoded><![CDATA[<p>It&#8217;s certainly possible (thought I personally don&#8217;t think it&#8217;s probable) that some other DB out there would have worked perfectly. I regret that I wasn&#8217;t clear enough about that in the talk.</p>
<p>I realize now that the talk should have emphasized the static data storage system we had more. It was the existence of this system which precipitated our approach to Cryptic DB. Since we already had a method of defining data structures with metadata and storing and retrieving them generically, we already had a big jump on the system. The DB impedance is practically zero, which is a huge boon.</p>
<p>Matthew: The write-through cache method operates well for City of Heroes/Villains and is still used today. Debugging it wasn&#8217;t fun, and we lost real ACID game transactions in the process. In our new engine, we need a lot more performance than that could provide (15x is the goal, IIRC) and we want game transactions (e.g. both sides of a trade) to be ACID to the DB. A  write-through cache does not typically provide this.</p>
<p>I appreciate all your comments. If I ever give the talk again, I shall be certain to declare the shortcomings of the talk itself at the outset. :-)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Joe Ludwig</title>
		<link>http://t-machine.org/index.php/2008/02/21/gdc08-sql-considered-harmful/comment-page-1/#comment-1535</link>
		<dc:creator>Joe Ludwig</dc:creator>
		<pubDate>Fri, 22 Feb 2008 22:58:13 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/index.php/2008/02/21/gdc08-sql-considered-harmful/#comment-1535</guid>
		<description>&lt;blockquote&gt;[Adam: I’m really suspcipious about this problme - where is it coming from?]&lt;/blockquote&gt;
We&#039;ve run into the same thing on our SQL Server installations. The SQL Server collects statistics and uses them to change the optimization plan used for queries. On a busy database this can introduce a delay of up to 30 seconds at the moment the plan changes.

SQL Server 2005 introduced a new option to do this statistic updating in the background so queries don&#039;t get queued up behind it. CoH came out in 2004, though, so was a little late to do them any good.</description>
		<content:encoded><![CDATA[<blockquote><p>[Adam: I’m really suspcipious about this problme - where is it coming from?]</p></blockquote>
<p>We&#8217;ve run into the same thing on our SQL Server installations. The SQL Server collects statistics and uses them to change the optimization plan used for queries. On a busy database this can introduce a delay of up to 30 seconds at the moment the plan changes.</p>
<p>SQL Server 2005 introduced a new option to do this statistic updating in the background so queries don&#8217;t get queued up behind it. CoH came out in 2004, though, so was a little late to do them any good.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Matthew Weigel</title>
		<link>http://t-machine.org/index.php/2008/02/21/gdc08-sql-considered-harmful/comment-page-1/#comment-1534</link>
		<dc:creator>Matthew Weigel</dc:creator>
		<pubDate>Fri, 22 Feb 2008 00:15:58 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/index.php/2008/02/21/gdc08-sql-considered-harmful/#comment-1534</guid>
		<description>Count me as an MMORPG developer who hasn&#039;t seen major performance problems with their database. On the other hand, we started off with a write-through cache layer between the game server and the database (that also stored snapshots every ~15 minutes rather than constant updates). Since then we&#039;ve added a last-ditch save effort that writes data out to disk in the event of a crash, so that when the server comes back up, zero data is lost (naturally, total system failure isn&#039;t accounted for, but that&#039;s what the constant snapshots are for).

On the other hand, because we&#039;re already using SQL Server as a storage engine, it&#039;s fairly easy to mix in some relational data (in our case, the goal is to post-process saved data and make a second, non-authoritative copy in the database that is amenable to data mining) as we go along. The data mining can be done by pretty much anyone at the company with a little SQL experience, and because we get transactional replication for cheap (that is, it&#039;s already coded), we can make offline copies of that data as well.</description>
		<content:encoded><![CDATA[<p>Count me as an MMORPG developer who hasn&#8217;t seen major performance problems with their database. On the other hand, we started off with a write-through cache layer between the game server and the database (that also stored snapshots every ~15 minutes rather than constant updates). Since then we&#8217;ve added a last-ditch save effort that writes data out to disk in the event of a crash, so that when the server comes back up, zero data is lost (naturally, total system failure isn&#8217;t accounted for, but that&#8217;s what the constant snapshots are for).</p>
<p>On the other hand, because we&#8217;re already using SQL Server as a storage engine, it&#8217;s fairly easy to mix in some relational data (in our case, the goal is to post-process saved data and make a second, non-authoritative copy in the database that is amenable to data mining) as we go along. The data mining can be done by pretty much anyone at the company with a little SQL experience, and because we get transactional replication for cheap (that is, it&#8217;s already coded), we can make offline copies of that data as well.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: adam</title>
		<link>http://t-machine.org/index.php/2008/02/21/gdc08-sql-considered-harmful/comment-page-1/#comment-1533</link>
		<dc:creator>adam</dc:creator>
		<pubDate>Thu, 21 Feb 2008 19:46:27 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/index.php/2008/02/21/gdc08-sql-considered-harmful/#comment-1533</guid>
		<description>I could hardly miss a talk with such a provocative title :).

It&#039;s really interesting to know what you tried, and I like that aspect, but a lot of people in the audience are going to take what you say as true, and a lot of what you did say flies in the face of standard practices that are easily researchable on the web these days.

I think if you focussed more on the &quot;what we tried in order to solve the problems&quot; BUT also went and researched other solutions to those kinds of problems, and presented the two sets of approaches side-by-side, and perhaps looked at why it was that you had so much trouble finding out that stuff in the first place, then most or all of my criticisms would disappear.</description>
		<content:encoded><![CDATA[<p>I could hardly miss a talk with such a provocative title :).</p>
<p>It&#8217;s really interesting to know what you tried, and I like that aspect, but a lot of people in the audience are going to take what you say as true, and a lot of what you did say flies in the face of standard practices that are easily researchable on the web these days.</p>
<p>I think if you focussed more on the &#8220;what we tried in order to solve the problems&#8221; BUT also went and researched other solutions to those kinds of problems, and presented the two sets of approaches side-by-side, and perhaps looked at why it was that you had so much trouble finding out that stuff in the first place, then most or all of my criticisms would disappear.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Shannon Posniewski</title>
		<link>http://t-machine.org/index.php/2008/02/21/gdc08-sql-considered-harmful/comment-page-1/#comment-1532</link>
		<dc:creator>Shannon Posniewski</dc:creator>
		<pubDate>Thu, 21 Feb 2008 17:37:51 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/index.php/2008/02/21/gdc08-sql-considered-harmful/#comment-1532</guid>
		<description>Well, first off, thank you for coming to my talk!

Every MMORPG developer I&#039;ve spoken to has had major performance problems with their database. They have tried to solve this problem in several ways. I didn&#039;t make a big enough point of this during the talk, I guess, but I was presenting what *Cryptic&#039;s* experience was with a relational DB and what we decided to do to solve those problems. I wasn&#039;t trying to sell anything or saying that &quot;this is *the* solution.&quot; It&#039;s merely what we decided to do.

Another studio may have different needs (and competencies) from ours, and so their decision might be different. We did the best thing for us.</description>
		<content:encoded><![CDATA[<p>Well, first off, thank you for coming to my talk!</p>
<p>Every MMORPG developer I&#8217;ve spoken to has had major performance problems with their database. They have tried to solve this problem in several ways. I didn&#8217;t make a big enough point of this during the talk, I guess, but I was presenting what *Cryptic&#8217;s* experience was with a relational DB and what we decided to do to solve those problems. I wasn&#8217;t trying to sell anything or saying that &#8220;this is *the* solution.&#8221; It&#8217;s merely what we decided to do.</p>
<p>Another studio may have different needs (and competencies) from ours, and so their decision might be different. We did the best thing for us.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Juha Lindfors</title>
		<link>http://t-machine.org/index.php/2008/02/21/gdc08-sql-considered-harmful/comment-page-1/#comment-1531</link>
		<dc:creator>Juha Lindfors</dc:creator>
		<pubDate>Thu, 21 Feb 2008 15:33:00 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/index.php/2008/02/21/gdc08-sql-considered-harmful/#comment-1531</guid>
		<description>It is a bit surprising if there was indeed no effort to look at existing products to handle their use case (which is not specific to games).

High volume of inserts is indeed a performance hot spot, and most generic relational database systems don&#039;t deal with this all that well (relatively speaking). But then the nature of the data (for metrics, logs, and audits) is such that backing it with full relational model is not ideal anyway (most of it is either aggregate or sequential data which lends itself better to a &quot;flat&quot; record model).

There are significant industries that need to deal with this same issue (high level of concurrent inserts for logs and audits, with low and/or predictable latency) and major database vendors do offer products that are specifically tailored for this use case (MS SQL not being one of them).

Spending few weeks/months for research might have saved a year&#039;s worth of implementation effort.</description>
		<content:encoded><![CDATA[<p>It is a bit surprising if there was indeed no effort to look at existing products to handle their use case (which is not specific to games).</p>
<p>High volume of inserts is indeed a performance hot spot, and most generic relational database systems don&#8217;t deal with this all that well (relatively speaking). But then the nature of the data (for metrics, logs, and audits) is such that backing it with full relational model is not ideal anyway (most of it is either aggregate or sequential data which lends itself better to a &#8220;flat&#8221; record model).</p>
<p>There are significant industries that need to deal with this same issue (high level of concurrent inserts for logs and audits, with low and/or predictable latency) and major database vendors do offer products that are specifically tailored for this use case (MS SQL not being one of them).</p>
<p>Spending few weeks/months for research might have saved a year&#8217;s worth of implementation effort.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Joel</title>
		<link>http://t-machine.org/index.php/2008/02/21/gdc08-sql-considered-harmful/comment-page-1/#comment-1530</link>
		<dc:creator>Joel</dc:creator>
		<pubDate>Thu, 21 Feb 2008 04:08:52 +0000</pubDate>
		<guid isPermaLink="false">http://t-machine.org/index.php/2008/02/21/gdc08-sql-considered-harmful/#comment-1530</guid>
		<description>&quot;Whole system from start to finish was two people for maybe a year.&quot;

My god... they spent 2 man years developing a database system that they think will out-perform systems that have spent thousands of man years in development?  I have no doubt this will crash and burn.</description>
		<content:encoded><![CDATA[<p>&#8220;Whole system from start to finish was two people for maybe a year.&#8221;</p>
<p>My god&#8230; they spent 2 man years developing a database system that they think will out-perform systems that have spent thousands of man years in development?  I have no doubt this will crash and burn.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
