Beside presenting the overall Facebook architecture and scaling solutions used, Aditya Agarwal talks about the iterative process of constantly improving the site, making sure to avoid over-engineering and adapting along the way by dropping solutions that worked in the past but are no longer useful. The last part of the session was dedicated to answering questions from the audience.
Adam Wiggins believes that now is the time of horizontal scalability achieved by using resources that are transient, shardable and share nothing with other resources. He gives as example several applications and a language: memcached, CouchDB, Hadoop, Redis, Varnish, RabbitMQ, Erlang, detailing how each one applies those principles.
In this presentation from QCon San Francisco 2009, Billy Newport discusses the ways that developers interact with key/value (KV) stores such as memcached and WebSphere eXtreme Scale, entity vs column-oriented approaches, synchronous and asynchronous operations, large data sets, using a DBMS as a column store, collocating closures and data, and features that could be added to increase scalability.
In this presentation from the JVM Languages Summit 2009, Cliff Click discusses the Von Neumann architecture, CISC vs RISC, the rise of multicore, Instruction-Level Parallelism (ILP), pipelining, out-of-order dispatch, static vs dynamic ILP, performance impact of cache misses, memory performance, memory vs CPU caching, examples of memory/CPU cache interaction, and tips for improving performance.
Brian Oliver explains a number of data grid design patters: Command, Functor, Store and Forward Messaging, and Push Replication. He also mentions some traditional patterns used so far and Coherence Incubator, a repository for design patterns reference implementations.
Cameron Purdy explains how a data grid functions by using a partition topology for data access, update, recovery and local storage, accessing data using read/write-through and write behind, and invoking operations through Observable, QueryMap and InvocableMap interfaces. He also offers some examples of data grids solving complex problems and introduces Coherence, Oracle’s data grid solution.
Brian Oliver explains what the Reconciliation Process is, why the current approach to reconciliation based on client-server is no longer suitable and how data grids and event based reconciliation might help.
Ulf Wiger shows typical Erlang programs, patterns that scale well on multicore and patterns that don't, profiling and debugging parallel applications and ensuring correct behaviour with QuickCheck.
In this presentation, recorded at QCon San Francisco, ThoughtWorks' Ian Robinson explains how a RESTful HTTP approach can be applied in an Enterprise project. He makes use of many of the techniques that make HTTP a powerful protocol, including caching, hypermedia, and the use of standard formats such as Atom Syndication for event notification.
HTTP is one of the most successful protocols in the world, and more and more developers are using it to do more than drive HTML UIs. In this presentation, recorded at QCon San Francisco 2008, HTTPbis WG chair Mark Nottingham gives an update on the current status of the HTTP protocol in the wild, and the ongoing work to clarify the HTTP specification.
In this presentation filmed during QCon SF 2008, Aditya Agarwal discusses Facebook’s architecture, more exactly the software stack used, presenting the advantages and disadvantages of its major components: LAMP (PHP, MySQL), Memcache, Thrift, Scribe.
In this presentation, recorded at QCon London, Stefan Tilkov introduces the key principles of REST, explaining the differences to other distributed systems architectures and highlighting its benefits. Topics covered include mapping business logic to resource interactions, hypermedia, and documentation.