<?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: In the ORM Battle, Everyone Loses.</title>
	<atom:link href="http://lostechies.com/chadmyers/2008/06/29/in-the-orm-battle-everyone-loses/feed/" rel="self" type="application/rss+xml" />
	<link>http://lostechies.com/chadmyers/2008/06/29/in-the-orm-battle-everyone-loses/</link>
	<description>Software development, testing, and techie life</description>
	<lastBuildDate>Thu, 08 Mar 2012 22:19:00 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4.2</generator>
	<item>
		<title>By: Chad Myers</title>
		<link>http://lostechies.com/chadmyers/2008/06/29/in-the-orm-battle-everyone-loses/#comment-411</link>
		<dc:creator>Chad Myers</dc:creator>
		<pubDate>Sun, 06 Jul 2008 17:27:38 +0000</pubDate>
		<guid isPermaLink="false">/blogs/chad_myers/archive/2008/06/28/in-the-orm-battle-everyone-loses.aspx#comment-411</guid>
		<description>@Kevin: Great comment, thanks!  I&#039;m sure that there are a good number of large databases, I still think the vast majority are under 30GB, in fact most are probably under 10GB (at least the OLTP portions, reporting/denormalized/warehouse/OLAP databases are a separate issue).

You&#039;re right about solid-state drives, but I&#039;m pretty confident we&#039;ll be seeing these problems solved in short order and solid state drives becoming very viable. But you&#039;re right, as it currently stands, they&#039;re not sufficient.

I also agree that the relational model has proven itself time and time again for the best way to store and retrieve data that involves a slower permanent storage mechanism behind the database engine (i.e. disks, SAN, etc).  My point is this: If everything is already in memory, is the relational model the best model for representing data in a high-speed storage mechanism (i.e. RAM)?  Especially when you consider that our applications are object-oriented and we&#039;re spending a lot of effort and pain dealing with Object/Relational mapping concerns?

I&#039;m not saying get rid of reltional, I&#039;m saying, don&#039;t use relational in an in-memory situation JUST BECAUSE that&#039;s we&#039;ve used in the past and that&#039;s what we know. If, in fact, it turns out that the relational structure still proves itself in an in-memory-only situation, then great, we&#039;ll keep using it. But we should all be aware the reasons WHY we&#039;re using the relational model in those circumstances.

I think object databases are getting there, but you&#039;re right, I still don&#039;t think they can compete in the large DB realm.  But for databases that large, you&#039;re probably not talking about a lot of OLTP stuff, you&#039;re probably housing a lot of historical data for reporting or &quot;you might also like these products&quot;-type stuff, right?  I don&#039;t think that even EBay&#039;s active auction table data pushes past a few dozen GB. It&#039;s all the other historical data (user history, user ratings, etc, etc, etc).

In an O-O world, it would probably make sense to only have the active domain objects in the ODB and push the historical data into a separate relational model for querying and large data storage using disks/SAN, etc.</description>
		<content:encoded><![CDATA[<p>@Kevin: Great comment, thanks!  I&#8217;m sure that there are a good number of large databases, I still think the vast majority are under 30GB, in fact most are probably under 10GB (at least the OLTP portions, reporting/denormalized/warehouse/OLAP databases are a separate issue).</p>
<p>You&#8217;re right about solid-state drives, but I&#8217;m pretty confident we&#8217;ll be seeing these problems solved in short order and solid state drives becoming very viable. But you&#8217;re right, as it currently stands, they&#8217;re not sufficient.</p>
<p>I also agree that the relational model has proven itself time and time again for the best way to store and retrieve data that involves a slower permanent storage mechanism behind the database engine (i.e. disks, SAN, etc).  My point is this: If everything is already in memory, is the relational model the best model for representing data in a high-speed storage mechanism (i.e. RAM)?  Especially when you consider that our applications are object-oriented and we&#8217;re spending a lot of effort and pain dealing with Object/Relational mapping concerns?</p>
<p>I&#8217;m not saying get rid of reltional, I&#8217;m saying, don&#8217;t use relational in an in-memory situation JUST BECAUSE that&#8217;s we&#8217;ve used in the past and that&#8217;s what we know. If, in fact, it turns out that the relational structure still proves itself in an in-memory-only situation, then great, we&#8217;ll keep using it. But we should all be aware the reasons WHY we&#8217;re using the relational model in those circumstances.</p>
<p>I think object databases are getting there, but you&#8217;re right, I still don&#8217;t think they can compete in the large DB realm.  But for databases that large, you&#8217;re probably not talking about a lot of OLTP stuff, you&#8217;re probably housing a lot of historical data for reporting or &#8220;you might also like these products&#8221;-type stuff, right?  I don&#8217;t think that even EBay&#8217;s active auction table data pushes past a few dozen GB. It&#8217;s all the other historical data (user history, user ratings, etc, etc, etc).</p>
<p>In an O-O world, it would probably make sense to only have the active domain objects in the ODB and push the historical data into a separate relational model for querying and large data storage using disks/SAN, etc.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kevin Hegg</title>
		<link>http://lostechies.com/chadmyers/2008/06/29/in-the-orm-battle-everyone-loses/#comment-410</link>
		<dc:creator>Kevin Hegg</dc:creator>
		<pubDate>Sun, 06 Jul 2008 16:07:38 +0000</pubDate>
		<guid isPermaLink="false">/blogs/chad_myers/archive/2008/06/28/in-the-orm-battle-everyone-loses.aspx#comment-410</guid>
		<description>Chad,

I believe the DBMS market is going to change significantly in the coming years, but I believe some of your facts are incorrect and this is leading you to faulty conclusions.

First, a large percentage of databases are growing at a rate of 10&#039;s gigabytes - terabytes per day. Within a very short period of time it is no longer possible to cache everything in RAM. Placing large percentages of databases in RAM has been successfully done for years, but over the last few years the percentage that many organizations can put into RAM has dropped to a low percentage. So, while you conclude that it is more possible I conclude that it is less possible.

Second, the relational model has been proven superior to network or hierarchical models for a couple of decades now. There have been numerous challenges over the years, but no sustainable superior alternatives have been developed. It is interesting that the relational alternatives attack on the small databases, but that is exactly the wrong place. The small database problem is no longer interesting to most vendors, database researchers, and organizations. Solving the large database problem is where the focus is now and anything under 100 GB is considered small. The biggest problem facing the relational model is the 10+ TB databases. Relational models do very well on the low end, but completely fall apart on the high end. It will be the inability of RDBMS&#039;s to scale on the high end that will have more impact on the database market than non-relational or in-memory alternatives on the low end.

Third, solid-state drives aren&#039;t close to being ready for the mass market. Heavily used databases can wear out a solid-state drive in a couple of months. The organizations that need them the most can&#039;t afford them due to their high cost and short life span. I&#039;m sure this will get better over time, but solid-state is somewhat overhyped right now.

What I struggle with and don&#039;t have an answer for yet is what to do about the high end. Let&#039;s assume we eliminate relational or come up with an O-O solution that everyone is happy with on the low end. It is not clear to me that O-O is going to do any better on the high end. I don&#039;t know of anyone working on a high end database (250+ TB) that is considering an object model. Many of them have rejected a pure relational model, but still rely on some relational technology. So, if they aren&#039;t going to use an object model then there will have to be some mapping.</description>
		<content:encoded><![CDATA[<p>Chad,</p>
<p>I believe the DBMS market is going to change significantly in the coming years, but I believe some of your facts are incorrect and this is leading you to faulty conclusions.</p>
<p>First, a large percentage of databases are growing at a rate of 10&#8242;s gigabytes &#8211; terabytes per day. Within a very short period of time it is no longer possible to cache everything in RAM. Placing large percentages of databases in RAM has been successfully done for years, but over the last few years the percentage that many organizations can put into RAM has dropped to a low percentage. So, while you conclude that it is more possible I conclude that it is less possible.</p>
<p>Second, the relational model has been proven superior to network or hierarchical models for a couple of decades now. There have been numerous challenges over the years, but no sustainable superior alternatives have been developed. It is interesting that the relational alternatives attack on the small databases, but that is exactly the wrong place. The small database problem is no longer interesting to most vendors, database researchers, and organizations. Solving the large database problem is where the focus is now and anything under 100 GB is considered small. The biggest problem facing the relational model is the 10+ TB databases. Relational models do very well on the low end, but completely fall apart on the high end. It will be the inability of RDBMS&#8217;s to scale on the high end that will have more impact on the database market than non-relational or in-memory alternatives on the low end.</p>
<p>Third, solid-state drives aren&#8217;t close to being ready for the mass market. Heavily used databases can wear out a solid-state drive in a couple of months. The organizations that need them the most can&#8217;t afford them due to their high cost and short life span. I&#8217;m sure this will get better over time, but solid-state is somewhat overhyped right now.</p>
<p>What I struggle with and don&#8217;t have an answer for yet is what to do about the high end. Let&#8217;s assume we eliminate relational or come up with an O-O solution that everyone is happy with on the low end. It is not clear to me that O-O is going to do any better on the high end. I don&#8217;t know of anyone working on a high end database (250+ TB) that is considering an object model. Many of them have rejected a pure relational model, but still rely on some relational technology. So, if they aren&#8217;t going to use an object model then there will have to be some mapping.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jlockwood</title>
		<link>http://lostechies.com/chadmyers/2008/06/29/in-the-orm-battle-everyone-loses/#comment-409</link>
		<dc:creator>jlockwood</dc:creator>
		<pubDate>Tue, 01 Jul 2008 16:07:53 +0000</pubDate>
		<guid isPermaLink="false">/blogs/chad_myers/archive/2008/06/28/in-the-orm-battle-everyone-loses.aspx#comment-409</guid>
		<description>@Chris 
I&#039;m currently working on a project where I have to map the same system to both RDBMs (Oracle, Derby) and ODBMs (Intersystem&#039;s Cache).  Hibernate is especiially useful to me in this case since I don&#039;t have to concern myself with how the data is managed.
</description>
		<content:encoded><![CDATA[<p>@Chris<br />
I&#8217;m currently working on a project where I have to map the same system to both RDBMs (Oracle, Derby) and ODBMs (Intersystem&#8217;s Cache).  Hibernate is especiially useful to me in this case since I don&#8217;t have to concern myself with how the data is managed.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chad Myers</title>
		<link>http://lostechies.com/chadmyers/2008/06/29/in-the-orm-battle-everyone-loses/#comment-408</link>
		<dc:creator>Chad Myers</dc:creator>
		<pubDate>Mon, 30 Jun 2008 18:15:13 +0000</pubDate>
		<guid isPermaLink="false">/blogs/chad_myers/archive/2008/06/28/in-the-orm-battle-everyone-loses.aspx#comment-408</guid>
		<description>@Chris:

Part of my point was that when everything is in memory, how the data is arranged internally is not my concern. When everything is in memory, you could even have several different views/presentations of the data (objects, JSON, Relational, XML etc).

I guess I&#039;m wishing that we could separate the means of querying/accessing the data (SQL + Relational) from the Storage (Relational). 

Right not this isn&#039;t very easy because the RDBMS mindset is still heavily disk/file/storage-based thinking when is doesn&#039;t really need to be any more.</description>
		<content:encoded><![CDATA[<p>@Chris:</p>
<p>Part of my point was that when everything is in memory, how the data is arranged internally is not my concern. When everything is in memory, you could even have several different views/presentations of the data (objects, JSON, Relational, XML etc).</p>
<p>I guess I&#8217;m wishing that we could separate the means of querying/accessing the data (SQL + Relational) from the Storage (Relational). </p>
<p>Right not this isn&#8217;t very easy because the RDBMS mindset is still heavily disk/file/storage-based thinking when is doesn&#8217;t really need to be any more.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chris Holmes</title>
		<link>http://lostechies.com/chadmyers/2008/06/29/in-the-orm-battle-everyone-loses/#comment-407</link>
		<dc:creator>Chris Holmes</dc:creator>
		<pubDate>Mon, 30 Jun 2008 17:57:07 +0000</pubDate>
		<guid isPermaLink="false">/blogs/chad_myers/archive/2008/06/28/in-the-orm-battle-everyone-loses.aspx#comment-407</guid>
		<description>Where do ODBM&#039;s fit into this discussion? What do you think of an ODBMs Chad? </description>
		<content:encoded><![CDATA[<p>Where do ODBM&#8217;s fit into this discussion? What do you think of an ODBMs Chad? </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Scott</title>
		<link>http://lostechies.com/chadmyers/2008/06/29/in-the-orm-battle-everyone-loses/#comment-406</link>
		<dc:creator>Scott</dc:creator>
		<pubDate>Sun, 29 Jun 2008 15:44:09 +0000</pubDate>
		<guid isPermaLink="false">/blogs/chad_myers/archive/2008/06/28/in-the-orm-battle-everyone-loses.aspx#comment-406</guid>
		<description>@Chad

I agree with you in principle, but in practical, the RDBMS is going to be around for a long time.  Companies have made significant investements in hardware, software, and human resources for an RDBMS strategy, and they will be loathe to toss that aside.

I&#039;d be first in line to go another route for my dead object storage for sure, but as an industry we aren&#039;t there yet. Given that, maybe ORM should start gearing up to be the Iraq of computer science. There&#039;s no end in sight and no easy way out.</description>
		<content:encoded><![CDATA[<p>@Chad</p>
<p>I agree with you in principle, but in practical, the RDBMS is going to be around for a long time.  Companies have made significant investements in hardware, software, and human resources for an RDBMS strategy, and they will be loathe to toss that aside.</p>
<p>I&#8217;d be first in line to go another route for my dead object storage for sure, but as an industry we aren&#8217;t there yet. Given that, maybe ORM should start gearing up to be the Iraq of computer science. There&#8217;s no end in sight and no easy way out.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Neil Mosafi</title>
		<link>http://lostechies.com/chadmyers/2008/06/29/in-the-orm-battle-everyone-loses/#comment-405</link>
		<dc:creator>Neil Mosafi</dc:creator>
		<pubDate>Sun, 29 Jun 2008 14:19:29 +0000</pubDate>
		<guid isPermaLink="false">/blogs/chad_myers/archive/2008/06/28/in-the-orm-battle-everyone-loses.aspx#comment-405</guid>
		<description>I do wholeheartedly agree that we should be starting with our object model before we even think about persistence.  In fact, this is how I have always operated, probably because I started life doing game development and writing applications where there was no database, I would always just be building object models!
Now that I am regularly writing line-of-business applications, I know that Relational Databases will never die.  The fact that our support team can, using a simple tool, query the data into excel, pivot and analyse it, and compare it to the data in other source systems etc is so important.
Couple that with the power of analysis services with ERL procedures Business Intelligence and reporting tools to do data mining.
Building this on top of objects is pointless and not a worthy use of time IMHO, and the experts who use these tools on a daily basis will probably agree</description>
		<content:encoded><![CDATA[<p>I do wholeheartedly agree that we should be starting with our object model before we even think about persistence.  In fact, this is how I have always operated, probably because I started life doing game development and writing applications where there was no database, I would always just be building object models!<br />
Now that I am regularly writing line-of-business applications, I know that Relational Databases will never die.  The fact that our support team can, using a simple tool, query the data into excel, pivot and analyse it, and compare it to the data in other source systems etc is so important.<br />
Couple that with the power of analysis services with ERL procedures Business Intelligence and reporting tools to do data mining.<br />
Building this on top of objects is pointless and not a worthy use of time IMHO, and the experts who use these tools on a daily basis will probably agree</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jimmy Bogard</title>
		<link>http://lostechies.com/chadmyers/2008/06/29/in-the-orm-battle-everyone-loses/#comment-404</link>
		<dc:creator>Jimmy Bogard</dc:creator>
		<pubDate>Sun, 29 Jun 2008 13:49:25 +0000</pubDate>
		<guid isPermaLink="false">/blogs/chad_myers/archive/2008/06/28/in-the-orm-battle-everyone-loses.aspx#comment-404</guid>
		<description>I&#039;m still not sure that it&#039;s the &quot;in-memory&quot; part that&#039;s going to be the straw that broke the DB camel&#039;s back.  Also, what&#039;s the alternative?  SQL has been around a long time, and the database usually outlives the applications that were built on them.

RDBMS do what they do very well.  I don&#039;t really see them going away for a long, long time.</description>
		<content:encoded><![CDATA[<p>I&#8217;m still not sure that it&#8217;s the &#8220;in-memory&#8221; part that&#8217;s going to be the straw that broke the DB camel&#8217;s back.  Also, what&#8217;s the alternative?  SQL has been around a long time, and the database usually outlives the applications that were built on them.</p>
<p>RDBMS do what they do very well.  I don&#8217;t really see them going away for a long, long time.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chad Myers</title>
		<link>http://lostechies.com/chadmyers/2008/06/29/in-the-orm-battle-everyone-loses/#comment-403</link>
		<dc:creator>Chad Myers</dc:creator>
		<pubDate>Sun, 29 Jun 2008 04:16:17 +0000</pubDate>
		<guid isPermaLink="false">/blogs/chad_myers/archive/2008/06/28/in-the-orm-battle-everyone-loses.aspx#comment-403</guid>
		<description>Clarification: Certainly NOT. My bad.

But now that I think about it, it depends on the volume of data and type of processing. If we&#039;re talking thousands of records with heavy processing going from one model to another, some DDD concepts would actually benefit you.

If we&#039;re talking millions of rows and little processing, then no DDD.

Millions of rows and heavy processing? Maybe.</description>
		<content:encoded><![CDATA[<p>Clarification: Certainly NOT. My bad.</p>
<p>But now that I think about it, it depends on the volume of data and type of processing. If we&#8217;re talking thousands of records with heavy processing going from one model to another, some DDD concepts would actually benefit you.</p>
<p>If we&#8217;re talking millions of rows and little processing, then no DDD.</p>
<p>Millions of rows and heavy processing? Maybe.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chad Myers</title>
		<link>http://lostechies.com/chadmyers/2008/06/29/in-the-orm-battle-everyone-loses/#comment-402</link>
		<dc:creator>Chad Myers</dc:creator>
		<pubDate>Sun, 29 Jun 2008 03:39:43 +0000</pubDate>
		<guid isPermaLink="false">/blogs/chad_myers/archive/2008/06/28/in-the-orm-battle-everyone-loses.aspx#comment-402</guid>
		<description>@jdn: No. Certainly in your case where, if I recall correctly, you do a lot of ETL type stuff.

I think mostly about line-of-business applications and stuff that involves a lot of users creating/retrieving/updating things and list of things with validation, etc. Looking back at the ones before my DDD days, I can&#039;t think a single one that wouldn&#039;t have benefited from DDD.</description>
		<content:encoded><![CDATA[<p>@jdn: No. Certainly in your case where, if I recall correctly, you do a lot of ETL type stuff.</p>
<p>I think mostly about line-of-business applications and stuff that involves a lot of users creating/retrieving/updating things and list of things with validation, etc. Looking back at the ones before my DDD days, I can&#8217;t think a single one that wouldn&#8217;t have benefited from DDD.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
