これは InterSystems FAQ サイトの記事です。
ロックテーブルの1エントリは管理領域の固定512 bytesとロック文字列情報などの可変領域から構成されます。
可変領域はロック対象のグローバルノード名に関連する情報に必要な長さ(bytes)になります。
1つのLockコマンドにつき、上記で示した長さのデータが必要です。
そしてその可変領域に必要なデータ長は、ロック対象のグローバルノード名(^xxx(xxx,xxx)) の長さに見合う16,32,64,128,256,…bytesのバケットの長さになります。
例えばロック対象のグローバルノード名が^xxx(123,"data")とすると、 ^xxx(123,"data")にデータのロケーション等のデータが付加されたものがその可変領域となり、32byteまたは64bytes(データロケーションが相応に長い場合)のバケットを使用しますので、
このロックで使用するデータサイズが、64byteのバケットを使用すると仮定すると、
512(固定領域)+ 64 (可変領域)= 576 bytes
となります。
これを基本とし、システムのピーク時に保持することが想定されるロック件数を掛け合わせることで必要なロックテーブルのサイズはある程度は想定することができますが、グローバルノード名に関連する情報が可変であるために正確な見積もりは、一般的には困難です。
現実的には、予めおおよその想定使用量より大きめのサイズを仮設定し、運用状況を定期的に観察して、ロックサイズの最大値をモニターしながら調整していくことを推奨します。
ロックサイズの最大値をモニターする方法は、カスタマーサポートまでお問い合わせください。