公式: 履歴削除などのためのATPリポジトリ―データ構造の更新

protocol/ATP/atproto
概要

公式: Bluesky APIでの投稿例はbotやアプリの自作に有益 | GNU social JP」に続くATP/Blueskyの公式情報の紹介です。

前回のこちらの記事に続いて、2023-08-24に「Updates to Repository Sync Semantics | AT Protocol」のAT Protocolの開発ブログの投稿があったので紹介します。

内容はデータリポジトリ―同期の更新です。履歴の削除、ストレージコスト増加への対策のため、データリポジトリ―に論理クロックを導入するというデータ構造の更新です。

Updates to Repository Sync Semantics

リポジトリ―の性器構造から履歴を除去し、論理クロックを置換可能なATPリポジトリ―の新しいバージョンを発表します。この更新は2023-08-28に開始します。

フィードじぇねらーたーなどfirehoseの購読者には影響しません。コミットを意識したリポジトリ―同期 (ealiest/latestのcom.atproto.sync.getRepoへの指定)、コミット処理時にリポジトリ―バージョンを明示的に確認している場合に影響あります。

Removing Repository History

ATPのリポジトリ―はGitリポジトリ―に似ていますが、構造化レコードな点が異なります。Git同様に、ATPリポジトリ―への各コミットは、直前のコミットへのポインターがあります。ただし、この方式はいくつか問題があります。

  • 削除が困難。レコード削除時に、意図に合わせてそのコミットをリポジトリ―から削除が必要。
  • ストレージコストの増加。リポジトリ―履歴の維持には、リポジトリ―サイズが5-10倍に増加の可能性。

現在のモデルでは、リベースを通じて両方の問題の解決を試みました。ただし、気密性の高い操作で実行にコストがかかり、ネットワーク全体の通信も複雑です。

Using a Logical Clock for Repositories

この問題への対処のため、コミット内のprevポインターを論理クロックに置換しました。当初数週間前にこの意向を発表しました。リポジトリ―履歴の処理の変更方法は以下です。

  • リポジトリ―バージョンを3に増加。
  • prevフィールドをリポジトリ―コミットの必須から任意項目に変更。
  • 論理クロックの新しいrev (revision) フィールドを必須に追加。
  • コミット対応リポジトリ―同期メカニズムの削除・調整。
Repository Revisions

リポジトリ―の新しい同期セマンティクスは、署名付きコミットに含まれる論理クロックに依存します。

このリビジョンはTIDの形式をとり、単調増加が必要です。

リビジョンは以下の新しい機能を提供します。

残り3898文字。続きはSilver/Gold会員限定。

Free=0/Bronze=220/Silver=1100/Gold=1980円。

会員登録 (About Member)

Comments

Ads Blocker Image Powered by Code Help Pro

広告ブロッカー検知/Ads Blocker Detected

このサイトは会費と広告で運営されています。[Bronze=月220円以上に登録] するか、広告ブロッカーを無効にしてください。

This site is operated by membership and advertise. Please [register at least Bronze=220 JPY/month], or disable ads blocker.

Copied title and URL