Questions tagged [tokyo-cabinet]

Tokyo Cabinet is a modern key-value based (NoSQL) database system.

From: http://fallabs.com/tokyocabinet/

Tokyo Cabinet is a library of routines for managing a database. The database is a simple data file containing records, each is a pair of a key and a value. Every key and value is serial bytes with variable length. Both binary data and character string can be used as a key and a value. There is neither concept of data tables nor data types. Records are organized in hash table, B+ tree, or fixed-length array.

Tokyo Cabinet is developed as the successor of GDBM and QDBM on the following purposes. They are achieved and Tokyo Cabinet replaces conventional DBM products.

improves space efficiency : smaller size of database file. improves time efficiency : faster processing speed. improves parallelism : higher performance in multi-thread environment. improves usability : simplified API. improves robustness : database file is not corrupted even under catastrophic situation. supports 64-bit architecture : enormous memory space and database file are available. Tokyo Cabinet is written in the C language, and provided as API of C, Perl, Ruby, Java, and Lua. Tokyo Cabinet is available on platforms which have API conforming to C99 and POSIX. Tokyo Cabinet is a free software licensed under the GNU Lesser General Public License.

78 questions
120
votes
7 answers

How to bundle a native library and a JNI library inside a JAR?

The library in question is Tokyo Cabinet. I want is to have the native library, JNI library, and all Java API classes in one JAR file to avoid redistribution headaches. There seems to be an attempt at this at GitHub, but It does not include the…
Alex B
  • 82,554
  • 44
  • 203
  • 280
72
votes
6 answers

Java: object to byte[] and byte[] to object converter (for Tokyo Cabinet)

I need to convert objects to a byte[] to be stored in the Tokyo Cabinet key-value store. I also need to unbyte the byte[] to an Object when reading from the key-value store. Are there any packages out there that will help me with this task? Or would…
volni
  • 5,196
  • 8
  • 38
  • 44
24
votes
4 answers

What is the difference between Tokyo Cabinet and Kyoto Cabinet?

FAL Labs has multiple Tokyo products and Kyoto products: Tokyo Cabinet and Kyoto Cabinet are both lightweight database libraries. Tokyo Tyrant and Kyoto Tycoon are both lightweight database servers... Can someone explain the difference between…
Chun Ku Bot Tanaka
  • 241
  • 1
  • 2
  • 4
15
votes
1 answer

Tokyo Cabinet - Memory Tuning

I have more than 100 million key-value pairs (one key can have multiple values). I am using Tokyo Cabinet's BDB (B+Tree DB) whose key, value is 32 bit byte-array. Is it possible in Tokyo Cabinet to set how much memory (lower and upper limit) it can…
Arpssss
  • 3,850
  • 6
  • 36
  • 80
14
votes
7 answers

Best C language key/value database around for massive amounts of entries

I am trying to create a key/value database with 300,000,000 key/value pairs of 8 bytes each (both for the key and the value). The requirement is to have a very fast key/value mechanism which can query about 500,000 entries per second. I tried BDB,…
Ron Reiter
  • 3,852
  • 3
  • 30
  • 34
12
votes
5 answers

Python Table engine binding for Tokyo Cabinet

I am looking for python bindings for Table engine of Tokyo cabinet. I tried Pytc but can only find Hash and B-tree engine support. Is there any other bindings available?
Bharani
  • 781
  • 1
  • 8
  • 18
11
votes
1 answer

What is "physical synchronization" of Kyoto Cabinet Database?

The function begin_transaction takes a boolean argument that indicates what type of synchronization should be done; physical when true or logical when false. What does it mean when it refers to "physical", or hard, synchronization?
Felipe
  • 16,649
  • 11
  • 68
  • 92
9
votes
4 answers

Why does tokyo tyrant slow down exponentially even after adjusting bnum?

Has anyone successfully used Tokyo Cabinet / Tokyo Tyrant with large datasets? I am trying to upload a subgraph of the Wikipedia datasource. After hitting about 30 million records, I get exponential slow down. This occurs with both the HDB and BDB…
HenryL
  • 543
  • 1
  • 6
  • 10
7
votes
8 answers

(How can/What should) I implement a database that scales to the upper tens of thousands requests/second?

By Upper tens of thousands requests/second I want to see 60,000 -> +90,000 requests/second. My Setup consists of the following: user ---> web app --> message queue --> parser --> database? I should mention that the parser currently can parse/stuff…
eyberg
  • 3,160
  • 5
  • 27
  • 43
7
votes
3 answers

Can I expect a significant performance boost by moving a large key value store from MySQL to a NoSQL DB?

I'm developing a database that holds large scientific datasets. Typical usage scenario is that on the order of 5GB of new data will be written to the database every day; 5GB will also be deleted each day. The total database size will be around 50GB.…
Pete W
  • 1,817
  • 3
  • 18
  • 20
7
votes
2 answers

How do I use Tokyo Cabinet with a .Net language?

Is it possible to use Tokyo Cabinet with any of the .Net Languages, preferably VB10? How about Tokyo Tyrant? Preferably without going through LUA/Ruby or other wrappers.
GaiusSensei
  • 1,860
  • 4
  • 25
  • 44
6
votes
3 answers

Tokyo Cabinet vs SQLite3 on iPhone

Has anyone used Tokyo Cabinet on the iPhone? I'm interested to see if there are any real world performance differences between it and SQLite3. Also, SQLite 3 has the expressive power of SQL, does Tokyo Cabinet have any kind of query language? Any…
Jasarien
  • 58,279
  • 31
  • 157
  • 188
5
votes
3 answers

Tokyo cabinet - Slower inserts after hitting 1million

I am evaluating tokyo cabinet Table engine. The insert rate slows down considerable after hitting 1 million records. Batch size is 100,000 and is done within transaction. I tried setting the xmsiz but still no use. Has any one faced this problem…
Bharani
  • 781
  • 1
  • 8
  • 18
5
votes
1 answer

Failed to build gem native extension in ubuntu?

I am installing a gem in my ubuntu machine: gem install tokyocabinet -v '1.29.1' then I get some errors: ERROR: Error installing tokyocabinet: ERROR: Failed to build gem native extension. $HOME/.rvm/rubies/ruby-2.2.0/bin/ruby -r…
roger
  • 9,063
  • 20
  • 72
  • 119
5
votes
3 answers

Picking a database technology

We're setting out to build an online platform (API, Servers, Data, Wahoo!). For context, imagine that we need to build something like twitter, but with the comments (tweets) organized around a live event. Information about the live event itself must…
Sean Clark Hess
  • 15,859
  • 12
  • 52
  • 100
1
2 3 4 5 6