tokyo cabinet & tyrant tutorial - tokyo-cabinet

Can somebody refer a good tutorial on tokyo cabinet and tokyo tyrant

Besides the official homepages for Tokyo Cabinet and Tokyo Tyrant, I've found Ilya Grigorik's blog post quite informative, it also contains a link to his presentation on the subject.
Which language are you using with the Tokyo family btw?
Edit: James Edward Gray II's blog has these two interesting posts as well: Tokyo Cabinet as a Key-Value Store and Tokyo Cabinet's Key-Value Database Types
Edit: The first two links are no longer valid.

A nice overview is given by Mikio Hirabayashi, the author of Tokyo Cabinet, here.
It is worth to have look at it to get an owerview over the variety of databases Tokyo Cabinet offers.

Related

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 Tokyo and Kyoto products?
Tokyo Cabinet is more complete and stable, Kyoto is too fresh yet (today is Dec 8 2010) and has some issues. Kyoto, written in C++, is (much) more simple than Tokyo (written in C), but this simplicity let some gap. The performance of Kyoto is a little bit worse than Tokyo, but works better with threads (at least the documentation promises that).
From the official documentation:
<< In 2007, Tokyo Cabinet was developed as the successor to QDBM on the following purposes. They were achieved and Tokyo Cabinet could replace conventional DBM products.
(...)
In 2009, Kyoto Cabinet was developed as another successor to QDBM. Compared with the sibling product (Tokyo Cabinet), the following advantages were pursued. However, the performance of Tokyo Cabinet is higher than Kyoto Cabinet, at least in single thread operations. >>
I used both, but I still prefer Tokyo, because I had a problem with Kyoto: In Kyoto Cabinet Database using File Hash Database, how can avoid file size increasing? and no one was able to help me. I still don't know how to solve that.
In my personal experience, I found Kyoto easier to compile and install, and also easier to use. I had big problems with Tokyo library dependences and problems to link the native library with the Java interface. With Kyoto everything was good and works fine in the first attempt. But, as I said before, I feel more control over the database using Tokyo.
Tokyo Cabinet and Tyrant are LGPL and written in C. Kyoto Cabinet and Tycoon are GPLv3 and written in C++.
Kyoto Tyrant supports expired records in memory, so it can replace memcached.
The developer says Kyoto* isn't successor of Tokyo*, but it's just a marketing strategy;
if you're not gonna develop a commercial product, use Kyoto. It's newer and better.
And I suggest you to read the developer's blog (both Japanese and English]) and read header files carefully (if you're gonna use the library).
Good luck.
The most important difference between the two in regard to my use cases is that TC has a "table database" while KC has not.
Yes, you can serialize arbitrary data to string and store it as item value, but then you either cannot search by value at all, or need to iterate over the whole dataset and deserialize each item, or reinvent the wheel and manually index the data.
Tokyo Cabinet's TDB provides excellent query capabilities for nested data (indexes, numeric and string comparison, even regular expressions within "fields"). The Kyoto thing is just a KV store; TC is also a powerful document-oriented database.
Also, according to test what I did, protocol of Kyoto is only HTTP based - more open,
but slower than binary protocol of Tokyo thing.

Can somebody suggest good learning source of IMS?

I would like to learn working with IMS, can somebody suggest me a good source? I'm not sure if it matters to say that I have quite good exposure and experience with INSYNC DB2 and QMF. So anything that can depict and explain the advantages and disadvantages over IMS would be really helpful. Please provide me a good page where i get good explanation and hands on scope.. Thanks
Try for the below listed books.
IMS for the Cobol Programmer, Part 1: Data Base Processing With Ims/Vs and Dl/I Dos/Vs By Steve Eckols
IMS for the Cobol Programmer, Part 2: Data Communications and Message Format Service (Pt.2) by Steve Eckols
I. M. S. Programming Techniques: Guide to Using D. L./1 by Dan Kapp and Joseph F. Lebe
Option 3 is a very good book which gives very well structured examples. Good luck
IBM IMS Tutorials
If you're interested in books, you can serach Amazon for IBM IMS.

What are the optimization networks? Where can I find info?

So, i recently found this term related somehow to neural networks, but I don't find anymore info on this topic, and it seems interesting.
Does anybody know where I can find more info for starters on this?
thanks in advance
Even though I'm not sure what you mean by optimization networks, I'm suggesting you Stuart Russel and Peter Norvig's "Artificial Intelligence: A Modern Approach", which is sort of a standard book in AI.
I can't find the most recent version(2009) on Amazon though - they are only listing the rather old but not outdated 2nd edition.
Machine learning algorithms/techniques can be used to optimize solutions to given problems.
Is that what you are looking for?
I recommend you to buy the book Programming Collective Intelligence: Building Smart Web 2.0 Applications.
You won't regret it ;-)

Is BigTable object oriented database?

I want to know that the distributed database system Bigtable is object oriented?
No. It is "a sparse, distributed multi-dimensional sorted map"
(source: http://en.wikipedia.org/wiki/BigTable)
No. It is a rather odd beast - see Wikipedia.
I recommend Google's own research paper on the subject. Good read.

Tokyo Tyrant transaction support

I've noticed that rufus-tokyo and other apis support transactions in Tokyo Tyrant. I couldn't find any mention of the transaction support in the TT docs (http://1978th.net/tokyotyrant/spex.html#clientprog)
Is that transaction support simulated? Or is there a way to do a server-side transaction using the C api?
It's Tokyo Cabinet that supports transactions.

Resources