Stuff The Internet Says On Scalability For December 5th, 2014

Hey, it's HighScalability time:


InfoSec Taylor Swift is wise...haters gonna hate.

  • 6 billion+: Foursquare checkins; 25000: allocs for every keystroke in Chrome's Omnibox
  • Quotable Quotes:
    • @wattersjames: Pretty convinced that more value is created by networks of products in today's world than 'stacks'--'stack' model seems outdated.
    • @ChrisLove: WOW 70% of http://WalMart.com  traffic over the holidays was from a 'mobile' device! #webperf #webdevelopment #html5
    • @Nick_Craver: No compelling reason - we can run all of #stackexchange on one R610 server (4yr old) @ 5% CPU. #redis is incredibly efficient.
    • @jehiah: The ticker on http://bitly.com  rolled past 20 BILLION Bitlinks today. Made possible by reliable mysql clusters + NSQ.
    • @tonydenyer: micro services how to turn your ball of mud into a distributed ball of mud" #xpdaylon
    • @moonpolysoft: containers are the new nosql b/c all are dimly aware of a payoff somewhere, and are more than willing to slice each other up to get there.
    • @shipilev: Shipilev's First Law of Performance Issues: "It is almost always something very simple and embarrassing to admit once you found it"
    • Gérard Berry: We discovered that this whole hypothesis of being infinitely fast both simplified programming and helped us to be faster than others, which was fun.
    • @randybias: OH: “The religion of technology is featurism.”  [ brilliant observation ]
    • @rolandkuhn: ACID 2.0: associative commutative idempotent distributed #reactconf @PatHelland
    • @techmilind: @adrianco @wattersjames @cloudpundit Intra-region latency of <2ms is the killer feature. That's what makes Aurora possible.
    • @timreid: async involves a higher level of initial essential complexity, but a greatly reduced level of continual accidental complexity #reactconf
    • @capotribu: Docker Machine + Swarm + (proposed) Compose = multi-containers apps on clusters in 1 command #DockerCon
    • @dthume: "Some people say playing with thread affinity is for wimps. Those people don't make money" - @mjpt777 at #reactconf
    • @jamesurquhart: Reading a bunch of apparently smart people remain blind to the lessons of complexity. #rootcauseismerelyaclue
    • Facebook: the rate of our machine-to-machine traffic growth remains exponential, and the volume has been doubling at an interval of less than a year.

  • In the US we tend to be practical mobile users instead of personal and social fun users. Innovation is happening elsewhere as is clearly shown in Dan Grover's epic exploration of Chinese Mobile App UI Trends: using voice instead of text for messaging; QR codes for everything; indeterminate badges to indicate there's something interesting to look at; a discover menu item that contains "changing menagerie of fun"; lots of app stores; using phone numbers for login, even on websites; QR code logins; chat as the universal UI; more damn stickers; each app has a wallet; use of location in ways those in the US might find creepy; tight integration with offline consumption; common usage of the assistive touch feature on the iPhone; cutesy mascots in loading and error screens; pollution widgets; full ad splash screen when an app starts; theming of apps. 

  • Awesome analysis. A really deep dive with great graphics on Facebook's new network architecture. Facebook Fabric Networking Deconstructed: the new Facebook Network Fabric is in fact a Fat-Tree with 3-levels.

  • Just a tiny thing. AMD, Numascale, and Supermicro Deploy Large Shared Memory System: The Numascale system, installed over the past two weeks, consists of 5184 CPU cores and 20.7 TBytes of shared memory which is housed in 108 Supermicro 1U servers connected in a 3D torus with NumaConnect, using three cabinets with 36 servers apiece in a 6x6x3 topology. Each server has 48 cores three AMD Opteron 6386 CPUs and 192GB memory, providing a single system image and 20.7 TB to all 5184 cores.

  • Quit asking why something happened. The question that must be answered is how. The Infinite Hows (or, the Dangers Of The Five Whys)

  • What do customers want? Answers. Greg Ferro talks about how a company that hired engineers to answer sales inquiries doubled their sales. All people wanted were their questions answered. Once answered they would place an order. No complex time wasting sales cycle required. Technology has replaced the information gather part of the sales cycle. Customers already know everything about a product before making contact. Now what they need are answers.

  • Docker Networking is as simple as a reverse 4 and a half somersault piked from a 3 metre board into a black hole.

  • How is that Google Cloud Platform thingy working out? Pretty well says Aerospike. 1M Aerospike reads/sec for just $11.44/hour, on 50 nodes, with  linear scalability for 100% reads and 100% writes.

  • Your bright human mind can solve a maze. So what? Fatty acid chemistry can too: This study demonstrates that the Marangoni flow in a channel network can solve maze problems such as exploring and visualizing the shortest path and finding all possible solutions in a parallel fashion. 

  • Benedict Evans: For the first time ever, the tech industry is selling not to big corporations or middle-class families but to four fifths of all the adults on earth - it is selling to people who don’t have mains electricity or running water and substitute spending on cigarettes for mobile. This means we have accelerating complexity in three ways: we go from middle class families to everyone, we go from the PC to mobile, and we go from the simplicity of the web browser, mouse and keyboard model that lasted twenty years (thanks Marc!) to these complex, multi-layered devices where everything is still changing. And this is why it's so much fun.

  • Aren't app install ads just a way to transfer VC money back into the ecosystem? Facebook, Google, And Twitter’s War For App Install Ads

  • You should worry about SSD write limitations, but maybe not as much as you thought...as long as you pick the right drives. The SSD Endurance Experiment: Two freaking petabytes: After the Neutron GTX failed to answer the bell, the 840 Pro and second HyperX 3K pressed on to 2PB without issue. They also completed their fifth unpowered retention test. This time, the SSDs were left unplugged for 10 days. Both maintained the integrity of our 200GB test file. < Also, great work by the Tech Report on running the test. This is the kind of experiment that everyone needs to run, but few are willing to do. 

  • Looking ahead...researchers find qubits based on trapped ions offer a promising scalable platform for quantum computing.

  • You think you have a good logging system? DNA Tape Recorder: Researchers have created a system that edits DNA in response to chemical stimuli or light, allowing bacteria to record environmental events in their genetic material.

  • Every time you think software is eating the world consider new capabilities almost always ride on top of specialized hardware components. Take Bat Navigation: researchers discovered bats have head-direction sensing cells—which respond to directionality in the horizontal plane, or azimuth—scientists discovered three decades ago in rodents. But the team also found new types orientation cells: ones that responded to pitch, or vertical orientation, roll, or tilt to the left or right, plus cells that responded to combinations of those orientations. < You may not realize those hardware bits are there, or perhaps they've faded into commonality, but they are there.

  • Michael Barker walks us through The "Uncanny Valley" of L3 Cache Contention: multiple threads working on completely independent sets of data can contend with each other when running on different cores, but the same socket.  To the point where the performance degrades such that it is equivalent of running the code on a single thread.

  • How does container stuff fit with the datacenter is the computer? Kelsey Hightower explains nicely in Running Applications with Kubernetes: Docker’s image format does not solve the packaging problem, it just moves it around a bit. The end results are pretty good. We can now rely on a single artifact to universally represent any application. The Docker container has become the new lego brick for building larger systems...If the datacenter is the computer then Kubernetes would be it’s operating system...Kubernetes is a declarative system for scheduling Docker containers...Kubernetes introduces the concept of a Pod, a collection of Linux containers...Kubernetes provides integration with DNS, load balancers, and even centralized logging. Also, Tim Dysinger explores CoreOS and Kubernetes.

  • DramaFever is running most everything out containers. Here's how they do it: Docker in Production. Reality, Not Hype. Lots of specific commands and configuration options to use Docker with S3, EC2, Jenkins, and on a Mac. Also, the SysAdvent blog has a lot of great content.

  • If you want to reduce locking overhead then the old standby is Use Cases for Thread-Local Storage. The problem is TLS is problematic for SIMD units and GPGPUs. Some use cases: Perhaps the most common use of TLS is for statistical counting. The general approach is to split the counter across all threads (or CPUs or whatever). To update this split counter, each thread modifies its own counter, and to read out the value requires summing up all threads' counters;  low-overhead logging or tracing; per-thread caches for memory allocators; track exception handlers.

  • It's not just a good idea, it's the law. Counters should always be uint_64. Always. Yahoo had to update their view's counter to 64 bits because Gangnam Style was ogled 9,223,372,036,854,775,808 times.

  • Slides are available for NoSQL Matters @Barcelona, Spain. 

  • Did MySQL & Mongo have a beautiful baby called Aurora? Paternity tests are still out, but here are Sean Hull's list of Aurora wins: 1) Big availability gains; 2. SSD means 5x faster; 3. Failover automation; 4. Incremental backups & recovery; 5. Warm restarts. 

  • Anurag@AWS with a quite interesting comment on Aurora failover: We asynchronously write to 6 copies and ack the write when we see four completions. So, traditional 4/6 quorums with synchrony as you surmised. Now, each log record can end up with a independent quorum from any other log record, which helps with jitter, but introduces some sophistication in recovery protocols. We peer to peer to fill in holes. We also will repair bad segments in the background, and downgrade to a 3/4 quorum if unable to place in an AZ for any extended period. You need a pretty bad failure to get a write outage.

  • Excellent explanation of Scaling a Multi-Tenant Application with Azure DocumentDB: At a high-level, depending on the scale of your tenants you could choose to partition by database or collection. In cases where tenant data is smaller and tenancy numbers are higher – we suggest that you store data for multiple tenants in the same collection to reduce the overall resources necessary for your application. You can identify your tenant by a property in your document and issue filter queries to retrieve tenant-specific data. You can also use DocumentDB’s users and permissions to isolate tenant data and restrict access at a resource-level via authorization keys.

  • Hey, math isn't just for ad targeting! German Tanks, Traffic Wardens, and the End of the World.

  • The Emerging Architecture Of Internet Applications. If you really think the blockchain is going to change everything then what are the economic incentives? Bitcoin works because there are huge economic incentives for participating in the ecosystem. Your average app will have none of the good old free ice cream type motivation that makes Bitcoin sing. So how will it work?

  • Learning your limit: managing massively multithreaded caches through scheduling: Our work proposes a hardware scheduling technique that reacts to feedback from the memory system to create a more cache-friendly access stream. We evaluate our technique using simulations and show a significant performance improvement over previously proposed scheduling mechanisms. We demonstrate the effectiveness of scheduling as a cache management technique by comparing cache hit rate using our scheduler and an LRU replacement policy against other scheduling techniques using an optimal cache replacement policy.

  • Colossus: A New Service Framework from Tumblr: new framework developed at Tumblr which offers a lightweight, straightforward model for building high-performing microservices. Written in Scala and built on NIO and the Akka actor framework, Colossus has had a huge impact on the way we build services at Tumblr.

  • Greg Linden is a great follow on G+. And of course his Quick Links.