Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

which keyvalue store has the best performance? [closed]

Tags:

java

database

I think tow months ago. I found a google's open source project that can store key value pairs with high performance. But i forget the name. Could anybody tell me? or you can have some other suggestions for me? I have been using BerkerlyDB, but I found BerkerlyDb is not fast enough for my program. However, berkerylyDB is convenient to use as it appears as a java lib jar, which can be integraed with my program seamlessly. My program is also written in Java.

like image 336
afancy Avatar asked Sep 20 '10 14:09

afancy


People also ask

What is the fastest key-value store?

RonDB is the fastest key-value store currently available and the only one with general purpose query capabilities, through its SQL support. The performance of key-value stores are evaluated based on low Latency, high Availability, high Throughput, and scalable Storage (LATS).

Which is the best example for key-value store?

A telephone directory is a good example, where the key is the person or business name, and the value is the phone number. Stock trading data is another example of a key-value pair.

Is key-value database fast?

Key-value databases offer fast in-memory access. For applications that don't require frequent updates or need to support complex queries.

What are key-value data stores?

A key-value database is a type of nonrelational database that uses a simple key-value method to store data. A key-value database stores data as a collection of key-value pairs in which a key serves as a unique identifier.


3 Answers

Two strong competitors in the DHT (Distributed Hash Table) 'market':

  • Cassandra (created by Facebook, in use by Digg and Twitter)
  • HBase

Here is a presentation about Cassandra. On slide 20 you'll see some speed benchmarks- 0.12 ms / write
(You can search around for the whole presentation, including Eric Evans talking)

like image 122
Bozho Avatar answered Oct 22 '22 13:10

Bozho


Nobody mentions leveldb and yet this post is at the top when searching for "good key value store". Leveldb in my experience is simply awesome. It's so fast I couldn't believe it. I've been trying quite a few databases for a task I was doing. I tried:

  • windows azure table storage (expensive, value size max 1 Mb and each property size is max 64 Kb)
  • redis (awesome if you have as much ram as you please)
  • mongodb (awesome as long as there is enough ram, breaks after that point)
  • sql server (expensive, needs maintenance, such as rebuilding indexes and eventually still not fast enough)
  • sqlite (free, but not as simple to use as leveldb and not fast)
  • leveldb. If you can model your job as to reading large consecutive chunks of data through an iterator then you'll get great speed. Writing is also pretty fast. Combine it with ssd disk and you'll love it.
like image 41
ren Avatar answered Oct 22 '22 11:10

ren


Bigtable?

like image 1
dogbane Avatar answered Oct 22 '22 13:10

dogbane