Burt Beckwith discusses potential performance problems using mapped collections and Hibernate 2nd-level cache in GORM, along with strategies for avoiding such performance penalties.
Sam Newman and Chris Read describe the architectural change of a large European website by introducing a caching layer based on Squid in order to scale out to handle increased demand, and the cultural change done by breaking down the dev-ops silos.
Matthias Matook and Ari Zilka share the real-world experience of implementing Enterprise Ehcache at Australia's most visited online news sites. The talk will focus on the challenges and technical solutions to deal with massive page hits, high concurrency and how to achieve linear scalability without additional hardware.
Alex Miller explains shortly why caching is useful, followed by examples of typical difficulties encountered when setting up a cache, like large datasets, data eviction, stale data, replication, loading, duplication. Miller also discusses available choices for designing a distributed caching architecture, and ways to test a cache for performance.
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.
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.