Commit graph

290 commits

Author SHA1 Message Date
Alex 22f38808e7
rpc_helper: don't use tokio::spawn for individual requests 2023-11-16 16:34:01 +01:00
Alex 707442f5de
layout: refactor digests and add "!=" assertions before epidemic bcast
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
continuous-integration/drone Build is passing
2023-11-16 13:51:40 +01:00
Alex ad5c6f779f
layout: split helper in separate file; more precise difference tracking
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2023-11-16 13:26:43 +01:00
Alex d4df03424f
layout: fix test
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
continuous-integration/drone Build is passing
2023-11-15 15:56:57 +01:00
Alex 33c8a489b0
layou: implement ack locking
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2023-11-15 15:40:44 +01:00
Alex 393c4d4515
layout: add helper for cached/external values to centralize recomputation
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2023-11-15 14:20:50 +01:00
Alex 65066c7064
layout: wip cache global mins 2023-11-15 13:28:30 +01:00
Alex acd49de9f9
rpc: fix write set quorums
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2023-11-15 13:07:42 +01:00
Alex b3e729f4b8
layout history merge: rm invalid versions when valid versions are added
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2023-11-15 12:15:58 +01:00
Alex 7ef2c23120
layout: fix test
Some checks failed
continuous-integration/drone/pr Build is failing
continuous-integration/drone/push Build is failing
2023-11-14 15:45:01 +01:00
Alex 90e1619b1e
table: take into account multiple write sets in inserts
Some checks failed
continuous-integration/drone/pr Build is failing
continuous-integration/drone/push Build is failing
2023-11-14 15:40:46 +01:00
Alex 3b361d2959
layout: prepare for write sets
Some checks failed
continuous-integration/drone/pr Build is failing
continuous-integration/drone/push Build is failing
2023-11-14 14:28:16 +01:00
Alex 866196750f
system: add todo wrt new layout 2023-11-14 13:36:58 +01:00
Alex 83a11374ca
layout: fixes in schema
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2023-11-14 13:29:26 +01:00
Alex 1aab1f4e68
layout: refactoring of all_nodes
Some checks failed
continuous-integration/drone/pr Build is failing
continuous-integration/drone/push Build is failing
2023-11-14 13:12:32 +01:00
Alex 8e292e06b3
layout: some refactoring of nongateway nodes
Some checks failed
continuous-integration/drone/pr Build is failing
continuous-integration/drone/push Build is failing
2023-11-14 12:48:38 +01:00
Alex 9a491fa137
layout: fix test
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2023-11-11 13:10:59 +01:00
Alex df24bb806d
layout/sync: fix bugs and add tracing
Some checks failed
continuous-integration/drone/pr Build is failing
continuous-integration/drone/push Build is failing
2023-11-11 12:44:27 +01:00
Alex ce89d1ddab
table sync: adapt to new layout history
Some checks failed
continuous-integration/drone/pr Build is failing
continuous-integration/drone/push Build is failing
2023-11-11 12:08:32 +01:00
Alex df36cf3099
layout: add helpers to LayoutHistory and prepare integration with Table
Some checks failed
continuous-integration/drone/pr Build is failing
continuous-integration/drone/push Build is failing
2023-11-09 16:32:31 +01:00
Alex 9d95f6f704
layout: fix tracker bugs
Some checks failed
continuous-integration/drone/pr Build is failing
continuous-integration/drone/push Build is failing
2023-11-09 15:52:45 +01:00
Alex bad7cc812e
layout admin: add missing calls to update_hash
Some checks failed
continuous-integration/drone/pr Build is failing
continuous-integration/drone/push Build is failing
2023-11-09 15:42:10 +01:00
Alex 03ebf18830
layout: begin managing the update tracker values
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2023-11-09 15:31:59 +01:00
Alex 94caf9c0c1
layout: separate code path for synchronizing update trackers only
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2023-11-09 14:53:34 +01:00
Alex bfb1845fdc
layout: refactor to use a RwLock on LayoutHistory
Some checks failed
continuous-integration/drone/pr Build is failing
continuous-integration/drone/push Build is failing
2023-11-09 14:12:05 +01:00
Alex 19ef1ec8e7
layout: more refactoring 2023-11-09 13:34:14 +01:00
Alex 8a2b1dd422
wip: split out layout management from System into separate LayoutManager
Some checks failed
continuous-integration/drone/pr Build is failing
continuous-integration/drone/push Build is failing
2023-11-09 12:55:36 +01:00
Alex 523d2ecb95
layout: use separate CRDT for staged layout changes
Some checks failed
continuous-integration/drone/pr Build is failing
continuous-integration/drone/push Build is failing
2023-11-09 11:19:43 +01:00
Alex 1da0a5676e
bump garage protocol version tag to 0x000A (0.10)
Some checks failed
continuous-integration/drone/pr Build is failing
continuous-integration/drone/push Build is failing
2023-11-08 19:30:58 +01:00
Alex 8dccee3ccf
cluster layout: adapt all uses of ClusterLayout to LayoutHistory
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2023-11-08 19:28:36 +01:00
Alex fe9af1dcaa
WIP: garage_rpc: store layout version history 2023-11-08 17:49:06 +01:00
Alex 4a9c94514f
avoid using layout_watch in System directly
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2023-11-08 16:41:00 +01:00
Alex 12d1dbfc6b
remove Ring and use ClusterLayout everywhere
Some checks failed
continuous-integration/drone/pr Build is failing
continuous-integration/drone/push Build is failing
2023-11-08 15:41:24 +01:00
Alex 0962313ebd
garage_rpc: reorder functions in layout.rs 2023-11-08 13:13:04 +01:00
trinity-1686a c7f5dcd953 fix compilation on macos
All checks were successful
continuous-integration/drone/pr Build is passing
fsblkcnt_t is ony 32b there, so we have to do an additional cast
2023-10-15 17:57:27 +02:00
Alex 952c9570c4 bump version to v0.9.0
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
continuous-integration/drone Build is passing
2023-10-10 14:08:11 +02:00
Alex 897cbf2c27 actually update rmp-serde to 1.1.2 for both garage and netapp dependency (fix #629)
Some checks reported errors
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
continuous-integration/drone/tag Build is passing
continuous-integration/drone Build was killed
2023-09-27 13:13:00 +02:00
Alex ad82035b98 Merge branch 'main' into next 2023-09-27 13:11:52 +02:00
Alex 3ecc17f8c5 new layout: use deterministic randomness for reproducible results
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2023-09-21 11:21:35 +02:00
Alex 0088599f52 new layout: fix clippy lints
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2023-09-18 12:17:07 +02:00
Alex 749b4865d0 new layout: improve display and fix comments
Some checks failed
continuous-integration/drone/pr Build is failing
continuous-integration/drone/push Build is failing
2023-09-18 12:07:45 +02:00
Alex 015ccb39aa new layout: make zone_redundancy optionnal (if not set, is maximum)
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2023-09-18 11:59:08 +02:00
Alex 2e229d4430 new layout: improve output display
Some checks reported errors
continuous-integration/drone/pr Build is failing
continuous-integration/drone/push Build was killed
2023-09-12 17:24:51 +02:00
Alex 91e764a2bf fix hang on shutdown
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2023-09-12 14:35:48 +02:00
Alex fd7d8fec59 Merge branch 'main' into next
Some checks reported errors
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
continuous-integration/drone Build was killed
2023-09-11 23:09:20 +02:00
Alex 9cfe55ab60 fix 32-bit build
Some checks reported errors
continuous-integration/drone/pr Build was killed
continuous-integration/drone/push Build was killed
continuous-integration/drone Build is passing
2023-09-11 20:01:29 +02:00
Alex 51abbb02d8 Merge branch 'main' into next
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2023-09-11 20:00:02 +02:00
Alex d5bb50d738 use statvfs instead of mount list to determine free data/meta space (fix #611)
Some checks reported errors
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
continuous-integration/drone Build was killed
2023-09-11 19:08:24 +02:00
Alex ad6b1cc0be Merge branch 'main' into next
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2023-09-11 13:14:18 +02:00
Alex 2f112ac682 correct free data space accounting for multiple data dirs on same fs
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2023-09-07 14:42:20 +02:00
Alex 71c0188055 block manager: skeleton for multi-hdd support 2023-09-06 16:35:28 +02:00
Alex 51eac97260 update version to 0.8.4
Some checks failed
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
continuous-integration/drone Build is failing
2023-09-05 23:28:12 +02:00
Alex e78566591b Revert netapp update, hold to version 0.5.2 that uses rmp-serde 0.15
Some checks failed
continuous-integration/drone/push Build is failing
2023-09-05 23:23:23 +02:00
Alex 2e90e1c124 Merge branch 'main' into next
Some checks reported errors
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build was killed
continuous-integration/drone Build is passing
2023-08-29 11:32:42 +02:00
Alex 06369c8f4a add garage_db dependency in garage_rpc
Some checks reported errors
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
continuous-integration/drone Build was killed
2023-08-28 17:08:21 +02:00
Alex cece1be1bb bump version to 0.8.3
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/tag Build is passing
continuous-integration/drone/push Build is passing
continuous-integration/drone Build is passing
2023-08-28 13:17:26 +02:00
Jonathan Davies d66d81ae2d cargo: Updated gethostname v0.2.3 -> v0.4.3.
Some checks failed
continuous-integration/drone/pr Build is failing
2023-08-28 09:30:27 +00:00
Alex 35c108b85d admin api: switch GetClusterHealth to camelcase (fix #381 again)
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2023-06-14 13:53:19 +02:00
Alex cda957b4b1 update netapp's rmp-serde dependency to v1.1
Some checks failed
continuous-integration/drone/pr Build is failing
continuous-integration/drone/push Build is failing
2023-06-13 17:34:49 +02:00
Alex 90b2d43eb4 Merge branch 'main' into next
Some checks failed
continuous-integration/drone/pr Build is failing
continuous-integration/drone/push Build is failing
2023-06-13 17:14:11 +02:00
Alex 38d6ac4295 New multipart upload table layout 2023-06-09 16:23:37 +02:00
Roberto Hidalgo b770504126 simplify code according to feedback 2023-05-22 08:57:15 -06:00
Roberto Hidalgo 6b69404f1a rename mode to consul_http_api 2023-05-22 08:57:15 -06:00
Roberto Hidalgo 011f473048 revert rpc/Cargo.toml 2023-05-22 08:57:15 -06:00
Roberto Hidalgo fd7dbea5b8 follow feedback, fold into existing feature 2023-05-22 08:57:15 -06:00
Roberto Hidalgo bd6485565e allow additional ServiceMeta, docs 2023-05-22 08:57:15 -06:00
Roberto Hidalgo 4d6e6fc155 cargo fmt 2023-05-22 08:57:15 -06:00
Roberto Hidalgo 02ba9016ab register consul services against local agent instead of catalog api 2023-05-22 08:57:15 -06:00
Alex 351d734e6c Merge branch 'main' into next
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2023-05-09 12:40:08 +02:00
Jakub Jirutka d2deee0b8b Declare garage crates using workspace.dependencies
This will allow to really disable "sled" feature without declaring
`default-features = false` in every Cargo.toml where garage_db and
garage_model is used.

See https://doc.rust-lang.org/cargo/reference/workspaces.html#the-dependencies-table
2023-05-09 08:46:15 +00:00
Alex fa78d806e3 Merge branch 'main' into next 2023-04-25 12:34:26 +02:00
Alex 0a1ddcf630 Prepare for v0.8.2
Some checks failed
continuous-integration/drone/pr Build is failing
continuous-integration/drone/push Build is failing
2023-03-13 18:46:31 +01:00
Alex f37ec584b6 Merge branch 'main' into rustversion-label
All checks were successful
continuous-integration/drone/pr Build is passing
2023-03-13 16:14:13 +01:00
Jonathan Davies 25f2a46fc3 rpc/system_metrics.rs: Added rustversion label to garage_build_info metric. 2023-03-10 14:46:44 +00:00
teutat3s f0717dd169
Bump pnet_datalink 0.28 -> 0.33
Some checks failed
continuous-integration/drone/pr Build is failing
Motivation: building garage on illumos is only possible since
pnet_datalink version 0.30

Changelog: https://github.com/libpnet/libpnet/compare/v0.28.0...v0.33.0
2023-02-28 16:06:43 +01:00
Alex 8e93d69974 More clippy fixes
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2023-01-26 17:26:32 +01:00
Alex 590a0a8450 Merge branch 'main' into k2v-watch-range-2
Some checks failed
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is failing
2023-01-26 16:46:40 +01:00
Alex 94d559ae00 Merge branch 'main' into report-disk-usage
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2023-01-26 16:20:41 +01:00
Alex c7d0ad0aa0 Add local disk usage to exported prometheus metrics
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2023-01-26 15:30:36 +01:00
Alex efb6b6e868 Disk space report
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
Report available disk space on nodes and calculate cluster-wide available space in `garage stats` (fix #479)
2023-01-26 15:04:32 +01:00
Jonathan Davies 20c1cdf662 Cargo.toml: Loosen tracing dependency to just 0.1. 2023-01-26 11:13:11 +00:00
Alex 84b4a868e3
Migration of cluster layout from v0.8 to v0.9
Some checks failed
continuous-integration/drone/pr Build is failing
continuous-integration/drone/push Build is passing
2023-01-11 17:47:46 +01:00
Alex dac254a6e7
Merge branch 'main' into k2v-watch-range-2
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2023-01-11 17:09:37 +01:00
Alex 638c5a3ce0
PollRange: add extra RPC delay after quorum is achieved,
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
to give a chance to the 3rd node to respond
2023-01-11 16:12:07 +01:00
Jonathan Davies df1d9a9873 system.rs: Integrated SystemMetrics into System implementation. 2023-01-10 10:39:50 +00:00
Jonathan Davies aac348fe93 Added system_metrics.rs file. 2023-01-10 10:38:50 +00:00
Jonathan Davies cb07e6145c Changed all instances of assignation to assignment.
All checks were successful
continuous-integration/drone/pr Build is passing
2023-01-05 11:09:25 +00:00
Alex 570e5e5bbb
Merge branch 'main' into next
All checks were successful
continuous-integration/drone/push Build is passing
2023-01-04 11:34:43 +01:00
Alex 1fc220886a
Fix Consul & Kubernetes discovery with new way of doing background things
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2023-01-03 16:55:59 +01:00
Alex 8d5505514f
Make it explicit when using nonversioned encoding
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2023-01-03 15:27:36 +01:00
Alex cdb2a591e9
Refactor how things are migrated
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2023-01-03 14:44:47 +01:00
Alex 939a6d67e8
Merge branch 'main' into internals-rework
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2023-01-02 15:07:44 +01:00
Alex 6775569525
Bump everything to v0.8.1
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2023-01-02 14:15:33 +01:00
Alex e6f14ab5cf
better error message handling
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2022-12-14 16:11:19 +01:00
Alex 510b620108
Get rid of background::spawn
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2022-12-14 16:08:05 +01:00
Alex a19bfef508
Improve error message on rpc connection failure
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2022-12-14 12:57:33 +01:00
Alex d56c472712
Refactor background runner and get rid of job worker
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2022-12-14 12:51:42 +01:00
Alex 6e44369cbc Merge pull request 'Optimal layout assignation algorithm' (#296) from optimal-layout into next
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #296
2022-12-11 17:41:53 +00:00
Alex 2c2e65ad8b
Merge commit 'ec12d6c' into next
All checks were successful
continuous-integration/drone/push Build is passing
2022-12-11 18:41:15 +01:00
Alex 9d83364ad9
itertools .unique() doesn't require sorted items
Some checks failed
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is failing
2022-12-11 18:30:02 +01:00