Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit bea24c0

Browse files
Add details about scanning and caching
1 parent 626e5d7 commit bea24c0

File tree

1 file changed

+33
-1
lines changed

1 file changed

+33
-1
lines changed

‎README.md‎

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,38 @@ remove all versions.
134134
./code-marketplace remove ms-python.python --all [flags]
135135
```
136136

137+
## Scanning frequency and caching
138+
139+
The marketplace does not utilize a database. When an extension query is made,
140+
the marketplace scans the local file system or queries Artifactory on demand to
141+
find all the available extensions.
142+
143+
However, for Artifactory in particular this can be slow, so this full list of
144+
extensions is cached in memory for a default of one minute and reused for any
145+
subsequent requests that fall within that duration. This duration can be
146+
configured or disabled with `--list-cache-duration` and applies to both storage
147+
backends.
148+
149+
This means that when you add or remove an extension, depending on when the last
150+
request was made, it can take a duration between zero and
151+
`--list-cache-duration` for the query response to reflect that change.
152+
153+
Artifactory storage also uses a second in-memory cache for extension manifests,
154+
which are referenced in extension queries (for things like categories). This
155+
cache is initially populated with all available extension manifests on startup.
156+
Extensions added after the server is running are added to the cache on-demand
157+
the next time extensions are scanned.
158+
159+
The manifest cache has no expiration and never evicts manifests because it was
160+
expected that extensions are typically only ever added and individual extension
161+
version manifests never change; however we would like to implement evicting
162+
manifests of extensions that have been removed.
163+
164+
With local storage, manifests are read directly from the file system on
165+
demand. Requests for other extension assets (such as icons) for both storage
166+
backends have no cache and are read/proxied directly from the file system or
167+
Artifactory since they are not in the extension query hot path.
168+
137169
## Usage in code-server
138170

139171
You can point code-server to your marketplace by setting the
@@ -171,7 +203,7 @@ Although not officially supported, you can follow the examples below to start us
171203
export VSCODE_GALLERY_ITEM_URL="https://<domain>/item"
172204
# Or set a product.json file in `~/.config/VSCodium/product.json`
173205
codium
174-
```
206+
```
175207
176208
## Missing features
177209

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /