<?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>Socialping Blog &#187; redis</title>
	<atom:link href="http://blog.socialping.com/tag/redis/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.socialping.com</link>
	<description>Twitter Analytics, Monitoring, and Notifications</description>
	<lastBuildDate>Fri, 06 Jan 2012 03:43:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>Scale, Scale, Scale</title>
		<link>http://blog.socialping.com/2010/05/scale-scale-scale/</link>
		<comments>http://blog.socialping.com/2010/05/scale-scale-scale/#comments</comments>
		<pubDate>Wed, 26 May 2010 22:02:36 +0000</pubDate>
		<dc:creator>Joel Strellner</dc:creator>
				<category><![CDATA[Scaling]]></category>
		<category><![CDATA[cassandra]]></category>
		<category><![CDATA[redis]]></category>
		<category><![CDATA[sacaling]]></category>

		<guid isPermaLink="false">http://blog.socialping.com/?p=85</guid>
		<description><![CDATA[The scalability of Socialping hasn&#8217;t been looking too good lately. We&#8217;ve got hundreds of users in our beta and thousands of items being watched, collectively bringing in hundreds of thousands of tweets each and every day. These aren&#8217;t little terms that only get a few tweets an hour either, many of them are terms like [...]]]></description>
			<content:encoded><![CDATA[<p>The scalability of Socialping hasn&#8217;t been looking too good lately.  We&#8217;ve got hundreds of users in our beta and thousands of items being watched, collectively bringing in hundreds of thousands of tweets each and every day.  These aren&#8217;t little terms that only get a few tweets an hour either, many of them are terms like Twitter, Facebook, Google, etc &#8211; you know, really popular things that really stress our systems. And <strong>we love you guys for it</strong>.</p>
<p>Part of this whole &#8220;beta&#8221; thing that we are in is to see what our limits are, when things are going to break, and how they break when they do. We&#8217;ve got more data on what was and wasn&#8217;t working, and how it was working (when it did) than we could have hoped for &#8211; and the sum of that data? We couldn&#8217;t scale to where we want to go with our current setup.</p>
<p>Recently we&#8217;ve had to make a lot of changes to our systems to handle the load.  Those changes included rolling out <a href="http://code.google.com/p/redis/">Redis</a> (a NoSQL key/value store and (sort of) database) and migrating from MySQL where it made sense.  Other than one subsystem that gets used in our reporting systems, we&#8217;ve pretty much completed this migration and our load has been reduced considerably.</p>
<p>Sorry, I&#8217;m about to get all geeky, but if you have the time, take a look at Redis&#8217; new &#8220;hash&#8221; types, they are perfect for some of the stuff we do.  We also quite heavily use the Sorted Sets (zsets) and the regular Set types.  I want to commend Salvatore Sanfilippo (<a href="http://twitter.com/antirez">@antirez</a>) for all of his hard work on Redis, it&#8217;s truly one of the best key/value databases available.</p>
<p>So, back to the point of this post, lately we&#8217;ve been forced to scale, scale, scale and now that we&#8217;ve done enough to give us some headroom, we&#8217;ve put together a plan that&#8217;ll hopefully let us scale to the point that we can open things up the rest of the beta users that are still waiting to get in and eventually to the public as a whole.</p>
<p>If you care what those changes will be: we&#8217;re planning on continuing to use Redis for the long term, both as a cache and as data store, but also adding a cluster of servers that will use <a href="http://cassandra.apache.org/">Cassandra</a> for storing our tweets and while we&#8217;re still evaluating search options (spoiler alert!), likely <a href="http://www.elasticsearch.com/">ElasticSearch</a> will be used to allow you guys to better search through your tweets.  We&#8217;ll still use MySQL for managing some of the account stuff, like your watchlist.  I know I am glossing over a lot of details, but this is the main stack we intend on using. As more details finalize and we start rolling these out, expect updates on how it&#8217;s going.</p>
<p>Thank you to all of the beta testers in there breaking things, and thank you for your patience as we work through our growing pains.  For those of you still waiting to get in, we&#8217;re trying our best to get you in as soon as possible.  Thank you for your patience as well.</p>
<p>P.S. Oh, and Salvatore, if you read this, when Redis Cluster is ready for testing, we want to be part of it.  We are definitely going to need it.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.socialping.com/2010/05/scale-scale-scale/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

