v1.9 へのアップグレード
MygramDB v1.9.0 では、C/C++ の型付き検索オプション、レプリケーション値の再現性、設定検証を強化しました。多くの構成は設定変更なしで更新できますが、実行中のノードを置き換える前に以下を確認してください。
更新前の確認
設定済みのカラムと照合順序
MygramDB は、レプリケーション開始前に設定済みの主キー、テキストソース、フィルタカラムを検証します。次の型は設定に使えません。
BINARYVARBINARYBLOB
文字列カラムには utf8mb4、utf8/utf8mb3、ascii のいずれかの照合順序が必要です。たとえば設定済みのカラムが latin1_swedish_ci の場合、初期ロードと binlog 読み取りで同じ値として扱えないため、v1.9 では起動に失敗します。
設定から参照するカラムを確認し、未対応のカラムは変換するか、テーブル定義から外してください。
設定内の識別子
テーブル名、データベース名、主キー、フィルタ名、テキストソース名は、設定読み込み時に SQL 識別子として検証されます。生成する SQL に無効な名前が渡る前に停止します。
サービスで使う設定ファイルをそのまま検証します。
mygramdb -t /etc/mygramdb/config.yamlbare SAVE と LOAD を置き換える
v1.9 では旧コマンドを受け付けません。スクリプトや運用手順を次の形に直してください。
# 更新前
SAVE /backup/mygramdb.dmp
LOAD /backup/mygramdb.dmp
# v1.9
DUMP SAVE /backup/mygramdb.dmp
DUMP LOAD /backup/mygramdb.dmpDUMP SAVE は非同期です。バックアップ完了を判定する前に DUMP STATUS を確認してください。
ダンプと復元
v1.9 が書き出すダンプ形式は引き続き format v2 で、format v1/v2 のダンプを読み込めます。埋め込みのドキュメントストア形式は v3 になり、正確なハイライトに使う正規化前テキストを保持します。古い版へロールバックする可能性がある場合は、互換性のあるバックアップを残してください。
DUMP LOAD は、空でないレプリケーション位置を消してしまうダンプを拒否します。メンテナンス前にダンプと復元先を確認します。
DUMP VERIFY /backup/mygramdb.dmp
DUMP INFO /backup/mygramdb.dmpDocker デプロイ
最新の環境変数テンプレートから .env を作り直してください。SNAPSHOT_DIR、SNAPSHOT_INTERVAL_SEC、SNAPSHOT_RETAIN は Docker の設定項目からなくなりました。代わりに DUMP_DIR、DUMP_INTERVAL_SEC、DUMP_RETAIN を使います。
現在のテンプレートには BM25、キャッシュ、レート制限、TLS の設定もあります。エントリポイントは bind mount した設定ファイルを上書きしません。
確認する動作変更
CONFIG VERIFY relative.yamlの相対パスは、サービスの作業ディレクトリではなく、使用中の設定ファイルから解決します。影響する自動化では絶対パスを使ってください。SHOW VARIABLES LIKEはパターンを1つだけ受け付けます。SHOW VARIABLES LIKE 'cache%'は引き続き使えます。- HTTP の検索とファセットでは、既定で
qをリテラル文字列として扱います。式を送るときだけ"mode": "boolean"を指定します。 - Boolean 検索の語句では、
c++、e-mail、バージョン文字列などの句読点を含む文字列を1つの語として扱います。アプリケーション側でクエリを整形している場合は確認してください。
新しい設定項目
v1.9 では、既存の TCP アイドル接続回収と保留フレーム数の上限を設定できるようになりました。通常はデフォルトのままで構いません。接続の動作を調整するときだけ変更してください。
api:
tcp:
idle_timeout_sec: 300 # 0 でアイドル接続の回収を無効化
reaper_interval_sec: 5
max_pending_frames: 1024
max_pending_frame_bytes: 4194304フィルタ型には mediumint と mediumint_unsigned も追加されました。全設定は設定リファレンスを参照してください。
更新チェックリスト
mygramdb -tで本番設定を検証する。- 設定済みカラムの型と照合順序を確認する。
- bare
SAVE/LOADをDUMP SAVE/DUMP LOADに置き換える。 - 現在のダンプを検証し、ロールバックできるバックアップを残す。
- Compose を使う場合は Docker 環境変数ファイルを作り直す。
- 新しいノードが ready になったら、検索とレプリケーションのスモークテストを行う。
変更の全体は v1.9.0 リリースノートを参照してください。