#author("2025-04-15T09:26:47+00:00","default:iseki","iseki")
#author("2025-04-15T09:28:24+00:00","default:iseki","iseki")
** SIM用データベース
- v1.0.0 ではデータベースとしてPlaneファイル,Berkeley DBが使用できます.
- [[sl_info]] を -fdb オプション付きで起動した場合,Berkelry DB が使用されます.デフォルトは Plane ファイル
- デフォルトの Plane ファイルでも十分スピードが出ます.
- Berkeley DB を使用するには,[[sl_proxy]], [[JunkBox_Lib]] の configure で --enable-db オプションを指定する必要があります.
 DBに保存されるSIMのデータは

- SIM名(最大31文字まで) 32Byte
- SIMのGUID 40Byte
- SIMのリージョンハンドラ. 8Byte
- SIMのIPアドレス.バイナリ4Byte
- SIMのアクセス属性 2Byte
- 保存されているデータの状態 2Byte
- SIMのポジション(X座標) 4Byte
- SIMのポジション(Y座標) 4Byte
- 更新時間 (Linuxタイム) 4Byte

** Plane ファイル
 SIMデータベースでは,SIM名とリージョンハンドラを検索キーとするために,2種類のデータベースを作成します.実はこれらのデータベースはファイル名(キー)が違うだけで中身は同じです.

*** リージョンハンドラがキー(ファイル名)の場合
 作業ディレクトリ [[Temp_File_Dir>sl_proxy/Temp_File_Dir]] に info/sim_handle というディレクトリを作成し,そのディレクトリ内に 000, 001, ...., 254, 255 というサブディレクトリを作成します.
 これらのサブディレクトリをSIMのX座標の256に対する剰余として,SIMデータを分類し,保存します.

 保存時のファイル名はSIMの X座標(6桁)-Y座標(6桁) となります.リージョンハンドラの分類にSIMの座標を使用するのは,リージョンハンドラがSIMの座標データから作成されているからです.

 例: /var/sl_proxy/info/sim_handle/243/001011​-000987


*** SIM名がキー(ファイル名)の場合
 作業ディレクトリ [[Temp_File_Dir>sl_proxy/Temp_File_Dir]] に info/sim_name というディレクトリを作成し,そのディレクトリ内に @, A, B,...., Y, Z というサブディレクトリを作成します.
 これらのサブディレクトリをSIM名の頭文字としてSIMデータを分類し,保存します.@ はアルファベット以外の頭文字のSIMの分類に使用します

 保存時のファイル名はSIM名そのものとなります.

 例: /var/sl_proxy/info/sim_name/T/TUIS


*** Berkeley DB
 作業ディレクトリ Temp_File_Dir に info というディレクトリを作成します.ここにリージョンハンドラをキーとするデータベース sim_info_handle.dbと SIM名をキーとする sim_info.db を作成します.
 作業ディレクトリ[[Temp_File_Dir>sl_proxy/Temp_File_Dir]] に info というディレクトリを作成します.ここにリージョンハンドラをキーとするデータベース sim_info_handle.dbと SIM名をキーとする sim_info.db を作成します.

例)
 /var/sl_proxy/info/sim_info.db
 /var/sl_proxy/info/sim_info_handle.db


*** MySQL
使用不可

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 ページ一覧 検索 最終更新   ヘルプ   最終更新のRSS