In-Memory Databases


Details
Pizza, beer, and mingling.
"Building low-latency Java applications using Ehcache"
Dhruv Kumar (https://www.meetup.com/SF-Bay-Area-Large-Scale-Production-Engineering/events/124095182/www.linkedin.com/pub/dhruv-kumar/b/4ab/84a) - Software Engineer, Terracotta Software
"A Technical Overview of MemSQL's Distributed Architecture"
Nikita Shamgunov (https://www.meetup.com/SF-Bay-Area-Large-Scale-Production-Engineering/events/124095182/www.linkedin.com/in/nikitashamgunov) - CTO, MemSQL
We go to a lot of trouble to keep data in memory for performance reasons. The line between caches and in-memory databases is thin, with many in-memory systems providing optional persistence, and with many of these databases striving to keep all of their data in memory for performance. There is a wide variety of these systems with every combination of features imaginable, including memcached (http://memcached.org/), SQLite's in-memory DB (http://www.sqlite.org/inmemorydb.html), redis (http://redis.io/), Hazelcast, ehcache (http://ehcache.org/), VoltDB (http://voltdb.com/), and Oracle TimesTen (http://www.oracle.com/us/products/database/timesten/overview/index.html).
Some of these systems are distributed, providing "distributed shared memory" features, while others run on a single node, but can be used scalably by implementing consistent hashing to provide access. SSDs have added additional possibilities, making it possible to use systems that were previously volatile to keep data persistently.
With the wide range of features, it can be hard to choose one of these.
For our August event, I'd like to hear about and compare uses of in-memory databases. Which one are you using and why? How does your application rely on this? Do you depend on distributed features, or transactional features, or did you build something on top of the basic system yourself? Are you using this system purely as a cache, or do you rely on it for persistence? If the system doesn't have disk-based persistence, how do you ensure you don't lose your data? Does using this system require you to implement any external locking of your own? If you're using this as a cache, why did you go with this solution instead of a web cache on top of a web service?
I'm looking for 2-4 20-25 minute talks. If you can give a talk, please contact me, Chris Westin, through meetup.
As well as the evening's theme talks, we can fit in 2-3 five minute lightning talks at the beginning of the evening; any topic that would be interesting to the #lspe audience is welcome. If you're interested in giving a lightning talk, contact me, Chris Westin, through meetup.

In-Memory Databases