#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 使用不可