Garantia–Scaling and Protecting In-Memory NoSQL

Note – this is (kind of) a repost – I was asked by Garantia’s PR company to pull an earlier post and publish this as the company gets ready to demo at Structure – that’s a highly unusual request but one I chose to follow out of respect to the founders.

The move away from traditional databases to NoSQL offerings has accelerated as people look to make good use of oftentimes unstructured data. Two of the most well known in-memory NoSQL offerings, Memcached and Redis have between them proved their value by powering rapid-growth and massive data holding properties like Facebook, Twitter, Digg and Zynga. The benefits of storing data in RAM has seen these offerings grow to power the vast majority of high traffic sites.

These solutions however have some drawbacks and this is where Garantia is looking to play. According to founder Ofer Bengal the significant disadvantages of these offerings include;

  • Unreliability – the lack of persistence from in-memory Memcached means that a node failure can lose some or all of an applications data
  • In the event of memory loss, main databases can become overloaded with queries, resulting in performance degradation
  • With Redis datasets cannot grow beyond a single master server
  • While sharding may help with this – it is complex and limited in functionality
  • Redis cluster will resolve some of this but it will require an application rewrite
  • Both Memchached and Redis require a high level of operational care

Into this selection of disadvantages comes Garantia that promises to provide reliable Memcached and infinitely-scalable Redis, all in an automated cloud service. Garantia, a startup out of Israel that is still in stealth mode, promises to provide in-memory NoSQL users with;

  • Realiable memory – Zero data loss: built-in in-memory replication, data persistence, autofailover and backup capabilities
  • Auto scaling – Fully-automated continuous scaling from megabytes to gigabytes to petabytes; All Redis commands supported at any dataset size
  • Zero management – Takes seconds to activate and configure; no need to worry about nodes, clusters, server lists, data persistence configuration, scaling or failure recovery
  • Cost savings – “Pay-as-you-go” charging model in GB granularity. Same per-gigabyte price of plain instances from existing cloud providers. Big savings on devops time

So how does Garantia deliver on this promise? It distributes a user’s dataset in small chunks across multiple shards and nodes, thereby minimizing the recovery process in the event of a node failure. It also has the result of improving performance in high-throughput use cases. The shards that Garantia creates are automatically controlled to maximize an individual shard’s performance. At the same time the entire dataset is constantly replicated from the nodes to persistent storage. All up Garantia aims to offer improved performance at the same time as giving user’s confidence with auto-failover.

In terms of the business model, Garantia is pay as you go, customers pay for the actual memory consumption with Garantia monetizing via the margin generated from it’s own compression technology and scale.

Garantia has some beta customers but is planning to launch at the beginning of June with full commercial launch in July. The promises that Garantia makes are fairly lofty, but having had a peek inside their operation I’m pretty excited about the efficiencies they’re able to deliver – there’s a pretty significant opportunity for the company – both as a service provider to NoSQL users but also as a potential acquisition target for database providers. Watch this space.