本文へスキップ

ストレージエンジン

ストレージエンジン画面では、SingleStoreがデータを保存する2つの方式であるRowstoreとColumnstoreのメモリ・ディスク使用状況を確認できます。分散環境では、特定のノードにデータが集中する偏り(skew)が性能低下につながりますが、この画面はノード間の分布を一目で表示し、偏りを素早く見つけられるよう支援します。SingleStoreを運用するDBAが対象読者です。

RowstoreとColumnstore

SingleStoreはデータを2つの方式で保存します。まず2つの概念を知っておくと画面が読みやすくなります。

  • Rowstore はデータをメモリに行単位で保存します。高速な読み取り・書き込みに有利ですが、メモリを多く使用します。簡単に言うと、よく取り出して使う物を机の上に置いておく方式に近いです。
  • Columnstore はデータをディスクに列単位で圧縮して保存します。大容量分析に有利で、ディスク効率が高いです。あまり使わない物を圧縮して倉庫に入れておく方式に近いです。

画面はこの2つを分けて表示します。

要約情報

画面上部で照会するクラスター(例: memsql_cluster)を選択すると、RowstoreとColumnstoreの状態を2つの要約カードで表示します。各カードには、注意が必要な状態のときに WARN バッジが表示されます。

CardDescription
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 DeviationAvg Disk Deviation はノード間の使用量偏差を倍数で表します。値が大きいほど特定のノードにデータが集中しているという意味です。Worst skew table は偏りが最も激しいテーブルを併せて示します。

Rowstore領域

Rowstoreはメモリを使用するため、メモリ使用量とノード別の分布が主要指標です。

WidgetDescription
ノード別メモリ使用率ノード別のホストメモリ使用率をゲージで表示
Memory TrendTable 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)は次のカラムで構成されます。

ColumnDescription
Tableテーブル名とデータベース
Worst Node使用量が最も大きいノード
Size (Total)全体のメモリ使用量と行数
Partsパーティション数
Skewノード間の偏り倍数

Columnstore領域

Columnstoreはディスクを使用するため、ディスク使用量とセグメント状態が重要です。

WidgetDescription
ノード別ディスク使用率ノード別のディスク使用量をバーで表示
Segment Group推移セグメントグループ数(group_cnt)の日次比較と上位テーブル
Size Top 5ディスクを多く占めるテーブルの上位5個

ノード別ディスクバーは、SingleStoreが使用するディスクを領域別に分けて表示します。バーをクリックすると、ノード別の詳細構成を確認できます。

AreaDescription
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)確認

分散データベースでデータが特定のノードに偏ると、そのノードだけが負荷を抱えることになります。ストレージエンジン画面は偏りを次の指標で表示します。

MetricDescription
Max Node Memノードの中で最も高いメモリ使用率
Avg Memory DeviationRowstoreメモリ使用量のノード間平均偏差(倍数)
Avg Disk DeviationColumnstoreディスク使用量のノード間平均偏差(倍数)
Skewテーブル単位のノード間偏り倍数
Worst skew table偏りが最も激しいテーブル

偏りが激しいテーブル行をクリックすると詳細ドロワーが開き、ノード別の分布と併せて OPTIMIZE 推奨の案内を確認できます。

OPTIMIZE推奨の案内

テーブル詳細ドロワーでは、データ整理(OPTIMIZE)が必要かどうかを段階別に案内します。案内は推奨レベルに応じて分かれます。

照会時点

画面はリアルタイムタイムセレクターを使用します。収集周期に合わせて最近の収集値を表示し、Memory Trendは最近1時間、クラスター要約は最近7日の範囲をデフォルトで照会します。