Kyoto Cabinet: All content tagged as Kyoto Cabinet in NoSQL databases and polyglot persistence
In a post yesterday about NoSQL comparisons, I was asking when was the last Tokyo Cabinet release. It looks like from that family of products, the ones going forward are Kyoto Cabinet and Kyoto Tycoon as Mikio Hirabayashi ☞ has announced on Twitter the release of Kyoto Cabinet 1.2.5 and Kyoto Tycoon 0.9.9:
released Kyoto Cabinet 1.2.25 and Kyoto Tycoon 0.9.9, which feature asynchronous replication!
Original title and link: New versions of Kyoto Cabinet and Kyoto Tycoon Released (NoSQL databases © myNoSQL)
So, if Tokyo Cabinet got Kyoto Cabinet as a successor, Tokyo Tyrant got Kyoto Tycoon as its successor. But this time it is not only an implementation language port, as Kyoto Tycoon also behaves as a cache system with support for auto expiration (something similar to memcached). Moreover Kyoto Tycoon is offering a RESTful-style interface.
You can read more about Kyoto Tycoon ☞ here.
Update: Brenden Grace has ☞ a post to which Mikio Hirabayashi, Tokyo and Kyoto creator, responded.
Kyoto Cabinet, the successor of Tokyo Cabinet has reached the first stable release: 1.0. The ☞ announcement is pretty reach in details and provides code samples fot all currently supported bindings (C, C++, Java, Python, Ruby, Perl).
Kyoto architecture looks quite interesting and is depicted below:
Mikio Hirabayashi, lead developer, speaking about Kyoto Cabinet vs Tokyo Cabinet:
Kyoto Cabinet has the following features. Especially, Windows support is remarkable.
- time efficiency: Throughput of updating is more than 100 millions query-per-second.
- space efficiency: Footprint for each record is 8-16 bytes in the hash DB, 2-4 bytes in the tree DB. concurrency: The hash DB uses read-write lock for each record. The tree DB uses read-write lock for each page.
- usability: Generic operations of database by interface like the “Visitor” pattern are provided.
- robustness: Manual transaction, auto transaction, and auto recovery are provided.
- portability: UNIX-like systems (Linux, FreeBSD, Solaris, Mac OS X) and Windows (VC++) are supported. language bindings: C++, C, Java, Python, Ruby, and Perl are supported.
Compared with Tokyo Cabinet, KC is superior in concurrency, usability, and portability. Although time efficiency for single-thread is better in TC, I recommend KC from now on because multi-core/many-core CPU has been popular. However, I will keep on maintaining TC and fix bugs if they are found.
While Kyoto Cabinet sounds really interesting, I cannot stop asking myself if is this the time to move away from Tokyo Cabinet?
I’ve just discovered these slides introducing Kyoto products, the successors of Tokyo products. The slides author is Mikio Hirabayashi, the creator and maintainer of Tokyo Cabinet, Tokyo Tyrant, Tokyo Promenade, Kyoto Cabinet, etc.
Now, what I have found really interesting is comparing these slides with some two years old slides authored by the same Mikio Hirabayashi about the Tokyo products.
It looks like Mikio Hirabayashi, the author of Tokyo Cabinet is moving along and started developing the successor of Tokyo Cabinet. The name of the new project is Kyoto Cabinet. The project web page  looks extremely similar to the one of Tokyo Cabinet .
By comparing the declared goals of the two projects and the rest of the (scarce) documentation, the only major differences I could find are that Kyoto Cabinet is written in C++ and that it aims of supporting non-POSIX systems.
While Kyoto Cabinet is still in alpha, I cannot wonder what is the future of Tokyo Cabinet. Is there a community behind it to at least take care of any major bugs and help with the migration when Kyoto becomes more solid? (note: I tried to contact Mikio Hirabayashi but I haven’t heard back).