Sharding the shards: managing datastore locality at scale with Akkio
Sharding the shards: managing datastore locality at scale with Akkio Annamalai et al., OSDI’18
In Harry Potter, the Accio Summoning Charm summons an object to the caster of the spell, sometimes transporting it over a significant distance. In Facebook, Akkio summons data to a datacenter with the goal of improving data access locality for clients. Central to Akkio is the notion of microshards (μ-shards), units of data much smaller than a typical shard. μ-shards are defined by the client application, and should exhibit strong access locality (i.e., the application tends to read/write the data in a μ-shard together in a small window of time). Sitting as a layer between client applications and underlying datastores, Akkio has been in production at Facebook since 2014, where it manages around 100PB of data.
Measurements from our production environment show that Akkio reduces latencies by up to 50%, cross-datacenter traffic by up to 50%, and storage footprint by up to 40% compared to reasonable alternatives.
Akkio can support trillions of μ-shards and many 10s of millions of data access requests per second.
Motivation
Our work in this area was initially motivated by our aim to reduce service response times and resource Continue reading