Stuff The Internet Says On Scalability For May 31, 2013

Hey, it's HighScalability time:


(resource consumption scales sub-linearly with population; economic output scales super-linearly)

  • 4PB: Ancestry.com's House of Us
  • Quotable Quotes:
    • @kellabyte: XBOX Live scaling up from 15,000 servers to 300,000 servers. That's some scale right there.
    • @giuseppegurgone: [...] that could work for small projects. "why do we worry about scalability on day 1?" because tomorrow it could be too late :)
    • Max Boot: American troops found their tactics and technology, still designed to defeat an opponent like the now defunct Red Army, woefully inadequate to deal with these new threats. In this sort of war, there were no flanks to turn, few bastions to storm, no capitals to seize. 

  • Steve Jobs on the power of having 120 million credit cards on file: You need us more than we need you.

  • Netflix: Dystopia as a Service. Adrian Cockcroft describes an out of Eden world where hardware and software by nature sin against man and how you can fortify yourself against them with righteous coding.

  • Matt Welsh is cold on HotOS 2013, saying what is supposed to be leading edge research is neither hot enough or far-out enough. Where is the bold, the unconventional, the truly novel? Some potentially interesting challenges: configuration hell; understanding the interactions in a large, production system; new computing platforms; and wearable computing. A problem of course is it is nearly impossible for researchers to access production systems let alone write about them with full honesty. But we certainly don't have our quantum model of complex distributed systems yet. We can't talk meaninfully about particles and trace the stack all the way back up through physics, chemistry, and social systems to explain the world. That is a real challenge. Instead of trying to explain what we already do, we need to do something completely different.

  • 3D printing dumb things is just not good enough. With The Othermill: Custom Circuits at Your Fingertips you'll be able to print circuit boards. Now that's cool. 

  • Twitter can have good conversations. Here's a thread with Peter Bailis and Salvatore Sanfilippo (and others) talking distributed design. One thing cool about Salvatore is that he's quite open about publicly discussing the design options for Redis.

  • Eric Drexler: If we were that good at making things, the global prospect would be, not scarcity, but unprecedented abundance—radical, transformative, and sustainable abundance. We would be able to produce radically more of what people want and at a radically lower cost—in every sense of the word, both economic and environmental. < If you like this quote then you might also like this excellent Triangulation interview with Leo Laporte and Eric Drexler. The future is tiny and there's lots of it.

  • If you like low level details on how hardware works then you'll adore Mythbusting modern hardware to gain "Mechanical Sympathy" by Martin Thompson. Martin's idea is to teach people how things like memory, disks, and processors really work so they can use that understanding to design better software. One practical idea is the old software engineering idea of decreasing coupling and increasing cohesion as a natural way of achieving cache efficiency. Another idea is that SSD and disks are effectively sequential devices so you might want to consider log structured storage approaches.

  • Oliver Ratzesberger with beautiful visualizations of some of The Colorful Secrets of BigData Platforms: A 1000 node Hadoop cluster can run at the capacity of 10 nodes or less for workloads with low Parallel Efficiency; You might be throwing away 99% of your n node cluster for certain workloads without knowing it; 0.1% of jobs are responsible for 53% of the PE overhead of the system.

  • Often the first step after just getting stuff to work is to deal with attacks. Aaron Suggs in Rack::Attack: protection from abusive clients has a simple way beat back the hoards with request throttling.

  • Seems like a decent enough test: Jitbit's SQL interview questions.

  • Kickstarter on their experience rolling out Elasticsearch. As a test they diverted only a percentage of their live searches to Elasticsearch. With their setup they only switch to a new index when it's completely ready so there's no user impact.

  • Virtualizing hardware is pretty easy to understand, but for some reason understanding network virtualization is a lot harder. In What is Network Virutalization? Brad Hedlund does a good job making it clearer: With Network Virtualization, the goal is to take all of the network services, features, and configuration necessary to provision the application’s virtual network (VLANs, VRFs, Firewall rules, Load Balancer pools & VIPs, IPAM, Routing, isolation, multi-tenancy, etc.) – take all of those features, decouple it from the physical network, and move it into a virtualization software layer for the express purpose of automation.

  • It's a shame Amazon no longer publishes papers like Dynamo anymore. Amazon's Swami Sivasubramanian has a great blog. His most recent post, Distributed Locking: When to use it? How? and an earlier Achieving Rapid Response Times in Large Scale Systems  are very clear and to the point.

  • Why would a simple question like What does O(log n) mean exactly? result in hundreds of responses on Stackoverflow, Hacker News, and Reddit?

  • Asynchronous replication with failover:  Inconsistency and even full-out data loss aren't the end of the world. Asynchronous replication is a good deal faster, both in bulk throughput and client latencies. I just think we lose sight, occasionally, of what that means for our production systems. My goal in writing Jepsen has been to push folks to consider their consistency properties carefully, and to explain them clearly to others.

  • Excellent reading list: What are the seminal papers in distributed systems? Why? You might also like a reading list by Ernest Hemingway

  • Martin Fowler with an Introduction to NoSQL. Good speaker with an entertaining style. I didn't know #nosql was just created to be a hashtag for a meetup. How funny on what small things life turns.

  • Disqus is using Go and started shipping production code in a week: Our realtime end-to-end latency is on average, less than 10ms, and currently consuming roughly 10-20% available CPU on one machine at peak.

  • James Golick dives into the details of How tcmalloc Works. Like a lot of things we talk about on High Scalability most people think of memory allocators as something you don't have to worry about. Doing so is just fussy and strange. Like worrying about NUMA, bypassing stacks, thinking about not using link lists, and writing your own drivers. Until it's not. And then like thousands before, you realize there's infinite detail below the layers and understanding that detail is an El Dorado of potential performance and scalability. Minds wide open.

  • Syntactic Ngrams over Time: We are proud to announce the release of a very large dataset of counted dependency tree fragments from the English Books Corpus. This resource will help researchers, among other things, to model the meaning of English words over time and create better natural-language analysis tools. The resource is based on information derived from a syntactic analysis of the text of millions of English books. 

  • Spindle: Scalable Parallel Input Network for Dynamic Load Environments: provides a scalable and
    transparent dynamic linking and loading environment. SPINDLE extends the stock dynamic loader (e.g., ld.so) with a scalable file cache server overlay network.