ストレージエンジン
ストレージエンジン画面では、SingleStoreがデータを保存する2つの方式であるRowstoreとColumnstoreのメモリ・ディスク使用状況を確認できます。分散環境では、特定のノードにデータが集中する偏り(skew)が性能低下につながりますが、この画面はノード間の分布を一目で表示し、偏りを素早く見つけられるよう支援します。SingleStoreを運用するDBAが対象読者です。
RowstoreとColumnstore
SingleStoreはデータを2つの方式で保存します。まず2つの概念を知っておくと画面が読みやすくなります。
- Rowstore はデータをメモリに行単位で保存します。高速な読み取り・書き込みに有利ですが、メモリを多く使用します。簡単に言うと、よく取り出して使う物を机の上に置いておく 方式に近いです。
- Columnstore はデータをディスクに列単位で圧縮して保存します。大容量分析に有利で、ディスク効率が高いです。あまり使わない物を圧縮して倉庫に入れておく方式に近いです。
画面はこの2つを分けて表示します。
要約情報
画面上部で照会するクラスター(例: memsql_cluster)を選択すると、RowstoreとColumnstoreの状態を2つの要約カードで表示します。各カードには、注意が必要な状態のときに WARN バッジが表示されます。
| Card | Description |
|---|---|
| Rowstore要約情報 | Total in Memory, Max Node Mem, Avg Memory Deviation, Worst skew table |
| Columnstore要約情報 | Total on Disk, Compression, Avg Disk Deviation, Worst skew table |
Avg Memory Deviation・Avg Disk Deviation はノード間の使用量偏差を倍数で表します。値が大きいほど特定のノードにデータが集中しているという意味です。Worst skew table は偏りが最も激しいテーブルを併せて示します。
Rowstore領域
Rowstoreはメモリを使用するため、メモリ使用量とノード別の分布が主要指標です。
| Widget | Description |
|---|---|
| ノード別メモリ使用率 | ノード別のホストメモリ使用率をゲージで表示 |
| Memory Trend | Table Memory(Rowstore)とServer Memory(Process)の時間推移 |
| Memory-Risk Tables (TOP 5) | メモリ危険度が高いテーブルの上位5個 |
ノード別メモリゲージは、ホストメモリ使用率を使用量と全体容量(例: 2.4 / 3.7 GB)、パーセンテージと併せて表示します。<80%、80-90%、>90% の区間を色で区別し、アグリゲーター(MA/CA)ノードはデフォルトで折りたたまれており、展開して見ることができます。
Memory-Risk Tables (TOP 5)は次のカラムで構成されます。
| Column | Description |
|---|---|
Table | テーブル名とデータベース |
Worst Node | 使用量が最も大きいノード |
Size (Total) | 全体のメモリ使用量と行数 |
Parts | パーティション数 |
Skew | ノード間の偏り倍数 |
Columnstore領域
Columnstoreはディスクを使用するため、ディスク使用量とセグメント状態が重要です。
| Widget | Description |
|---|---|
| ノード別ディスク使用率 | ノード別のディスク使用量をバーで表示 |
| Segment Group推移 | セグメントグループ数(group_cnt)の日次比較と上位テーブル |
| Size Top 5 | ディスクを多く占めるテーブルの上位5個 |
ノード別ディスクバーは、SingleStoreが使用するディスクを領域別に分けて表示します。バーをクリックすると、ノード別の詳細構成を確認できます。
| Area | Description |
|---|---|
Data | カラムストアデータ |
Snapshot | スナップショット |
Log | トランザクションログ |
Temp | 一時データ |
Etc | パーティション外の領域 |
Others | その他のOS使用量 |
Free | 残りの空き容量 |
Size Top 5は、テーブルごとに圧縮後のサイズ(Size (Total))、圧縮率(Compression)、行数(Rows)と、使用量が最も大きいノード(Worst Node)を表示します。
ここで混同しやすい部分はSegment Group推移です。SingleStoreはColumnstoreデータをセグメントで管理し、バックグラウンドのマージャー(merger)が小さなセグメントを統合して整理します。Segment Group推移はクラスターの group_cnt の合計を前日と比較して表示し、現在 group_cnt が大きいテーブルの上位5個を24時間の変化量(Δ24h)・パーティション数と併せて表で提供します。group_cnt が継続的に右肩上がりになる場合は、自動マージャーがINSERT速度に追いついていないという信号と見ることができ、この場合は OPTIMIZE 作業を検討することになります。
データの偏り(skew)確認
分散データベースでデータが特定のノードに偏ると、そのノードだけが負荷を抱えることになります。ストレージエンジン画面は偏りを次の指標で表示します。
| Metric | Description |
|---|---|
Max Node Mem | ノードの中で最も高いメモリ使用率 |
Avg Memory Deviation | Rowstoreメモリ使用量のノード間平均偏差(倍数) |
Avg Disk Deviation | Columnstoreディスク使用量のノード間平均偏差(倍数) |
Skew | テーブル単位のノード間偏り倍数 |
Worst skew table | 偏りが最も激しいテーブル |
偏りが激しいテーブル行をクリックすると詳細ドロワーが開き、ノード別の分布と併せて OPTIMIZE 推奨の案内を確認できます。
OPTIMIZE推奨の案内
テーブル詳細ドロワーでは、データ整理(OPTIMIZE)が必要かどうかを段階別に案内します。案内は推奨レベルに応じて分かれます。
照会時点
画面はリアルタイムタイムセレクターを使用します。収集周期に合わせて最近の収集値を表示し、Memory Trendは最近1時間、クラスター要約は最近7日の範囲をデフォルトで照会します。