<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'><id>tag:blogger.com,1999:blog-288858287590827405.post2450223985612537026..comments</id><updated>2008-12-28T18:51:34.717-08:00</updated><category term='Tina Fitch'/><category term='flash'/><category term='dinner'/><category term='margaritaville'/><category term='bartending'/><category term='lawyers'/><category term='silicon valley'/><category term='UI'/><category term='TheFunded'/><category term='writing negatively'/><category term='verizon gallery'/><category term='Gtalk'/><category term='rocketdock'/><category term='acquire domain name'/><category term='oligodentrocytes'/><category term='bracket brains'/><category term='wolfram alpha'/><category term='savings'/><category term='comcastcares'/><category term='personality'/><category term='grandparents'/><category term='the Gap'/><category term='Dell'/><category term='Outliers'/><category term='jim hornthal'/><category term='World AIDS Day 2008'/><category term='JAL'/><category term='swfobject'/><category term='goodwillbox'/><category term='geckogo'/><category term='grandpa'/><category term='GMail'/><category term='fraud'/><category term='coinstar'/><category term='google voice'/><category term='stimulus'/><category term='selfishness'/><category term='CSS'/><category term='compensation'/><category term='webinar'/><category term='neal stepehenson'/><category term='airlines'/><category term='hubspot'/><category term='rants'/><category term='winsmss.exe'/><category term='legal'/><category term='ideas'/><category term='networking'/><category term='spruce'/><category term='patents'/><category term='project estimate'/><category term='interview'/><category term='patent'/><category term='Firefox'/><category term='bad managers'/><category term='magazines'/><category term='stock'/><category term='Venrock'/><category term='checkup'/><category term='malcolm gladwell'/><category term='nickel and dime'/><category term='tilapia'/><category term='yipee ki yay'/><category term='financing'/><category term='gay marriage'/><category term='wilson sonsini goodrich rosati'/><category term='Vista'/><category term='bloggers unite'/><category term='terrible manager'/><category term='collaborative filtering'/><category term='iphone ios4'/><category term='YouNoodle'/><category term='grandcentral'/><category term='personalized search engine'/><category term='entrereneur support'/><category term='rude entrepreneurs'/><category term='about'/><category term='pyschometrics'/><category term='united airlines'/><category term='fajar'/><category term='interfacelist'/><category term='creativity'/><category term='justanswer'/><category term='Reed Smith'/><category term='porn'/><category term='Chrome'/><category term='contact'/><category term='dreadful managers'/><category term='GoGrid sucks'/><category term='stanford'/><category term='collaborative micro-filtering'/><category term='koprol'/><category term='NSVG'/><category term='downturn'/><category term='sign up bonus'/><category term='entrepreneurs'/><category term='social network'/><category term='business model'/><category term='tax returns'/><category term='spending habits'/><category term='quiznos'/><category term='china housing bubble'/><category term='personas'/><category term='car rental'/><category term='A Long Way Gone'/><category term='dork'/><category term='teamrankings.com'/><category term='startup'/><category term='bailout'/><category term='build git gem windows'/><category term='googlevoice'/><category term='trade secret'/><category term='unions'/><category term='raidio and internet convergene'/><category term='paul graham'/><category term='wateraid america'/><category term='Google Chrome'/><category term='doing it right'/><category term='myelin sheath'/><category term='Ruby'/><category term='twitter'/><category term='Auction Drop'/><category term='investment'/><category term='virus'/><category term='WSGR'/><category term='citibank'/><category term='cheney'/><category term='missing link'/><category term='Samsung'/><category term='Gap'/><category term='GoGrid review'/><category term='vc'/><category term='incubators'/><category term='mobile'/><category term='startup advisers'/><category term='assembla sucks'/><category term='Inspiration Ventures'/><category term='go grid'/><category term='John Strain'/><category term='Amazon'/><category term='raising capital'/><category term='donate'/><category term='TooManyTabs'/><category term='wells fargo'/><category term='swine flue'/><category term='HLN4365W'/><category term='outsourcing'/><category term='google voice activation'/><category term='detroit lions'/><category term='bank of america'/><category term='IP'/><category term='launch'/><category term='business week'/><category term='credit cards'/><category term='mbaapphelp.com'/><category term='selflessness'/><category term='Blog Action Day'/><category term='loud harleys'/><category term='acquisition'/><category term='racism'/><category term='H1N1'/><category term='odesk'/><category term='seminar'/><category term='economy'/><category term='GoGrid promo code'/><category term='march madness'/><category term='startup camp'/><category term='high cholesterol'/><category term='depression'/><category term='venture capital'/><category term='EZRez'/><category term='status bar'/><category term='hate wells fargo'/><category term='invitations'/><category term='patent application'/><category term='illustration'/><category term='Firefox extensions'/><category term='iOS4 sucks'/><category term='UAW'/><category term='keiretsu'/><category term='yahoo'/><category term='Virgin America Doesn&apos;t Suck'/><category term='b school'/><category term='contracts'/><category term='forbes'/><category term='launch party'/><category term='rate jacking'/><category term='restaurant'/><category term='monetization'/><category term='after_save called multiple times'/><category term='OpenSocial'/><category term='trademark'/><category term='ios4 fix'/><category term='entrepreneur meetings'/><category term='mayonnaise'/><category term='MBA'/><category term='socialized medicine'/><category term='help'/><category term='paralsysi'/><category term='quiznos nutritional info'/><category term='browsers'/><category term='memcache'/><category term='wolfram'/><category term='tech crunch'/><category term='blows'/><category term='god does not exist'/><category term='cell service'/><category term='starbucks'/><category term='windows'/><category term='free stuff'/><category term='layoffs'/><category term='provisional patent'/><category term='mint'/><category term='pineapple express'/><category term='ASLR'/><category term='book reviews'/><category term='pet peeves'/><category term='green shoots'/><category term='patent it yourself'/><category term='mortgage'/><category term='internet explorer'/><category term='provisional patent application'/><category term='berkeley'/><category term='The Tipping Point'/><category term='investor presentation'/><category term='economics'/><category term='domain broker'/><category term='favorboard'/><category term='myanmar'/><category term='neal stephenson rules'/><category term='inc.'/><category term='referral'/><category term='Saturn'/><category term='fat'/><category term='wolverine'/><category term='merger'/><category term='pirates'/><category term='b school essay help'/><category term='Cygwin'/><category term='social design'/><category term='Friend Request'/><category term='bplan'/><category term='GM'/><category term='events'/><category term='terms and conditions'/><category term='business books'/><category term='war'/><category term='stock market'/><category term='GMAT'/><category term='motivation'/><category term='startup america'/><category term='complaints'/><category term='reaganomics'/><category term='agreements'/><category term='piston'/><category term='spore sucks'/><category term='gem'/><category term='techcrunch 50'/><category term='rails'/><category term='big three'/><category term='iphone 2.2 update'/><category term='investor pitch'/><category term='software estimate'/><category term='china policy'/><category term='bus'/><category term='shazam'/><category term='reform'/><category term='xmen'/><category term='auto makers'/><category term='keiretsu forum'/><category term='mathematica'/><category term='quick and dirty'/><category term='solvate'/><category term='Facebook Connect'/><category term='spore'/><category term='Open Social'/><category term='elevator pitch'/><category term='trojan'/><category term='Blink'/><category term='health care'/><category term='obama'/><category term='angel investors'/><category term='natural philosoph'/><category term='mortgage crisis'/><category term='ATT'/><category term='iPhone'/><category term='tech crunch 50'/><category term='vyoo'/><category term='orrick total access'/><category term='auto industry'/><category term='marketing'/><category term='network'/><category term='assembla'/><category term='socialization'/><category term='investors'/><category term='error'/><category term='the valley'/><category term='poverty'/><category term='Jane Lindner'/><category term='f8'/><category term='negotiations'/><category term='support'/><category term='after_save called twice'/><category term='amazon EC2'/><category term='Annual Report'/><category term='ebay'/><category term='ebay union'/><category term='Ishmael Beah'/><category term='Google Friend Connect'/><category term='depresssion'/><category term='comcast sucks'/><category term='Black screen of doom'/><category term='public speaking'/><category term='AIDS'/><category term='getafreelancer'/><category term='sleep'/><category term='GoGrid'/><category term='terms of service'/><category term='emoticons'/><category term='Chrysler'/><category term='business plan competition'/><category term='user interface'/><category term='the funded'/><category term='software timelines'/><category term='yahoo sucks'/><category term='employee compensation'/><category term='hyundai'/><category term='Facebook'/><category term='promotion'/><category term='Miscrosoft'/><category term='math'/><category term='freebies'/><category term='cloud computing'/><category term='Haas'/><category term='tc50'/><category term='verizon'/><category term='Fenwick West'/><category term='stupid people'/><category term='bubble'/><category term='Google'/><category term='taliban'/><category term='Rick Marini'/><category term='IRS'/><category term='ual'/><category term='online bidding'/><category term='GMail Themes'/><category term='startup motivation'/><category term='business school'/><category term='copyright'/><category term='iphone update'/><category term='plug'/><category term='chase'/><category term='sucks'/><category term='callbacks multiple times'/><category term='alsop louie'/><category term='china strategy'/><category term='MuleSource'/><category term='credit card rate hikes'/><category term='revenue model'/><category term='debt'/><category term='us economy'/><category term='Japan Airlines'/><category term='meetup'/><category term='racism in america'/><category term='skyeight'/><category term='screen scraping'/><category term='business plan'/><category term='funding'/><category term='lunch 2.0'/><category term='grandfather wii'/><category term='install workling'/><category term='ban loud harleys'/><category term='doomsday'/><category term='psychology'/><category term='travel'/><category term='Multiple callbacks rails'/><category term='firefox personas'/><category term='refugees'/><category term='GoGrid recommendation'/><category term='entrepreneur college'/><category term='DRM'/><category term='Jane Capital'/><category term='hyundai assurance'/><category term='cell reception'/><category term='blogs'/><category term='tutoring'/><category term='john mauldin'/><category term='MySQL'/><category term='scalability'/><category term='customer service'/><category term='disputes'/><category term='fast algorothms'/><category term='algorithm'/><category term='cloud'/><category term='support staff'/><category term='ethos water'/><category term='pandora ads'/><category term='movie'/><category term='RoR'/><category term='coding'/><category term='kieretsu forum'/><category term='china'/><category term='web design'/><category term='EULA'/><category term='Made To Stick'/><category term='pork barrel spending'/><category term='black screen of death'/><category term='gallery'/><category term='cyclone nargis'/><category term='responsibility'/><category term='lessons'/><category term='poker savvy'/><category term='Delaware taxes'/><category term='apple'/><category term='mayo'/><category term='piracy'/><category term='fast food'/><category term='pitch'/><category term='conference'/><category term='filing taxes'/><category term='iphone fix'/><category term='site outage'/><category term='evolution'/><category term='earthquake'/><category term='united airlines sucks'/><category term='CEO'/><category term='socialize'/><category term='domain'/><category term='trickle down'/><category term='beer pong'/><category term='Pandora advertising'/><category term='swoopo'/><category term='triporati'/><category term='dell sucks'/><category term='obesity'/><category term='Sierra Leone'/><category term='recession'/><category term='rails caching'/><category term='coinstar does not suck'/><category term='chinatown express'/><category term='DLP'/><category term='employees'/><category term='raffle'/><category term='wii'/><category term='World AIDS Day'/><category term='vyoo beta launch'/><category term='alpha'/><category term='venture beat'/><category term='Microsoft vista'/><category term='net service ventures group'/><category term='geron'/><category term='Install Starling'/><category term='intellectual property'/><category term='god'/><category term='microsoft'/><category term='tech blogs'/><category term='progress meter'/><category term='IE'/><category term='prop 8'/><category term='equity'/><category term='advisers'/><category term='identity theft'/><category term='Kaplan tutoring'/><category term='GMail Skins'/><title type='text'>Comments on My Life, Starting Up: Uh-oh!  Can Rails (RoR) Handle the Load?</title><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.mylifestartingup.com/feeds/2450223985612537026/comments/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/288858287590827405/2450223985612537026/comments/default'/><link rel='alternate' type='text/html' href='http://www.mylifestartingup.com/2008/12/uh-oh-can-rails-ror-handle-load.html'/><author><name>Lefty</name><uri>http://www.blogger.com/profile/14637607058852159739</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>4</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-288858287590827405.post-1171226116008291336</id><published>2008-12-28T18:51:00.000-08:00</published><updated>2008-12-28T18:51:00.000-08:00</updated><title type='text'>@Greg - thanks again for the comments.  We definit...</title><content type='html'>@Greg - thanks again for the comments.  We definitely aren't getting the full picture on our virtual servers.  I've looked at rails caching (your link), memcache, and MySQL caching so far - but have not yet implemented it.  We'll stay on top of that and I'll report what we find on the blog.  &lt;BR/&gt;&lt;BR/&gt;For benchmarking we had been using requests/second, not time to load.  I thought that was more telling.&lt;BR/&gt;&lt;BR/&gt;Without caching, as you said, we're dead in the water.  And since we're done with functionality now, we're moving on to optimizing our code.  And that includes all this fun caching stuff!</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/288858287590827405/2450223985612537026/comments/default/1171226116008291336'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/288858287590827405/2450223985612537026/comments/default/1171226116008291336'/><link rel='alternate' type='text/html' href='http://www.mylifestartingup.com/2008/12/uh-oh-can-rails-ror-handle-load.html?showComment=1230519060000#c1171226116008291336' title=''/><author><name>Lefty</name><uri>http://www.blogger.com/profile/14637607058852159739</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.mylifestartingup.com/2008/12/uh-oh-can-rails-ror-handle-load.html' ref='tag:blogger.com,1999:blog-288858287590827405.post-2450223985612537026' source='http://www.blogger.com/feeds/288858287590827405/posts/default/2450223985612537026' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1109365223'/></entry><entry><id>tag:blogger.com,1999:blog-288858287590827405.post-7717981891950034712</id><published>2008-12-27T11:35:00.000-08:00</published><updated>2008-12-27T11:35:00.000-08:00</updated><title type='text'>Left,&lt;br&gt;&lt;br&gt;Good thoughts.&lt;br&gt;&lt;br&gt;One thing to re...</title><content type='html'>Left,&lt;BR/&gt;&lt;BR/&gt;Good thoughts.&lt;BR/&gt;&lt;BR/&gt;One thing to remember when you look at your benchmark results is that you are running in a virtual hosting environment.  Depending on how visualizations is done, the performance might be much poor than equivalent stand-alone server.&lt;BR/&gt;&lt;BR/&gt;I worked on applications written Java as well as C#, and all of them suffered from the same exact issue you are facing now.  Nowadays memory is cheap, so adding memory caching substantially increasing your application performance.  Just like Java or .NET frameworks, rails provide ways to cache parts of your applications (see the link in my previous post).&lt;BR/&gt;&lt;BR/&gt;I don't know the nature of your application, however based on your description it sounds like the bottleneck is in database reads, not writes. If that's the case, then database reads (queries) are directly reflected by how many requests your rails applications processes, which is proportional to the amount of visitors hitting your site (I agree, they don't have to be unique visitors).&lt;BR/&gt;&lt;BR/&gt;When you run your benchmarking tests, aside from measuring time to process a single request, I would also measure  how many requests a second your application can sustain.&lt;BR/&gt;&lt;BR/&gt;Bottom line, reading from disk is the most expensive operation.  To minimize it, you have to use system memory to cache disk data.  You can do in the application layer (rails, .net, java, etc), or in the database layer(mysql can cash your entire db if required) or both.  Without caching, your application won't scale.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/288858287590827405/2450223985612537026/comments/default/7717981891950034712'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/288858287590827405/2450223985612537026/comments/default/7717981891950034712'/><link rel='alternate' type='text/html' href='http://www.mylifestartingup.com/2008/12/uh-oh-can-rails-ror-handle-load.html?showComment=1230406500000#c7717981891950034712' title=''/><author><name>Gene</name><uri>http://www.blogger.com/profile/05443943086571159698</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.mylifestartingup.com/2008/12/uh-oh-can-rails-ror-handle-load.html' ref='tag:blogger.com,1999:blog-288858287590827405.post-2450223985612537026' source='http://www.blogger.com/feeds/288858287590827405/posts/default/2450223985612537026' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-247633357'/></entry><entry><id>tag:blogger.com,1999:blog-288858287590827405.post-2606210748221281837</id><published>2008-12-26T13:02:00.000-08:00</published><updated>2008-12-26T13:02:00.000-08:00</updated><title type='text'>@Gene - Thanks for the comments.  You are right in...</title><content type='html'>@Gene - Thanks for the comments.  You are right in that we haven't implemented much in terms of optimization.  While I know there is much that can be done and we will do, I was surprised at the benchmarking scores we measured.  I would have expected performance to have been a bit better.  We did a real basic benchmark of several of our dynamic pages vs. our static content (load).&lt;BR/&gt;&lt;BR/&gt;I do share your opinion in that we'll be able to scale.  The issue is more at what expense?  Rails, as a language, hits the database more than anything I've seen before.  Since the database layer is partially hidden (meaning Rails handles it), it's more difficult to actually tweak what is happening.  With Java, my last programming language to play with, you controlled all aspects of the development, so you could easily tell where you could tweak/improve the code. &lt;BR/&gt;&lt;BR/&gt;Finally, in terms of Twitter vs. Yellowpages, I'd think that unique visitors a month is irrelevant.  Twitter users use the system much more, so their uniques wouldn't really factor into performance issues.  There are quite a few large scale sites working on Rails.  But our application is incredibly intensive in terms of the data we have to manipulate.  Also - Yellowpages.com is a large company with a great many resources at its disposal.  As a startup, we can't just throw money at the problem, since we don't have any.&lt;BR/&gt;&lt;BR/&gt;I'll keep you updated on our experience with Rails.  I'm hopeful, just being reserved with our approach.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/288858287590827405/2450223985612537026/comments/default/2606210748221281837'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/288858287590827405/2450223985612537026/comments/default/2606210748221281837'/><link rel='alternate' type='text/html' href='http://www.mylifestartingup.com/2008/12/uh-oh-can-rails-ror-handle-load.html?showComment=1230325320000#c2606210748221281837' title=''/><author><name>Lefty</name><uri>http://www.blogger.com/profile/14637607058852159739</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.mylifestartingup.com/2008/12/uh-oh-can-rails-ror-handle-load.html' ref='tag:blogger.com,1999:blog-288858287590827405.post-2450223985612537026' source='http://www.blogger.com/feeds/288858287590827405/posts/default/2450223985612537026' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1109365223'/></entry><entry><id>tag:blogger.com,1999:blog-288858287590827405.post-3079881103677201463</id><published>2008-12-24T18:26:00.000-08:00</published><updated>2008-12-24T18:26:00.000-08:00</updated><title type='text'>Independent of which technology you choose to buil...</title><content type='html'>Independent of which technology you choose to build your application in, sooner or later you will run  in scalability issues.  Rails is no different when it comes to scalability than anything else out there.  Based on what I read here, you haven't done any performance optimizations yet.  The fastest and easiest way to improve performance is to add caching – hitting database with every request will be slow no matter how you look at it.  Before going to memcache-like solutions, I suggest looking at Rails built-in caching support first, which could be added without major changes (http://guides.rubyonrails.org/caching_with_rails.html). Second, I am guessing, you haven't optimizations your database queries and database server either – you can significantly speed up MySQL with proper configuration and indexes.&lt;BR/&gt;Finally,  if you still think Rails might not scale, instead of looking at twitter.com look at yellowpages.com – they get about 40M unique visitors a month (~10x what twitter gets) and, you guessed right, they do run Rails.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/288858287590827405/2450223985612537026/comments/default/3079881103677201463'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/288858287590827405/2450223985612537026/comments/default/3079881103677201463'/><link rel='alternate' type='text/html' href='http://www.mylifestartingup.com/2008/12/uh-oh-can-rails-ror-handle-load.html?showComment=1230171960000#c3079881103677201463' title=''/><author><name>Gene</name><uri>http://www.blogger.com/profile/05443943086571159698</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.mylifestartingup.com/2008/12/uh-oh-can-rails-ror-handle-load.html' ref='tag:blogger.com,1999:blog-288858287590827405.post-2450223985612537026' source='http://www.blogger.com/feeds/288858287590827405/posts/default/2450223985612537026' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-247633357'/></entry></feed>
