Conversation
epompeii
added this pull request to stack #1042
September 18, 2026 07:13
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
Contributor
|
| Project | Bencher |
| Branch | u/ep/s3-r2/registry-storage |
| Testbed | intel-v1 |
Click to view all benchmark results
| Benchmark | Latency | Benchmark Result microseconds (µs) (Result Δ%) | Upper Boundary microseconds (µs) (Limit %) |
|---|---|---|---|
| Adapter::Json | 📈 view plot 🚷 view threshold | 5.24 µs(+5.45%)Baseline: 4.97 µs | 6.07 µs (86.31%) |
| Adapter::Magic (JSON) | 📈 view plot 🚷 view threshold | 5.04 µs(+4.93%)Baseline: 4.80 µs | 5.76 µs (87.53%) |
| Adapter::Magic (Rust) | 📈 view plot 🚷 view threshold | 27.76 µs(+3.62%)Baseline: 26.79 µs | 30.26 µs (91.75%) |
| Adapter::Rust | 📈 view plot 🚷 view threshold | 4.81 µs(+15.59%)Baseline: 4.16 µs | 6.53 µs (73.74%) |
| Adapter::RustBench | 📈 view plot 🚷 view threshold | 4.82 µs(+15.89%)Baseline: 4.16 µs | 6.52 µs (73.96%) |
epompeii
marked this pull request as ready for review
September 18, 2026 07:47
epompeii
marked this pull request as draft
October 1, 2026 02:26
The continuous replication section was named plus.litestream in code, with disaster_recovery only as a serde alias, while the docs named plus.disaster_recovery. Rename the type and field to the documented key and drop the alias. Also drop the unused sftp replica scheme, so the section reads scheme: file | s3, and fix the docs example, which showed a replicas array the code never accepted.
The POST /v0/server/backup endpoint, the bencher server backup CLI subcommand, and the database.data_store server config section are gone. Continuous replication under plus.disaster_recovery is the supported path, so bencher_schema no longer depends on the AWS SDK. A config that still carries database.data_store is ignored.
Replace the hand-written S3 and local filesystem backends with one implementation over `object_store`, so any S3-compatible endpoint works through a bucket, endpoint, and region instead of an access point ARN. The config section becomes `plus.registry.storage` with `scheme: file | s3`, matching the disaster recovery section. Stored keys and the local directory layout are unchanged for a plain prefix, pinned by key layout tests; see the config reference for slash-edged prefixes and prefixes with characters the store percent-encodes.
epompeii
force-pushed
the
u/ep/s3-r2/registry-storage
branch
from
October 1, 2026 06:14
0bad79d to
553b70c
Compare
epompeii
marked this pull request as ready for review
October 1, 2026 06:47
epompeii
marked this pull request as draft
October 3, 2026 19:02
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The container registry storage crate carried two hand-written backends: one on the AWS SDK, addressed by an S3 access point ARN, and one on the local filesystem. This replaces both with one implementation over the
object_storecrate, so any S3-compatible endpoint works through a bucket, an endpoint, and a region, and the local backend isobject_store's filesystem store.Changes
OciStorageoverArc<dyn ObjectStore>replacesOciS3StorageandOciLocalStorage. Uploads keep their session shape (chunks as objects under_uploads/, a smallstate.json); completion streams the chunks through a multipart upload opened directly on the final blob key and aborts on a digest mismatch, so no temporary object and no copy.plus.registry.data_storetoplus.registry.storagewithscheme: file | s3, mirroring the disaster recovery replica field for field.filetakes an optionalpath;s3takesbucket,path,endpoint,region(defaultauto), credentials, andchunk_size.#prefixes. A multipart boundary test pins reassembly across several parts.object_store's default 30 s deadline, measured until the body finishes, cut any blob download or part upload that took longer. Two paused-time tests against a mock store pin both halves: a body that streams slowly past the old deadline completes, and a store that stalls after its headers fails at the read timeout.tests/s3_live.rs) runs the full flow against a scratch bucket from environment variables and cleans up after itself; it never runs in CI.aws-sdk-s3andaws-credential-typesleave the workspace;object_store(aws,fs) andsync_wrapperarrive. The lockfile change is additions plus the AWS tree's removal, no version bumps.#,%,?, and*percent-encoded, while+, spaces,=,@, and:are kept as is), and recommend a lifecycle rule that aborts incomplete multipart uploads.Breaking changes
plus.registry.data_storeis replaced byplus.registry.storage. A config that still carriesdata_storeis ignored and the registry falls back to local files.paththat began or ended with a slash, or contained a percent-encoded character, stored objects under a different key prefix in the previous release; that data must be moved to the normalized prefix. Plain prefixes are unchanged.Last of a stack of three, on top of the
plus.disaster_recoveryrename and the on demand backup removal.