<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" version="2.0">
  <channel>
    <title>Steve Eichert - performance</title>
    <link>http://iqueryable.com/</link>
    <description />
    <language>en-us</language>
    <copyright>Steve Eichert</copyright>
    <lastBuildDate>Mon, 16 Apr 2007 01:51:37 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 1.9.6264.0</generator>
    <managingEditor>steve.eichert@gmail.com</managingEditor>
    <webMaster>steve.eichert@gmail.com</webMaster>
    <item>
      <trackback:ping>http://iqueryable.com/Trackback.aspx?guid=3d716d5d-a594-4b4f-ae54-5f47928802c9</trackback:ping>
      <pingback:server>http://iqueryable.com/pingback.aspx</pingback:server>
      <pingback:target>http://iqueryable.com/PermaLink,guid,3d716d5d-a594-4b4f-ae54-5f47928802c9.aspx</pingback:target>
      <dc:creator>Steve Eichert</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">Over the last week or so I've been following
a thread of blog posts that outline some of the issues that <a href="http://twitter.com/">Twitter</a> is
experiencing.  For those of unfamiliar, Twitter is a "microblogging" site written
in <a href="http://www.rubyonrails.com/">Ruby on Rails</a>.  Over the last month
or so they've seen some very serious growth.  They're supposedly seeing over
11,000 request/sec which is putting a hurting on their servers.  In <a href="http://www.radicalbehavior.com/5-question-interview-with-twitter-developer-alex-payne/">this
interview</a>, Alex Payne points out some limitations in Rails, most notably it's
lack of built in support for talking to multiple databases, that are making it particularly
hard for them to handle the increased load.  As a result, several individual
have put together plugins to make working with multiple read only slave databases
possible.<br /><ul><li><a href="http://drnicwilliams.com/2007/04/12/magic-multi-connections-a-facility-in-rails-to-talk-to-more-than-one-database-at-a-time/" rel="bookmark">Magic
Multi-Connections: A “facility in Rails to talk to more than one database at a time”</a></li><li><a href="http://revolutiononrails.blogspot.com/2007/04/plugin-release-actsasreadonlyable.html">ActsAsReadonlyable</a></li></ul><br />
Along with checking out the plugins mentioned above you may want to checkout the following
posts that go into more detail on the problems.<br /><ul><li><a href="http://tomayko.com/weblog/2007/04/13/rails-multiple-connections">Twitter
trouble</a></li><li><a href="http://tomayko.com/weblog/2007/04/13/rails-multiple-connections">Twitter,
Ruby, and Scaling</a></li><li><a href="http://tomayko.com/weblog/2007/04/13/rails-multiple-connections">Rails and
Scaling with Multiple Databases</a></li></ul>
What I find particularly interesting in the series of posts that talk about the scaling
problems that Twitter is experiencing is that most of their problems are arising due
to the database server getting nailed.  They've been able to scale out their
web tier but that doesn't help their poor database server in the least.  I've
been thinking about writing a series (or maybe just one) post on some of the things
we've been thinking about regarding scaling our application.  It's not written
in Rails, and it doesn't need to handle 11,000 req/sec but it does need to handle
large sets of data and be "hot ass fast". We're currently positioned well to handle
scaling out our services tier quite easily, but we need to do some more work to figure
out how best to scale out our data tier.  We've had many discussions about how
scaling out our services may not help since it will only increase the pressure on
the database server.  Anyway, hopefully I'll get a chance to post more about
the things that we're thinking about in a future post.<br /><br />
Jumping back to the Twitter/Rails scaling problems...I'll be interested to see how
things end up with Twitter, and Rails.  I have a feeling that Rails will be better
off when all is said and done, but will it be because of Twitter, or in spite of it?<br /><img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=3d716d5d-a594-4b4f-ae54-5f47928802c9" /></body>
      <title>Scaling Twitter</title>
      <guid isPermaLink="false">http://iqueryable.com/PermaLink,guid,3d716d5d-a594-4b4f-ae54-5f47928802c9.aspx</guid>
      <link>http://iqueryable.com/2007/04/16/ScalingTwitter.aspx</link>
      <pubDate>Mon, 16 Apr 2007 01:51:37 GMT</pubDate>
      <description>Over the last week or so I've been following a thread of blog posts that outline some of the issues that &lt;a href="http://twitter.com/"&gt;Twitter&lt;/a&gt; is
experiencing.&amp;nbsp; For those of unfamiliar, Twitter is a "microblogging" site written
in &lt;a href="http://www.rubyonrails.com/"&gt;Ruby on Rails&lt;/a&gt;.&amp;nbsp; Over the last month
or so they've seen some very serious growth.&amp;nbsp; They're supposedly seeing over
11,000 request/sec which is putting a hurting on their servers.&amp;nbsp; In &lt;a href="http://www.radicalbehavior.com/5-question-interview-with-twitter-developer-alex-payne/"&gt;this
interview&lt;/a&gt;, Alex Payne points out some limitations in Rails, most notably it's
lack of built in support for talking to multiple databases, that are making it particularly
hard for them to handle the increased load.&amp;nbsp; As a result, several individual
have put together plugins to make working with multiple read only slave databases
possible.&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://drnicwilliams.com/2007/04/12/magic-multi-connections-a-facility-in-rails-to-talk-to-more-than-one-database-at-a-time/" rel="bookmark"&gt;Magic
Multi-Connections: A “facility in Rails to talk to more than one database at a time”&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://revolutiononrails.blogspot.com/2007/04/plugin-release-actsasreadonlyable.html"&gt;ActsAsReadonlyable&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;br&gt;
Along with checking out the plugins mentioned above you may want to checkout the following
posts that go into more detail on the problems.&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://tomayko.com/weblog/2007/04/13/rails-multiple-connections"&gt;Twitter
trouble&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://tomayko.com/weblog/2007/04/13/rails-multiple-connections"&gt;Twitter,
Ruby, and Scaling&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://tomayko.com/weblog/2007/04/13/rails-multiple-connections"&gt;Rails and
Scaling with Multiple Databases&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
What I find particularly interesting in the series of posts that talk about the scaling
problems that Twitter is experiencing is that most of their problems are arising due
to the database server getting nailed.&amp;nbsp; They've been able to scale out their
web tier but that doesn't help their poor database server in the least.&amp;nbsp; I've
been thinking about writing a series (or maybe just one) post on some of the things
we've been thinking about regarding scaling our application.&amp;nbsp; It's not written
in Rails, and it doesn't need to handle 11,000 req/sec but it does need to handle
large sets of data and be "hot ass fast". We're currently positioned well to handle
scaling out our services tier quite easily, but we need to do some more work to figure
out how best to scale out our data tier.&amp;nbsp; We've had many discussions about how
scaling out our services may not help since it will only increase the pressure on
the database server.&amp;nbsp; Anyway, hopefully I'll get a chance to post more about
the things that we're thinking about in a future post.&lt;br&gt;
&lt;br&gt;
Jumping back to the Twitter/Rails scaling problems...I'll be interested to see how
things end up with Twitter, and Rails.&amp;nbsp; I have a feeling that Rails will be better
off when all is said and done, but will it be because of Twitter, or in spite of it?&lt;br&gt;
&lt;img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=3d716d5d-a594-4b4f-ae54-5f47928802c9" /&gt;</description>
      <category>performance;rails;ruby;twitter</category>
    </item>
    <item>
      <trackback:ping>http://iqueryable.com/Trackback.aspx?guid=8b70eb2e-575a-4cec-a227-776e9b67c273</trackback:ping>
      <pingback:server>http://iqueryable.com/pingback.aspx</pingback:server>
      <pingback:target>http://iqueryable.com/PermaLink,guid,8b70eb2e-575a-4cec-a227-776e9b67c273.aspx</pingback:target>
      <dc:creator>Steve Eichert</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">Recently we've been discussing ways to
increase the performance of some performance critical areas of our application. 
As such, a number of individuals have been doing research into various options. 
Through our investigation we came upon <a href="http://www.oracle.com/technology/products/timesten/index.html">Oracle's
Timesten In-Memory database</a>.  I was familiar with many other In-Memory databases,
such as <strike><a href="http://www.firebirdsql.org/">Firebird</a></strike> (<a href="http://sqlite.org/">SQLite</a>?, <a href="http://www.vistadb.com/">VistaDB</a>?),
but up until yesterday I wasn't aware that Oracle had a product in the in-memory space. 
While Oracle doesn't currently offer a .NET native provider for Timesten, TankardSoft
does offer a commercial <a href="http://www.tankardsoft.com/product.aspx">native .NET
data provider for Timesten</a> that supports the recently released version 7 of Timesten.  
<br /><p></p><img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=8b70eb2e-575a-4cec-a227-776e9b67c273" /></body>
      <title>Oracle Timesten In-Memory Database</title>
      <guid isPermaLink="false">http://iqueryable.com/PermaLink,guid,8b70eb2e-575a-4cec-a227-776e9b67c273.aspx</guid>
      <link>http://iqueryable.com/2007/04/10/OracleTimestenInMemoryDatabase.aspx</link>
      <pubDate>Tue, 10 Apr 2007 11:09:19 GMT</pubDate>
      <description>Recently we've been discussing ways to increase the performance of some performance critical areas of our application.&amp;nbsp; As such, a number of individuals have been doing research into various options.&amp;nbsp; Through our investigation we came upon &lt;a href="http://www.oracle.com/technology/products/timesten/index.html"&gt;Oracle's
Timesten In-Memory database&lt;/a&gt;.&amp;nbsp; I was familiar with many other In-Memory databases,
such as &lt;strike&gt;&lt;a href="http://www.firebirdsql.org/"&gt;Firebird&lt;/a&gt;&lt;/strike&gt; (&lt;a href="http://sqlite.org/"&gt;SQLite&lt;/a&gt;?, &lt;a href="http://www.vistadb.com/"&gt;VistaDB&lt;/a&gt;?),
but up until yesterday I wasn't aware that Oracle had a product in the in-memory space.&amp;nbsp;
While Oracle doesn't currently offer a .NET native provider for Timesten, TankardSoft
does offer a commercial &lt;a href="http://www.tankardsoft.com/product.aspx"&gt;native .NET
data provider for Timesten&lt;/a&gt; that supports the recently released version 7 of Timesten.&amp;nbsp; 
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=8b70eb2e-575a-4cec-a227-776e9b67c273" /&gt;</description>
      <category>data;oracle;performance</category>
    </item>
  </channel>
</rss>