My deep love for discovering and experimenting with new databases found a happy day when I attended the pivotal Gemfire DB meetup in San Francisco. The Indian railways ticketing system uses Gemfire and I wanted to find out more about it. Also, good news is Gemfire is getting open sourced as the Geode project and is soon to be incubated into the Apache open source project family.
I got a few valuable minutes with the presenter (Anthony Baker) and here is a brief summary of the conversation.
1. What is Geode?
Geode is the open source version of Gemfire, the distributed in memory database.
2. Is it distributed?
Yes. Gemfire stores data redundantly, duplicating nodes across servers, in order to tackle node failures.
3. Does it use consistent hashing?
Yes and No. A document is always hashed to a bucket, which can move between nodes. Data is hashed to a intermittent storage (think buckets), which can move between servers, when a node goes down.
4. What type of data can be stored in Gemfire?
Gemfire is a NoSQL database and hence stores data like JSON. The data can be queried, like in Mongo.
5. How do I query Gemfire?
Gemfire queries can be of different types. For instance, you can retrieve a document by its primary key. E.g. Get the record for Employee 123, or you can query all employees in a city (similar to SQL). There are also advanced scripts that you can pass into the database (similar to PL/SQL) to do counts, aggregates, etc.
6. Are there secondary indexes?
Yes. In order to perform fast queries on documents by keys other than the primary key, Gemfire can have secondary indexes.
There are also a lot of fancy things in Gemfire like intelligent recovery after a crash, localization, etc, which make it a good candidate to evaluate for your NoSQL apps. You might want to wait for a few weeks for the geode project to be open sourced.