mirror of
https://github.com/neondatabase/neon.git
synced 2026-01-07 21:42:56 +00:00
## Problem Issues around operation and tenant locks would have been hard to debug since there was little observability around them. ## Summary of changes - As suggested in the issue, a wrapper was added around `OwnedRwLockWriteGuard` called `IdentifierLock` that removes the operation currently holding the exclusive lock when it's dropped. - The value in `IdLockMap` was extended to hold a pair of locks and operations that can be accessed and locked independently. - When requesting an exclusive lock besides returning the lock on that resource, an operation is changed if the lock is acquired. Closes https://github.com/neondatabase/neon/issues/7108
55 lines
1.3 KiB
TOML
55 lines
1.3 KiB
TOML
[package]
|
|
name = "storage_controller"
|
|
version = "0.1.0"
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
|
|
[[bin]]
|
|
name = "storage_controller"
|
|
path = "src/main.rs"
|
|
|
|
[features]
|
|
default = []
|
|
# Enables test-only APIs and behaviors
|
|
testing = []
|
|
|
|
[dependencies]
|
|
anyhow.workspace = true
|
|
aws-config.workspace = true
|
|
bytes.workspace = true
|
|
camino.workspace = true
|
|
clap.workspace = true
|
|
fail.workspace = true
|
|
futures.workspace = true
|
|
git-version.workspace = true
|
|
hex.workspace = true
|
|
hyper.workspace = true
|
|
humantime.workspace = true
|
|
itertools.workspace = true
|
|
lasso.workspace = true
|
|
once_cell.workspace = true
|
|
pageserver_api.workspace = true
|
|
pageserver_client.workspace = true
|
|
postgres_connection.workspace = true
|
|
reqwest = { workspace = true, features = ["stream"] }
|
|
routerify.workspace = true
|
|
serde.workspace = true
|
|
serde_json.workspace = true
|
|
thiserror.workspace = true
|
|
tokio.workspace = true
|
|
tokio-util.workspace = true
|
|
tracing.workspace = true
|
|
measured.workspace = true
|
|
strum.workspace = true
|
|
strum_macros.workspace = true
|
|
|
|
diesel = { version = "2.1.4", features = ["serde_json", "postgres", "r2d2"] }
|
|
diesel_migrations = { version = "2.1.0" }
|
|
r2d2 = { version = "0.8.10" }
|
|
|
|
utils = { path = "../libs/utils/" }
|
|
metrics = { path = "../libs/metrics/" }
|
|
control_plane = { path = "../control_plane" }
|
|
workspace_hack = { version = "0.1", path = "../workspace_hack" }
|
|
|