Stuff The Internet Says On Scalability For July 4th, 2014

Hey, it's HighScalability time:


Beauty is everywhere. Household dust magnified 22 million times.

  • Let's play a game of guess the company. They have: >100 billion searches per month; > 60 trillion known URLs; > 50 billion facts in knowledge graph; > 100 hours of video uploaded every minute; > 2 billion containers; > 6 trillion Cloud Datastore ops/month. Who is it? Why it's Google, of course. 
  • Billions of events every day: Twitter. One billion active users: Android.
  • Quotable quotes:
    • PeterGriffin: I don't know why the author called this "Multi-process architectures suck :(" when he really meant "I suck at multi-process architectures :("
    • @khrabrov: Experienced startup engineers are looking for a full-stack Business Guy to be CEO, COO, PM, marketer, account manager, HR, and receptionist.
    • @PatrickMcFadin: 30x perf over #hadoop by running #spark over #cassandra The crowd was stunned. 
    • @jcoglan: A programmer is someone who can simultaneously entertain the ideas that tight coupling is bad and fridges should be connected to the 'net
    • @BenedictEvans: Consumers spend more on apps (~$20bn run rate) than on recorded music ($17bn). 
    • @solarce: "You achieve nirvana when all failures are viewed as normal operations and not as apocalyptic events"
    • Rudiger Moller: Yup. As memory keeps getting cheaper, Java cannot profit except going off heap or use Azul Zing. Either improve concurrent GC or reduce the amount of references required to model data structures in Java.
    • @PatrickMcFadin: OH: "idompotency is better than beefalo"
  • I started listening to Songza about 6 weeks ago. Loved its emotional intelligence. And now I find Google went and acquired it. A coincidence? This is not a case of megalomania. It occurred to me that Google is in the perfect position to let some algorithms loose on its data to see if a service like Songza is gaining mind share. If you look at DNS access, G+, Gmail, Chrome, web trends, etc you have a pretty good proxy for actual usage data. In fact, your algorithms could just look at everything and identify acquisition targets by ranking what services are rising above the noise. And in double fact Google can probably estimate future growth trends better than Songza because they have historical data on many other services. 
  • Concurrency Improvements in HyperLevelDB. Taking single threaded code and making multithreaded is not for the faint of heart. Deadlocks await each new access pattern. By reducing time locks are held, using lock free data structures, and using fine grained locking HyperDex was able to reach 400K operations per second, better than LevelDB's 275K operations per second.
  • The Lambda Architecture has nothing to do with The Secret, in case you were wondering. To see why Jay Kreps has an excellent article Questioning the Lambda Architecture based on his experiences at LinkedIn. The main objection is double processing, concluding: These days, my advice is to use a batch processing framework like MapReduce if you aren’t latency sensitive, and use a stream processing framework if you are, but not to try to do both at the same time unless you absolutely must. Great discussion in the comment section. For me it's as simple as never mix read and write streams. They have completely different purposes. More on Hacker News.
  • Videos from the Velocity Conference 2014 on YouTube.
  • Akamai: Global average web speed up 24% annually to 3.9 Mbps, 20% of connections now above 10 Mbps.
  • Amazon continues the theme of provisioned performance by introducing the new Terminator instances:  T2 instances will dramatically reduce costs for applications that can benefit from bursts of CPU power. The instances are available in three sizes (micro, small, and medium) with On-Demand prices that start at $0.013 per hour ($9.50 per month). You can also gain access to a pair of t2.micro instances (one running Linux and another running Windows) at no charge via the AWS Free Usage Tier.
  • How we build microservices at Karma. Didn't want to paste a single API over a bunch of backend libraries so the solution was microservices. Biggest win was it takes less space in developer heads. On the backend requests are mediated by a queue, Amazon SNS. A very active discussion on reddit. Huge weakness of this approach is handling transactions and rollbacks between service components. Maintaining consistency on the backedend can swamp any wins on the API side. But in an async system you have to deal with this stuff anyway, so you might as well leverage that in your API design. 
  • For a related but different take You Probably Don’t Need a Message Queue: MQ can be a burden. They are not as easy to use as it sounds. First, there’s a learning curve. Generally, the more separate integrated components you have, the more problems may arise. Then there’s setup and configuration. E.g. when the MQ has to run in a cluster, in multiple data centers (for HA), that becomes complex. High availability itself is not trivial – it’s not normally turned on by default. And how does your application node connect to the MQ? 
  • Alexandre Passant with an excellent recap of GOOGLE I/O 2014 RECAP: ANDROID, KNOWLEDGE GRAPH AND MORE. It's Android and Google Knowledge Graph everywhere.
  • Dart at Google I/O 2014.
  • Interesting new pattern. Docker Blurs the Line Between SaaS and Self-Hosted Apps: Docker makes it so easy to install and manage applications that self-hosting Docker-based applications is a very real option for those who would otherwise use the hosted version of applications like Discourse or WordPress. 
  • An interesting history on the evolution of how Google's StreetView project got started and the evolution of the sensors. Apparently a bit too interesting as the post has been pulled. Maybe this Google doing a forget me takedown on itself?
  • Interesting Tutorials from PyCon 2014 – USA.
  • This makes sense in software architecture too. Good Fences: The Importance of Setting Boundaries for Peaceful Coexistence: violence between groups can be inhibited by physical and political boundaries. 
  • If you want to get your high perf on this Coursera course looks interesting: The Hardware/Software Interface - This course examines key computational abstraction levels below modern high-level languages; number representation, assembly language, introduction to C, memory management, the operating-system process model, high-level machine architecture including the memory hierarchy, and how high-level languages are implemented.
  • Speaking of perf, Brendan Gregg shows how to use the Linux perf stat tool. Learn how to answer questions like "how many processes are being created and destroyed?" 
  • #LatencyTipOfTheDay: Median Server Response Time: The number that 99.9999999999% of page views can be worse than. In the why jitter matters department Gile Tene calculates that when your page makes 40+ calls your performance will generally suck. 
  • Take it up a notch. James Hamilton on using formal methods for DynamoDB at Amazon: PlusCal and TLA+ have proven very effective at establishing and maintaining the correctness through change of the fundamental components on which DynamoDB is based. We believe having these core components correct from day one has allowed the DynamoDB system to evolve more quickly and scale fast while avoiding the difficult times often experienced by engineers and customers early in a distributed systems life.
  • What are the best applications of Bloom filters? You may have asked yourself this very same question. Here's Siddharth Anand's answer: checking if an item is in a cache on the client side to avoid a server round trip. 
  • Experimental 36-core chip unveiled: The MIT researchers' new 36-core chip is "tiled," meaning that it simply repeats the same circuit layout 36 times. Tiling makes multicore chips much easier to design.
  • What weighs 37 pounds, has 40 cores, 160GB RAM, and a 1.2TB SSD cluster? Canonical's cloud in a box
  • Sibyl: A System for Large Scale Machine Learning at Google: a supervised machine learning system that is used for solving a variety of prediction challenges, such as YouTube video recommendations.
  • A lot of gory details here on how main memory will scale's now and in the future. Memory Scaling: A Systems Architecture Perspective.
  • TSAR, a TimeSeries AggregatoR: In this post, we’ll describe how we built a flexible, reusable, end-to-end service architecture on top of Summingbird, called TSAR (the TimeSeries AggregatoR). We’ll explore the motivations and design choices behind TSAR and illustrate how it solves a particular time-series problem: counting Tweet impressions.
  • Brent has some good technology bookmarks from June
  • Get your geek on with Greg Linden and his More quick links. Please be aware that the World Cup is hardly mentioned at all.