Questions tagged [kyotocabinet]

Kyoto Cabinet is a key-value based database, based on the DBM (Unix DataBase Manager) standard, similar the modern database system Tokyo Cabinet.

From: http://fallabs.com/kyotocabinet/

Kyoto 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. Each key must be unique within a database. There is neither concept of data tables nor data types. Records are organized in hash table or B+ tree.

Kyoto Cabinet runs very fast. For example, elapsed time to store one million records is 0.9 seconds for hash database, and 1.1 seconds for B+ tree database. Moreover, the size of database is very small. For example, overhead for a record is 16 bytes for hash database, and 4 bytes for B+ tree database. Furthermore, scalability of Kyoto Cabinet is great. The database size can be up to 8EB (9.22e18 bytes).

Kyoto Cabinet is written in the C++ language, and provided as API of C++, C, Java, Python, Ruby, Perl, and Lua. Kyoto Cabinet is available on platforms which have API conforming to C++03 with the TR1 library extensions. Kyoto Cabinet is a free software licensed under the GNU General Public License. On the other hand, a commercial license is also provided. If you use Kyoto Cabinet within a proprietary software, the commercial license is required.

45 questions
26
votes
0 answers

Range query on kyoto cabinet using Java API

I am interested in using kyotocabinet key-value store and I want to preform a range query preferably with a bulk interface (returning byte array). I checked kyotocabinets Java API and I couldn't find any particular method to do this. As range…
Ali Salehi
  • 6,899
  • 11
  • 49
  • 75
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
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
6
votes
5 answers

Any DBM for .NET?

I'm looking for a simple DBM library such as BerkeleyDB or Kyoto Cabinet, but natively working for .NET. I need to manage more than one million records (maybe ten millions), and possibly in a hierarchical way (this last point is not mandatory, we…
picrap
  • 1,236
  • 1
  • 13
  • 35
6
votes
2 answers

Efficient way to check existence in a large set of strings

I have a set of 100+ million strings, each up to 63 characters long. I have lots of disk space and very little memory (512 MB). I need to query for existence alone, and store no additional metadata. My de facto solution is a BDB btree. Are there any…
Drew Sears
  • 12,812
  • 1
  • 32
  • 41
5
votes
3 answers

Using key-value databases as a set with persistent indices

Since the below got a bit long: Here's the tl;dr; version: Is there an existing key/value best-practice for fast key and value lookup, something like a hash-based set with persistent indices? I'm interested in the world of key-value databases and…
milianw
  • 5,164
  • 2
  • 37
  • 41
5
votes
2 answers

KyotoCabinet and multiple processes?

I've read the documentation and found very little about multiple processes (readers and writers) accessing a single kyotocabinet database. It appears you can create multiple readers, but unless you specify ONOLOCK multiple writers will block trying…
coleifer
  • 24,887
  • 6
  • 60
  • 75
5
votes
1 answer

Setting up Kyoto Cabinet in Visual Studio

I am trying to setup Kyoto Cabinet in Visual Studio (VC++). I added the source files and the static library kyotocabinet.lib However, it is giving me a link error LINK2005 By default, the library is built with linking to LIBCMT.LIB' by the/MT'…
bazzinga
  • 219
  • 1
  • 8
4
votes
1 answer

"Skipping incompatible" on Blue Gene machine

I'm trying to build Google Protocolbuffers and Kyotocabinet on a Blue Gene supercomputer, which is a PowerPC64 based machine, running Suse Linux, gcc 4.1.2. When I compile my code, both Google Protocolbuffers and Kyotocabinet gave "skipping…
4
votes
2 answers

Kyoto Cabinet install via rubygems fails

I am trying to install Kyoto Cabinet via ruby gems. I am putting inside the Gemfile gem "kyotocabinet", "~> 1.0" as opposed here but when I run bundle it fails with setting variables ... $CFLAGS = -I. -I/usr/local/include -Wall $(cflags) -fPIC…
Gerry
  • 5,326
  • 1
  • 23
  • 33
4
votes
4 answers

In Kyoto Cabinet Database using File Hash Database, how can avoid file size increasing?

I am using the follow to open: db.open("db.kch#tune_defrag=10000", DB.OWRITER | DB.OCREATE) I am putting and removing elements. At the end of execution, the database is "empty", the count() function returns 0, because I remove all elements. Why the…
Felipe
  • 16,649
  • 11
  • 68
  • 92
4
votes
1 answer

Compiling kyotocabinet-1.2.76 on OSX 10.9

I'm attempting to compile kyoto cabinet from this source, on OSX 10.9: http://fallabs.com/kyotocabinet/pkg/kyotocabinet-1.2.76.tar.gz But it's failing with this: In file included from kcutil.cc:16: In file included from…
robertjd
  • 4,723
  • 1
  • 25
  • 29
3
votes
1 answer

Kyoto Cabinet: is there a way to do a search for nearest key?

I'd love to be able to use one of Kyoto Cabinet's tree datastructures, but I need the ability to return the nearest key. Ie I have 1,100 3,500 7,1000 And given 2, I'd return 1. Is this possible? If not, what is a lightweight, high speed alternative…
A Question Asker
  • 3,339
  • 7
  • 31
  • 39
2
votes
1 answer

Architecture-independent DBM

I'm trying to replace GDBM in an application with a better key-value storage manager, and one of my objectives is to use the same database file across different architecture platforms. This, in particular, means it should be independent of the…
2
votes
1 answer

Unable to install Kyotocabinet with Python3

I am installing Kyotocabinet for Python3. The commands that I ran were: wget http://fallabs.com/kyotocabinet/pkg/kyotocabinet-1.2.76.tar.gz tar xzvf kyotocabinet-1.2.76.tar.gz cd kyotocabinet-1.2.76 ./configure && make && make install # takes a…
aviral sanjay
  • 953
  • 2
  • 14
  • 31
1
2 3