📣新登場!TiDB Cloud BYOC、TiDB Cloud Filesystem、PostgreSQL-compatible TiDB Cloud Starter がパブリックプレビュー中。このページは自動翻訳されたものです。原文はこちらからご覧ください。

TiDB Cloud Filesystem のレイヤーとチェックポイント



ファイルシステムのレイヤーは、共有されるベースデータとは分離したまま、ベースファイルシステム内のパスに対する変更を記録します。レイヤー内の変更は、そのレイヤーがコミットされたときにのみベースファイルシステムの一部になります。

レイヤーはチェックポイントやフォークも可能で、これによりレイヤー履歴内のある時点を保持したり、独立した子レイヤーで作業を継続したりできます。

ファイルシステムのレイヤーは Git ブランチとは独立しており、Git リポジトリも必要ありません。

レイヤーの作成、確認、フォーク、チェックポイント、コミット、ロールバックを行うコマンドについては、ファイルシステムのレイヤーとチェックポイントを管理する を参照してください。

基本概念

  • ベースファイルシステム: レイヤーの外側にある共有ファイルシステムの状態です。レイヤーは、この状態をすぐには変更せずに、ベースパスに対する変更を記録します。
  • レイヤー: ベースパスに対する書き込み可能な変更セットです。レイヤーがコミットされるまで、その変更はベースファイルシステムとは分離されたままです。
  • チェックポイント: レイヤーの永続的な履歴内にある名前付きの時点です。チェックポイントを作成すると、その時点がレイヤー履歴に保持されますが、レイヤーの変更はベースファイルシステムには適用されません。
  • フォーク: 別のレイヤーの現在の状態、またはそのチェックポイントの 1 つから作成される、新しい書き込み可能な子レイヤーです。フォーク後に行われた変更は、親レイヤーと子レイヤーの間で独立します。
  • コミット: レイヤー内の有効な変更をベースファイルシステムに適用します。
  • ロールバック: レイヤーの未コミットの変更を、ベースファイルシステムに適用せずに破棄します。ロールバックはレイヤーを以前のチェックポイントに戻すものではありません。

レイヤーとベースファイルシステム

レイヤー内で行われた変更は、そのレイヤーを通しては見えますが、レイヤーがコミットされるまではベースファイルシステムには見えません。

レイヤーを指定しない操作は、ベースファイルシステムにアクセスします。つまり、未コミットのレイヤーがあっても、他のユーザーやアプリケーションがベースに直接アクセスしたときに見える内容は変わりません。

レイヤーは、ファイルシステム全体の完全なスナップショットではなく、ベースパス上に重ねられるオーバーレイです。フォークやチェックポイントは関連するレイヤー履歴を保持しますが、ベースファイルシステム全体を固定するわけではありません。そのため、引き続きベースから解決されるデータには、後から加えられたベース側の変更が反映されることがあります。

フォークとチェックポイント

チェックポイントは、1 つのレイヤーの永続的な履歴内にあるある時点を保持します。別の書き込み可能レイヤーを作成するものではなく、変更をベースファイルシステムに公開することもありません。

チェックポイントには読み取り専用のビューとしてアクセスできます。チェックポイントから変更を続けるには、そこから新しい書き込み可能レイヤーをフォークします。

フォークは、フォークが作成された時点での親レイヤーの履歴を保持します。その後、親レイヤーと子レイヤーでの新しい変更は互いに独立します。

チェックポイントの作成時やマウントされたレイヤーの操作時における運用上の要件については、ファイルシステムのレイヤーとチェックポイントを管理する を参照してください。

コミットとロールバック

レイヤーをコミットすると、そのレイヤーの有効な変更がすべてベースファイルシステムに適用されます。これは Git コミットではなく、個々のファイルを選択的に公開するものでもありません。

コミットは、レイヤーの親レイヤーではなく、ベースファイルシステムに変更を適用します。ベースファイルシステムに競合する変更が含まれている場合、変更が自動的にマージされるのではなく、コミットが失敗することがあります。

レイヤーをロールバックすると、変更を公開する代わりに未コミットの変更を破棄します。これはレイヤーを以前のチェックポイントに戻すものではありません。

境界と制限事項

レイヤーは変更の分離を提供しますが、完全なファイルシステムスナップショット、バックアップ、または認可境界ではありません。ファイルシステムのパスや操作へのアクセスを制限するには、スコープ付きトークン を使用してください。

現在のレイヤーモデルには、次の制限があります。

  • Git スタイルの merge および rebase 操作はサポートされていません。
  • レイヤーをその場でチェックポイントにリセットできません。チェックポイントから続行するには、新しいレイヤーをフォークしてください。
  • 子レイヤーをコミットしても、その変更は親レイヤーにはマージされません。
  • レイヤーを削除すると論理的には破棄されますが、子孫レイヤーがその履歴に依存している間は、それらの子孫レイヤーから参照される履歴が引き続き利用可能な場合があります。
  • レイヤーで作成されたファイルへの繰り返しの変更や継承されたメタデータを含む複雑な履歴では、パブリックプレビュー期間中に制限がある場合があります。

コマンド構文、フラグ、出力フィールドについては、ti fs コマンドリファレンス を参照してください。

このページは役に立ちましたか?