<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>scalability on S Anand</title>
    <link>https://www.s-anand.net/blog/tag/scalability/</link>
    <description>Recent content in scalability on S Anand</description>
    <generator>Hugo -- 0.164.0</generator>
    <language>en-us</language>
    <lastBuildDate>Sat, 21 Dec 2019 12:58:39 +0000</lastBuildDate>
    <atom:link href="https://www.s-anand.net/blog/tag/scalability/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Restartable and Parallel</title>
      <link>https://www.s-anand.net/blog/restartable-and-parallel/</link>
      <pubDate>Thu, 30 Aug 2012 14:38:00 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/restartable-and-parallel/</guid>
      <description>&lt;p&gt;When processing data at a large scale, there are two characteristics that make a huge difference to my life.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Restartability&lt;/strong&gt;. When something goes wrong, being able to continue from where it stopped. In my opinion, this is more important than parallelism. There’s nothing as depressing as having to start from scratch every time. Think of it as the ability to save a game as opposed to starting from Level 1 in every life.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Parallelism&lt;/strong&gt;. Being able to run multiple processes in parallel. Often, this is easy. You don’t need threads. Good old UNIX &lt;a href=&#34;http://en.wikipedia.org/wiki/Xargs&#34;&gt;xargs&lt;/a&gt; can do a great job of it. Interestingly, I’ve never used Hadoop for any real-life problem. I’ve gotten by with UNIX commands and smart partitioning.&lt;/p&gt;
&lt;p&gt;The “smart partitioning” bit is important. For example, if you’re dealing with telecom data, you’d be calculating most of your metrics (e.g. did the number of calls grow or fall, are there more outgoing or incoming calls, etc.) are calculated on a single mobile number. So if you have multiple data sets, as long as all the data related to one mobile number are on the same system, you’re fine. If you have 100 machines, just split the data based on the last 2 digits of the mobile number. So data about 9012345678 would go to machine 78 (the last two digits). Given a mobile number for any type of data, you’d know exactly which machine would have that data. For all practical purposes, that gives you the basics of a distributed file system.&lt;/p&gt;
&lt;p&gt;(I’m not saying you don’t need Hadoop. Just that I haven’t needed it.)&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;comments&#34;&gt;Comments&lt;/h2&gt;
&lt;!-- wp-comments-start --&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;kamaal&lt;/strong&gt; &lt;em&gt;30 Aug 2012 4:04 pm&lt;/em&gt;:
Anand,
If you were to write down- What would be the must learn skills for a data scientist?
I&amp;rsquo;ve sort been trying and working hard on this thing. Of course you must know programming, what else apart from a programmers ordinary skills set does a data scientist need.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Karthik Joshi&lt;/strong&gt; &lt;em&gt;3 Sep 2012 9:06 am&lt;/em&gt;:
I am a reader of your blogs. I love your visualization ideas. This one blog about distribution of work is a great Idea. But I think, it would depend on the nature of data for effective utilization of all 100 machines. (Suppose we have few numbers which will not end with 09 or 88 ro so on) How about hashing? Even though the distributedness of hash algorithm is a debatable issue, do you think this would be beneficial ? Just a thought.&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- wp-comments-end --&gt;
</description>
    </item>
    <item>
      <title>Channel economics</title>
      <link>https://www.s-anand.net/blog/channel-economics/</link>
      <pubDate>Sun, 22 Jan 2006 12:00:00 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/channel-economics/</guid>
      <description>&lt;p&gt;We were working with the financing subsidiary of a conglomerate. They had two divisions that gave loans for buying vehicles (mostly trucks, but also cars). One division used the &lt;b&gt;direct channel&lt;/b&gt;. They had direct marketing agents (DMAs) who were paid a commission for getting the contract, and the division collected the monthly installments. The other used the &lt;b&gt;dealer channel&lt;/b&gt;. The dealers would get the contract as well as collect the installments.&lt;/p&gt;
&lt;p&gt;They wanted to cut costs, and asked us which channel had more flab. Since the company used IRR (internal rate of return), we defined the &lt;b&gt;operating cost as the reduction in IRR&lt;/b&gt;. For example:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;12% IRR paid by customer (through monthly installments)&lt;/p&gt;
&lt;p&gt;9% IRR to subsidiary after reducing the cost of processing his loan&lt;/p&gt;
&lt;p&gt;3% is therefore the operating cost.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;After two months of analysis, we confirmed the subsidiary&#39;s own opinion: the &lt;b&gt;dealer channel had lower operating cost&lt;/b&gt;. The direct channel&#39;s operating cost was 3.8% while the the dealer channel&#39;s was 2.7%.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;So we said the direct channel is flabby.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;But the direct channel guys didn&#39;t agree, and fought every inch of the decision.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&#34;Do you think these figures are wrong?&#34; I asked.&lt;/p&gt;
&lt;p&gt;&#34;Look, all we&#39;re saying is, we KNOW they pay out huge commissions to dealers. We KNOW they&#39;re overstaffed. They just CAN&#39;T have a lower operating cost.&#34;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I was tasked with resolving the issue. After a month of breaking the cost every single way, something interesting emerged. If we measured the operating cost per contract in Rupees, &lt;b&gt;both divisions had the same cost per contract&lt;/b&gt;: Rs 18,500. That is, the total cost incurred in getting the customer and servicing the loan over the lifetime of the loan was Rs 18,500 in both divisions.&lt;/p&gt;
&lt;p&gt;It turned out that &lt;b&gt;the size of the loan was different&lt;/b&gt;: the dealer channel was still lending mainly for trucks, while the direct channel had entered the high growth passenger car market. Cars cost less than trucks. So while the dealer channel was paying 18,500 and getting interest on a large truck, the direct channel was paying the &lt;i&gt;same&lt;/i&gt; 18,500 for less interest on smaller cars.&lt;/p&gt;
&lt;p&gt;This is a strategic decision. The subsidiary had chosen to enter the car business knowing it would be less profitable but have higher growth.&lt;/p&gt;
&lt;p&gt;But the story had a twist.&lt;/p&gt;
&lt;p&gt;The 18,500 of operating cost per contract broke down as follows:&lt;/p&gt;
&lt;table class=&#34;numbers&#34;&gt;
&lt;p&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Dealer&lt;/th&gt;
&lt;th&gt;Direct&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;Getting the loan&lt;/th&gt;
&lt;td&gt;5,000&lt;/td&gt;
&lt;td&gt;7,000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;Servicing the loan&lt;/th&gt;
&lt;td&gt;13,500&lt;/td&gt;
&lt;td&gt;11,500&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/p&gt;
&lt;/table&gt;
&lt;p&gt;The dealers are paid a servicing cost as a percentage of the loan. &lt;b&gt;Servicing in the dealer channel is a variable cost&lt;/b&gt;. The direct channel, however, employs its own people, and incurs a higher cost only when it hires more people. About half of the costs are fixed. If the business doubles, the number of people you need increases only by about 50%. &lt;b&gt;Servicing in the direct channel is more a fixed cost&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;This subsidiary was planning to double their business in two years. At that point, the dealer channel would still cost Rs 18,500 per contract, but the direct channel would have come down to around Rs 13,000. So, going forward, &lt;b&gt;the direct channel is really cheaper&lt;/b&gt;!&lt;/p&gt;
&lt;p&gt;We told them to try and reduce the dealer commission.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Postscript&lt;/b&gt;: The subsidiary still went ahead and cut costs aggressively in the direct channel. It&#39;s easier to fire your own people than to tell 500 dealers to reduce their commission, especially when you need them to also sell your trucks.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;comments&#34;&gt;Comments&lt;/h2&gt;
&lt;!-- wp-comments-start --&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;jayant&lt;/strong&gt; &lt;em&gt;22 Jan 2006 11:39 am&lt;/em&gt;:
Just out of curiosity, how did the company&amp;rsquo;s (guess Tata Motors) car sales performed?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;22 Jan 2006 5:39 pm&lt;/em&gt;:
Pretty good car sales, from what I hear. But the truck sales really boomed (nothing to do with our work, though).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Madhu&lt;/strong&gt; &lt;em&gt;24 Jan 2006 12:43 pm&lt;/em&gt;:
Just created a blog. grandebelf.blogspot.com. Currently just a information provider&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;24 Jan 2006 5:43 pm&lt;/em&gt;:
What does &amp;lsquo;grandebelf&amp;rsquo; mean?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Madhu&lt;/strong&gt; &lt;em&gt;25 Jan 2006 3:22 pm&lt;/em&gt;:
Grande = Big, Belf=Baby Elephant&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- wp-comments-end --&gt;
</description>
    </item>
    <item>
      <title>Gmail performance at 1GB</title>
      <link>https://www.s-anand.net/blog/gmail-performance-at-1gb/</link>
      <pubDate>Tue, 27 Jul 2004 12:00:00 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/gmail-performance-at-1gb/</guid>
      <description>&lt;p&gt;Kevin Rose tests &lt;a href=&#34;http://kevinrose.typepad.com/kr/2004/07/load_testing_gm.html&#34;&gt;gmail performance at 1 GB&lt;/a&gt;.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Daypop is out of disk space</title>
      <link>https://www.s-anand.net/blog/daypop-is-out-of-disk-space/</link>
      <pubDate>Wed, 18 Sep 2002 12:00:00 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/daypop-is-out-of-disk-space/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://www.daypop.com/&#34;&gt;Daypop is out of disk space&lt;/a&gt;. Poor thing! Could we lend it some? I mean, could sites like Daypop work out a distributed architecture, using &lt;a href=&#34;http://www.onjava.com/pub/a/onjava/2002/08/28/wsdc.html&#34;&gt;web services&lt;/a&gt;? Or using things like &lt;a href=&#34;http://www.onjava.com/pub/a/onjava/2002/08/28/space.html&#34;&gt;space drives&lt;/a&gt;? &lt;a href=&#34;http://www.scriptingnews.com&#34;&gt;via Scripting News&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
  </channel>
</rss>
