Stash is now known as Bitbucket Server.
See the

Unknown macro: {spacejump}

of this page, or visit the Bitbucket Server documentation home page.

メタデータの末尾にスキップ
メタデータの先頭に移動

If you've got CI or other automatic tooling set up to poll Stash for changes, you can end up with high load on your Stash server. Consider for instance a CI server that has a number of builds set up for a given repository. Each of those builds polls Stash for changes and when it detects a change, it starts a new build. If your CI server supports parallel and/or chained build steps, each of these builds typically results in multiple clone operations of the same repository. The result: lots of polling for changes, and bursts of clones of a repository.

キャッシング

CI results in highly repetitive calls to Stash: polling for changes typically results in the same response 90% of the time and a build triggers a number of identical clone calls to Stash. Both operations can benefit greatly from caching when you experience repetitive load from CI.

Stash 2.5, and later versions, ship with the SCM Cache Plugin already bundled. The plugin is enabled by default, but note that ref advertisement is disabled by default – see the 'Limitations' section below. The plugin is also available from the Atlassian Marketplace.

このページの内容

制限事項

  • キャッシュは "ref advertisement" (変更のポーリング)、クローン、およびシャロー クローン リクエストにのみ適用できます。フェッチ / プル操作はキャッシュされませんが、これらの操作は "ref advertisement" キャッシュの恩恵を受けます。
  • As a precaution, ref advertisement caching is disabled by default. The openness of the plugin system means that plugins (or manually installed git hooks) could be updating refs in repository without the caching plugin detecting these changes. The result would be a stale refs cache and failing clone/fetch operations. However, if you know that there are no plugins or git hooks installed that make changes to the repository directly, you can enable the ref advertisement caching using the system properties listed in the Configuration section below. Note that as an additional precaution, the ref advertisement caches are configured to automatically expire after a minute.

考慮事項

ref advertisements 操作の場合もクローン操作の場合も、キャッシュ データはディスクに保存されます。保存期間は設定できます。大きなインスタンスはディスク全体を潜在的に消費する可能性があるため、SCM Cache Plugin は残りのディスク容量を監視し、設定された最低ディスク空き容量に達すると自動的に無効化されます。

See Stash config properties for descriptions of the available system properties.

Enabling and disabling caching

Enable the SCM Cache Plugin from the admin area in Stash. Click Manage Add-ons (under 'Add-Ons') and filter for system add-ons. Click SCM Cache Plugin for Stash and then either Enable or Disable.

構成

The SCM Cache Plugin for Stash can be configured using either the REST endpoint (some settings, not all) or the system properties in <STASH-HOME>/stash-config.properties. Settings configured through REST are considered before the settings in stash-config.properties.

REST API

メソッドURL説明
GET
/rest/scm-cache/latest/config/protocols
キャッシュが有効化されているプロトコルを取得します。
PUT
/rest/scm-cache/latest/config/protocols/{protocol}
プロトコル (HTTP または SSH) のホスティング リクエストのキャッシングを有効化します。
削除
/rest/scm-cache/latest/config/protocols/{protocol}
プロトコル (HTTP または SSH) のホスティング リクエストのキャッシングを無効化します。
GET
/rest/scm-cache/latest/config/refs/enabled
ref advertisement キャッシュが有効化されているか (true) 無効化されているか (false) を取得します。
PUT
/rest/scm-cache/latest/config/refs/enabled/{status}

ref advertisement キャッシュを有効化 (status = true) または無効化 (status = false) します。

GET
/rest/scm-cache/latest/config/refs/ttl
ref advertisement キャッシュの有効期限を秒単位で取得します。
PUT
/rest/scm-cache/latest/config/refs/ttl/{expiryInSec}
ref advertisement キャッシュの有効期限を秒単位で設定します。
GET
/rest/scm-cache/latest/config/upload-pack/enabled
クローン キャッシュが有効化されているか (true) 無効化されているか (false) を取得します。
PUT
/rest/scm-cache/latest/config/upload-pack/enabled/{status}
クローン キャッシュを有効化 (status = true) または無効化 (status = false) します。
GET
/rest/scm-cache/latest/config/upload-pack/ttl
クローン キャッシュの有効期限を秒単位で取得します。
PUT
/rest/scm-cache/latest/config/upload-pack/ttl/{expiryInSec}
クローン キャッシュの有効期限を秒単位で設定します。
GET
/rest/scm-cache/latest/caches
現在のキャッシュに関する情報 (サイズ、キャッシュのヒット数、ミス数など) を取得します。
削除
/rest/scm-cache/latest/caches
すべてのキャッシュをクリアします。
GET
/rest/scm-cache/latest/caches/{projectKey}/{repoSlug}
projectKey および repoSlug で識別されるリポジトリのキャッシュに関する情報 (サイズ、キャッシュのヒット数、ミス数など) を取得します。
削除
/rest/scm-cache/latest/caches/{projectKey}/{repoSlug}

projectKey および repoSlug で識別されるリポジトリのキャッシュをクリアします。

  • ラベルなし