mirror of
https://github.com/neondatabase/neon.git
synced 2026-01-07 13:32:57 +00:00
Now safekeeper control file updated in a following way: 1. Write data to temp file 2. Fsync the temporary file (if sync option is specified) 3. Rename temporary file to actual control file 4. Fsync containing directory (if sync option is specified) 5. Fsync file after rename (if sync option is specified). Note that action 5 is not mentioned anywhere as required but it is done in postgres this way (see durable_rename). Also because of the rename machinery switch to use dedicated lock file to prevent running several safekeepers concurrently on the same data cleanup fsync control file after rename to match postgres behaviour
44 lines
1.2 KiB
TOML
44 lines
1.2 KiB
TOML
[package]
|
|
name = "walkeeper"
|
|
version = "0.1.0"
|
|
authors = ["Stas Kelvich <stas@zenith.tech>"]
|
|
edition = "2018"
|
|
|
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
|
|
|
[dependencies]
|
|
regex = "1.4.5"
|
|
bincode = "1.3"
|
|
bytes = "1.0.1"
|
|
byteorder = "1.4.3"
|
|
hyper = "0.14"
|
|
routerify = "2"
|
|
fs2 = "0.4.3"
|
|
lazy_static = "1.4.0"
|
|
serde_json = "1"
|
|
log = "0.4.14"
|
|
clap = "2.33.0"
|
|
daemonize = "0.4.1"
|
|
rust-s3 = { version = "0.27.0-rc4", features = ["no-verify-ssl"] }
|
|
tokio = "1.11"
|
|
tokio-stream = { version = "0.1.4" }
|
|
postgres-protocol = { git = "https://github.com/zenithdb/rust-postgres.git", rev="9eb0dbfbeb6a6c1b79099b9f7ae4a8c021877858" }
|
|
postgres = { git = "https://github.com/zenithdb/rust-postgres.git", rev="9eb0dbfbeb6a6c1b79099b9f7ae4a8c021877858" }
|
|
anyhow = "1.0"
|
|
crc32c = "0.6.0"
|
|
humantime = "2.1.0"
|
|
walkdir = "2"
|
|
serde = { version = "1.0", features = ["derive"] }
|
|
hex = "0.4.3"
|
|
const_format = "0.2.21"
|
|
|
|
# FIXME: 'pageserver' is needed for ZTimelineId. Refactor
|
|
pageserver = { path = "../pageserver" }
|
|
postgres_ffi = { path = "../postgres_ffi" }
|
|
workspace_hack = { path = "../workspace_hack" }
|
|
zenith_metrics = { path = "../zenith_metrics" }
|
|
zenith_utils = { path = "../zenith_utils" }
|
|
|
|
[dev-dependencies]
|
|
tempfile = "3.2"
|