Tokyo Tyrant基本仕様(2)--サーバプログラム


このセクションでは、Tokyo Tyrantのサーバプログラムについて説明します.
 
三.サーバプログラム
 
1)  ttserver
 
コマンド'ttserver'は、サーバ側でデータベース・インスタンスを管理します.データベースはTokyo Cabinetの抽象APIと見なされるため、サーバの起動時にシナリオを選択できます.サポートされるシナリオは、on-memory hash database、on-memory tree database、hash database、およびB+tree databaseである.このコマンドの使用形式は次のとおりです.'dbname'は、データベース名を指定します.デフォルトではon-memory hash databaseが使用されます.
 
ttserver [-host name] [-port num] [-thnum num] [-tout num] [-dmn] [-pid path] [-kl] [-log path] [-ld|-le] [-ulog path] [-ulim num] [-uas] [-sid num] [-mhost name] [-mport num] [-rts path] [-rcc] [-skel name] [-mul num] [-ext path] [-extpc name period] [-mask expr] [-unmask expr] [dbname]

 
オプションの説明は次のとおりです.
-host name:サーバのホスト名またはアドレスを指定します.デフォルトでは、各ネットワーク・アドレスがバインドされます.
-port num:ポート番号を指定します.デフォルトは1978
-thnum num:作業スレッドを指定します.デフォルトは8
-tout num:セッションごとのタイムアウト時間を秒単位で指定します.デフォルトではタイムアウトはありません.
-dmn:デーモンとして動作
-pid path:プロセスidをファイルに出力
-kl:プロセスidファイルが存在する場合、存在するプロセスを殺します.
-log path:ログ情報をファイルに出力
-ld:debug情報をログファイルに書き込む
-le:ログファイルにエラーメッセージのみを書き込む
-ulog path:更新ログディレクトリの指定
-ulim num:更新ログファイルごとのサイズ制限を指定します.
-uas:更新ログに非同期I/Oを使用
-sid num:サーバIDの指定
-mhost name:レプリケーション・プライマリ・サーバのホスト名を指定します.
-mport num:レプリケーション・プライマリ・サーバのポート番号を指定します.
-rts path:コピータイムスタンプファイルの指定
-rcc:レプリケーションの一貫性を確認
-skel name:スケルトンの指定(skeleton、基本?)データベース・クラス・ライブラリの名前
-mul num:マルチデータベース・メカニズムのパーティション数を指定
-ext path:スクリプト言語拡張ファイルの指定
-extpc name period:サイクルコマンドの関数名と呼び出しサイクルを指定
-mask expr:無効化コマンドの名前を指定
-unmask expr:使用可能なコマンドの名前を指定します
 
SIGINTまたはSIGTERMをプロセスに送信すると、正常にサーバをシャットダウンできます.制御端末でCtrl-Cを押すこともできます.SIGHUPを送信するとサーバーを再起動できます.ポート番号が0以下の場合、UNIX domain socketを使用して同時にsocketファイルのパスがホストパラメータによって指定されます.このコマンドが成功した場合は0を返し、失敗した場合は他のコマンドを返します.
 
データベース命名協定はTokyo Cabinetの抽象APIによって指定される.名前は
名前データベース
"*"on-memory hash database
'+' on-memory tree database
「.tch」接尾辞hash database
「.tcb」接尾辞B+tree database
".tcf"fixed-length database
".tct"table database
 
別の名前ではこの方法は失敗した.
名前の後ろに調整パラメータを追加して、「#」で区切ることができます.各パラメータは、"="で区切られた名前と値で構成されます.
 
データベースサポートパラメータ
On-memory hash database "bnum", "capnum", "capsiz"
On-memory tree database "capnum", "capsiz"
Hash database "mode", "bnum", "apow", "fpow", "opts", "rcnum", "xmsiz", "dfunit"
B+ tree database "mode", "lmemb", "nmemb", "bnum", "apow", "fpow", "opts", "lcnum", "ncnum", "xmsiz", "dfunit"
Fixed-length database "mode", "width", "limsiz"
Table database "mode", "bnum", "apow", "fpow", "opts", "rcnum", "lcnum", "ncnum", "xmsiz", "dfunit", "idx"
 
パラメータ名の役割
「bnum」はbucket numberを指定します
「capnum」は、レコードの容量数を指定します.
「capsiz」は、使用メモリの容量を指定します.容量を超える記録は、記憶順に基づいて削除する.
「mode」は、「w」/書き込み、「r」/読み取り、「c」/作成、「t」/短縮(truncating)、「e」/ロックなし、「f」/ロックブロックなしを含むことができる.デフォルトモードは「wc」である.
「opts」には、「l」/largeオプション、「d」/Deflateオプション、「b」/BZIP 2オプション、「t」/TCBSオプションが含まれます.
「idx」は、インデックスのカラム名とタイプを「:」で区切って指定します.例えば、「casket.tch#bnum=1000000#opts=ld」は、データベースファイル名が「casket.tch」であること、bucket numberが100000であること、largeおよびDeflateが選択することを示す.
 
コマンドマスク式(command mask expression)は、「,」で区切られたコマンドリストです.たとえば、「out,vanish,copy」は、「out」、「vanish」および「copy」の集合を表す.memcached互換プロトコルコマンドとHTTP互換プロトコルコマンドも同様に禁止または許容され、各初期コマンドのマスクに関連している.また、meta式もあります.
 
式で表されるコマンド
すべてのコマンド
「allorg」のすべての元のバイナリプロトコルのコマンド
「allmc」すべてのmemcached互換プロトコルのコマンド
「allhttp」のすべてのHTTP互換プロトコルのコマンド「allread」の略語には、「get','mget','vsiz','iterinit','iternext','fwmkeys','rnum','size','stat'.
「allwrite」の略語には、「put」,「putkeep」,「putcat」,「putshl」,「putnr」,「out」,「addint」,「adddouble」,「vanish」,「misc」.
「allmanage」の略語には、「sync」、「optimize」、「copy」、「estore」、「setmst」が含まれています.
「repl」をマスターとしてコピー
slaveをslaveとしてコピー
 
2) ttservctl
'ttservctl'コマンドは、サーバの起動スクリプトです.オペレーティングシステムのイニシエータのRCスクリプトによって呼び出されます.このコマンドのフォーマットは次のとおりです.
 
1. ttservctl start
サーバの起動
 
2. ttservctl stop
サーバーの停止
 
3. ttservctl restart
サーバーの再起動
 
4. ttservctl hup
ログローテーションのためにHUP信号をサーバに送信
 
データベースは「/var/ttserver/casket.tch」に配置されます.ログと関連ファイルは「/var/ttserver」に配置されます.このコマンドは成功した場合は0を返し、失敗した場合は他を返します.
 
3) ttulmgr
'tulmgr'コマンドは、更新ログをインポートしてエクスポートするツールです.grepやsedなどのテキストツールを使用してログファイルをフィルタする場合に便利です.このコマンドの使用形式は次のとおりです.'upath'は、更新ログディレクトリを指定します.
 
1. ttulmgr export [-ts num] [-sid num] upath
TSVテキストデータの更新ログを標準出力にエクスポート
 
2. ttulmgr import upath
標準入力からTSVテキストデータを更新ログにインポート
 
オプションは次のとおりです.
-ts num:開始タイムスタンプの指定
-sid num:自分のサーバIDを指定
このコマンドは成功した場合は0を返し、失敗した場合は他を返します.