概要
「公式: 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の形式をとり、単調増加が必要です。
リビジョンは以下の新しい機能を提供します。
詳細プロフィール。SNS: X Twitter/GS=gnusocialjp@gnusocial.jp/WP=gnusocialjp@web.gnusocial.jp。2022-07-17からgnusocial.jpとweb.gnusocial.jpのサイトを運営しています。WordPressで分散SNSに参加しています。このアカウントの投稿に返信すると、サイトのコメント欄にも反映されます。
Comments