Color mode

Search notes

Filter with tag:, lang:, or path:.

キャッシュバージョン(Cache Version)

永続コンテンツキャッシュのスキーマバージョンで、キャッシュスキーマ間の互換性と移行を制御します。

スキーマバージョン

CONTENT_CACHE_SCHEMA_VERSION(現在は5)は、キャッシュの構造が変わったときに上がります。 CONTENT_CACHE_COMPATIBILITY_VERSION(現在は3)は、振る舞いや取り決めが変わったときに変わります。 スキーマバージョンが一致しないエントリはミスとして扱われ、再処理されます。

移行

スキーマバージョンが一致しないときは.riebeckite/cacheを削除し、コールド処理を強制します。 ビルドログは、互換性のないスキーマバージョンを持つキャッシュエントリがあるとschema-missを報告します。

スキーマバージョンの定数

キャッシュのバージョン管理は、packages/core/src/content/content_persistent_cache.tsで定義された2つの定数で制御します。

  • CONTENT_CACHE_SCHEMA_VERSION(現在は5):キャッシュの構造が変わったときに上がります。スキーマバージョンが一致しないエントリはミスとして扱われ、再処理されます。
  • CONTENT_CACHE_COMPATIBILITY_VERSION(現在は3):振る舞いや取り決めが変わったときに変わります。

キャッシュ検索時の互換性チェック

キャッシュ検索では、createPersistentContentCache(packages/core/src/content/content_persistent_cache.ts)のlookupメソッドがentry.schemaVersion !== CONTENT_CACHE_SCHEMA_VERSIONを確認します。バージョンが異なれば、エントリはschema-missとして扱われ、最初から再処理されます。これにより、キャッシュスキーマの構造変更は必ず次のビルドで反映されます。

キャッシュエントリの構造

永続コンテンツキャッシュのエントリ(packages/core/src/content/content_persistent_cache.tsのPersistentContentCacheEntry型)の構造は次のとおりです。

json
{
  "schemaVersion": 5,
  "key": "<computed cache key>",
  "dependencies": [
    { "kind": "content", "id": "slug-name", "fingerprint": "sha256 hash" },
    { "kind": "file", "id": "path/to/file", "fingerprint": "sha256 hash" },
    { "kind": "link", "id": "link-target-slug", "fingerprint": "sha256 hash" }
  ],
  "value": {
    "frontmatter": { "title": "Example", "date": "2024" },
    "html": "<p>processed HTML</p>"
  }
}

エントリはschemaVersion(現在は5)、key(slug、source、frontmatter、パイプラインのフィンガープリントからcomputeContentCacheKeyで計算)、dependencies(CachedContentDependencyレコードの配列)、value(frontmatterとHTML)を含みます。検索中にentry.key !== keyであれば、エントリはkey-missとして扱われます。

関連用語

さらに詳しく

Local Graph

Nearby Notes

Open in Explorer →
キャッシュバージョン(Cache Version)キャッシュ(Cache)永続キャッシュ(Persistent Cache)フィンガープリント(Fingerprint)プラグインキャッシュ(Plugin Cache)
CurrentOutgoingBacklink