Stuff The Internet Says On Scalability For January 27, 2012

If you’ve got the time, we’ve got the HighScalability:

  • 9nm : IBM's carbon nanotube transistor that outperforms silicon; YouTube: 4 Billion Views/Day; 864GB RAM: 37signals Memcache, $12K
  • Quotable Quotes:
    • Chad Dickerson: You can only get growth by feeding opportunities.
    • @launchany: It amazes me how many NoSQL database vendors spend more time detailing their scalability and no time detailing the data model and design
    • Google: Let's make TCP faster.
    • WhatsApp: we are now able to easily push our systems to over 2 million tcp connections!
    • Sidney Dekker: In a complex system…doing the same thing twice will not predictably or necessarily lead to the same results.
    • @Rasmusfjord: Just heard about an Umbraco site running on Azure that handles 20.000 requests /*second*
  • Herb Sutter with an epic post, Welcome to the Jungle, touching on a lot of themes we've explored on HighScalability, only in a dramatically more competent way. What's after the current era of multi-core CPUs has played out? Mainstream computers from desktops to ‘smartphones’ are being permanently transformed into heterogeneous supercomputer clusters. Henceforth, a single compute-intensive application will need to harness different kinds of cores, in immense numbers, to get its job done. Different parts of even the same application naturally want to run on different kinds of cores. Applications will need to be at least massively parallel, and ideally able to use non-local cores and heterogeneous cores. Programming languages and systems will increasingly be forced to deal with heterogeneous distributed parallelism. Perhaps our most difficult mental adjustment, however, will be to learn to think of the cloud as part of the mainstream machine – to view all these local and non-local cores as being equally part of the target machine that executes our application, where the network is just another bus that connects us to more cores. If you haven’t done so already, now is the time to take a hard look at the design of your applications, determine what existing features – or, better still, what potential and currently-unimaginable demanding new features – are CPU-sensitive now or are likely to become so soon, and identify how those places could benefit from local and distributed parallelism. Now is also the time for you and your team to grok the requirements, pitfalls, styles, and idioms of hetero-parallel (e.g., GPGPU) and cloud programming.
  • Alenka - a modern analytical database engine written to take advantage of vector based processing and high bandwidth of modern GPU.  Features: Vector-based processing, Self optimizing compression, Column-based storage, Fast database loads, Open source and free.  PCI Express transfer speed is 520GB/s so transfer speed is not a bottleneck anymore.
  • Surprising numbers: Netflix Streaming Margins Are 11 Percent, DVD Margins Are 52 Percent. Certainly content costs are part of the reason, but are higher cloud infrastructure costs also a reason?
  • Evite dumps virtualization for bare metal. That's the story told by Grig Gheorghiu in An ode to running a database on bare metal. For performance and reliability reasons they brought their databases servers into a datacenter, but left slaves in the cloud running on local disks, thus using EC2 as a secondary data center, used only in emergency situations. Interesting strategy. Grig makes the point that the cloud is not ready yet for write-intensive transactional databases and that cloud is great place to try out new architectures and test for scalability against production traffic. 
  • The colos or falling the colos are falling! Well not falling, but Ted Ritter reports we are running out of colo space. Hard to believe with all these Area 51 style datacenters being built everywhere, but while the supply is growing, demand is growing even faster. The bottom line? Enterprise colocation demand will outstrip colocation service provider supply starting this year.
  • Scalability What? Bruce Momjian says: the issue is not whether the server workload is read-only or read-write, but rather whether you need to scale writes as well as reads. What is hard to do is read-write horizontal scaling, because writes to different servers can conflict with each other, and communication between servers is relatively slow.
  • Storm - Storm is to real-time computation what Hadoop is to batch computation. Storm is a framework that abstracts the inherent complexities of any Queue / Workers system. It is a generalization of these architectures that allows us to write real-time topologies without needing to worry about details like how to scale, how to implement fail-over or Inter-Process-Communication.
  • Great answer by Jay Kreps on Quora on How LinkedIn generate the "viewers of this profile also viewed" list of users: we take all kinds of co-occurrences we think are relevant for all the types of things on the site (people, companies, jobs, products/services, questions, searches, groups, etc), and create a giant sparse matrix where a particular entry (i,j) is the number of co-occurrences between i and j. Then we run our analysis on this matrix to compute sparse pairwise similarities as an Azkaban workflow made up of a series of big-ass Hadoop jobs.
  • Streaming Media West Conference videos from LA are now online.
  • Should NoSQL products include full text search? Great discussion on Quora. Jeremy Zawodny says no, he likes the Unix approach of separate tools. Nick Lothian points out that Solr is actually a NoSQL solution. This fits with the idea of using a search engine as the database. The issue though with using separate tools is always keeping a transactional context between the different systems so they are always in sync.
  • 37signals is going against eons of developed wisdom by deciding to rewrite their Basecamp product from scratch. But at the same time if you don't obsolete your product a competitor will. So many truisms to choose from...
  • Possible next generation wireless: By embracing a new network design concept called Cloud-RAN, Intel believes it can reshape wireless networks from highly-specialized architectures into more generic computing platforms that run over its off-the-shelf silicon.
  • Learn you some Erlang writes a very comfortable introduction to building distributed systems in general and with Erlang in particular. Well worth a read.
  • Can Simplicity Scale? asks utopian philosopher John Regehr, in an examination of clean-and-simple vs. "real world". Nothing that changes will stay simple over time. Nothing. Cycles of collapse and rebirth exist for a reason.
  • Glyph dials his spectrum analyzer on The Concurrency Spectrum: from Callbacks to Coroutines to Craziness. We have callbacks, yield-base coroutines, preemptive multithreading, and preemptive processes, and not actors. Have to say, yields are a horrible approach. Leaving latency unbounded like that always kills you in the end.
  • Access times: SSD: 65 - 85 microseconds; HDD: 6 milliseconds; DRAM: 9 - 70 nanoseconds
  • Read performance: SSD: 270MB/s; HDD: 150MB/s - 205MB/s; RAM: 3200 MB/s