ROMAの設定をデフォルトから変更する方法です
Storage の種類を変更したり、使用するプラグインの指定したり、各種設定値の変更を行います
default値
- デフォルトでは、ライブラリの中にある以下configファイルを利用するようになっています
https://github.com/roma/roma/blob/master/lib/roma/config.rb
任意の設定のconfigファイルの作成
- 今回は任意の設定に変更したconfigファイルを作成し、そのconfigファイルの設定で起動する方法を紹介します
configファイル実行
$ mkconfig
- configファイルの作成は
mkconfig
コマンドを使用します - このコマンドは対話的に設定値を入力することで、configファイルを作成します
Storage選択
if you doesn't input anything, default value is set.
+----------------------------------------------+
|STORAGE_CLASS: Roma::Storage::RubyHashStorage |
|STORAGE_OPTION: |
|PLUGIN_FILES: ["plugin_storage.rb"] |
+----------------------------------------------+
Which storage will you use?
[1] Ruby Hash
[2] Tokyo Cabinet
[3] Groonga
>
- 希望するStorage typeの番号を入力してEnterをおしてください
- brankでEnterを押すとデフォルトのRuby Hash(memory mode)になります
Plugin選択
Please select which plugin will you use.(plugin_storage.rb is essential unless you make alternative plugin.)
[1] plugin_storage.rb
[2] plugin_mapcount.rb
[3] plugin_gui.rb
[4] plugin_cmd_aliases.rb
[5] plugin_test.rb
[6] plugin_map.rb
[7] plugin_alist.rb
[8] plugin_debug.rb
[9] Select all plugins
>
- 使用するpluginの番号を選択してください
-
plugin_storage.rb
はdataのget/set系など基本のコマンドが入っているので、代替のpluginを開発している場合以外は必須です
FD値の計算
Please select programming language of client by number.
[1] Ruby
[2] Java
[3] PHP
>
How many machine run as ROMA server?
>
How many machine run as ROMA client?
>
- 上から
- 使用するクライアントの種類
- ROMAクラスター何台のserverで構成するか
- ROMAクライアントを何台用意するか
最初にRuby Hash(memory mode)を選択した場合はこれで終了です
物理ファイル選択時
最初の選択で物理ファイル(TokyoCabinet, Groonga)を選択した場合は以下の項目が追加されます
How big memory size in 1 server? Please measure in GB.
>
How many run ROMA process per machine?
>
How many data will you store?
>
- ROMAは物理ファイルをStorageに指定した場合、まずはメモリに保存した後に物理ファイルへFlushします。その際、ROMAに使用を許可させるメモリの容量を設定することが出来ます
- データを読み込む際には、メモリ上に残っているデータは高速で読み込まれますが、上記の設定値を超えてメモリ上に残っていないデータに関しては物理アクセスが発生するためにその分スピードは遅くなります
- この項目では単純にサーバ1台のメモリーサイズを入力すれば、ROMAが使用するmemory量を自動で計算します
- 厳密には物理ファイル(TCファイル)1ファイルにつき、どれだけのメモリー量の使用を許可するかの値です
- 計算式は以下です `res["memory"].value.to_f * GB - OS_MEMORY_SIZE) / res["process"].value.to_i / TC_FILE`
- 入力されたメモリーサイズからOS用として1GB引き、プロセスの数と物理ファイルの数で割っています
確認
- mkconfigが終了したら、カレントディレクトリにconfigファイルが作成されます
$ ls -l config.rb
-rw-rw-r-- 1 roma roma 2999 Dec 4 01:09 config.rb
PATHの設定
カレントディレクトリにROMAのroutingファイル等がある場合には変更不要ですが、以下のPATHを変更することで読み込むroutingファイルの場所や保存するデータのディレクトリを指定することが出来ます。
$ grep -r 'PATH' config.rb
LOG_PATH = '.'
RTTABLE_PATH = '.'
STORAGE_PATH = '.'
STORAGE_DUMP_PATH = '/tmp'
WRITEBEHIND_PATH = './wb'
起動
作成したconfigファイルを利用してROMAを起動します
$ romad ${address} -p ${port NO.} -d --config ./config.rb
-
--config
オプションは読み込むconfigファイルを指定します - 入力しない場合はデフォルトのライブラリに入っているconfigを読み込みます
参照URL
ROMA HP Configuration File : http://roma-kvs.org/docs/configuration.html
ROMA HP Install Main Unit : http://roma-kvs.org/learn/main_unit.html#dist-jump-link-6