自分用メモ。TCとTTのことがよく分かってないので、調べよう。
TCのデータベースの種類の概要
色々データベースの特徴がある。使うデータベースによって拡張子とかも違う。ハッシュデータベースが一般的のようだ。
- ハッシュデータベース
- 1つのkeyに対して1つのvalueを持つ
- B+-tree データベース
- 同じkeyに対して複数のレコードを格納できる
- テーブルデータベース
- 特定のkeyに対して複数の値を保持できる
テーブルデータベース
ハッシュデータベースは基本形で、使うのは簡単なのだが、RDBっぽく使ってるといくつも書かないといけなくなって面倒に感じることも多い(ロジックに矛盾がないことを保証するとか特に)。そういうときにテーブルデータベースは威力を発揮する、らしい。
ハッシュデータベースのように主キーでレコードを識別しながらも、リレーショナルデータベースのようにレコード内に名前をつけた複数のコラムを持たせることができます。
mixi engineer blog
主キー以外での検索は全件見に行くので大変なので、インデックスを張るようにしたほうがよい。
TokyoTyrantは何をやってくれるものなのか
HA(High Availability:高可用性)とは、可用性(Availability)が高いことです。それでは説明になっていないので詳しく言い替えますと、システムに障害が起きにくくすることと、たとえ障害が起きたとしてもできるだけ迅速に復旧できるようにすることです。データベース系のシステムはユーザのデータを管理するという中核的役割を担うため、可用性を高めることは最も重要な課題となります。
(中略)
Tokyo Tyrantにはこれらを円滑に行うための仕組みがありますので、それについて詳しくご紹介します。mixi engineer blog
- バックアップとリカバリ
- レプリケーション
- フェイルオーバー
TTはデータベースサーバーを起動させたままデータベースファイルをコピーすることができる。
参考
- Tokyo Cabinet: Beyond Key-Value Store - igvita.com
- TokyoTyrantのRubyクライアントでテーブルデータベースのCRUD - 森薫の日記
- TTの一通りの使い方とコードが載ってる
- TC版 => TokyoCabinetのRubyバインディングでテーブルデータベースのCRUD - 森薫の日記
- 1978th.net
- CでTC。使い方はほぼ同じなので使うの簡単そう => http://kishi-r.com/2009/01/16/c_tokyocabinet/
- TokyoTyrantのRubyバインディングがMacでうまく動かないのではまってた - Seeking for my unique color.