Chris Lu
baf0dd680e
ec.encode: require shard placement to meet -shardReplicaPlacement ( #11947 )
...
* ec: measure shard placement against replica-placement caps
ecShardPlacementViolations reports where a volume's newest-generation
shard placement exceeds the per-node and per-rack caps a
-shardReplicaPlacement requests, using the same digit mapping the
balance planner enforces (SameRackCount = shards/node, DiffRackCount =
shards/rack, dc-qualified rack keys).
* ec.encode: -strictPlacement keeps originals when placement breaches caps
-shardReplicaPlacement tells the balancer the requested per-node and
per-rack shard limits, but nothing verifies the outcome. With
-strictPlacement the pre-delete shard verification also measures the
final placement against those caps: a volume still over the node or
rack limit aborts before its source is deleted, so the encode only
completes when the requested failure-domain spread is actually met.
* ec.encode: cover the strict-placement delete gate with a test
The gate in verifyEcShardsBeforeDelete now runs against a stubbed
topology: a compliant spread passes while an over-cap placement is
refused before source deletion. The retry knobs become package vars so
the test does not wait out the heartbeat-propagation backoff.
* ec.encode: enforce -shardReplicaPlacement without a flag
Drop the -strictPlacement option: the requested per-node and per-rack
caps are always requirements at the pre-delete verification, so the
encode only completes when the placement actually honors them.
2026-10-23 17:29:36 -07:00
..
2026-08-27 22:27:45 -07:00
2026-08-27 22:27:45 -07:00
2026-08-27 22:27:45 -07:00
2026-01-07 13:06:08 -08:00
2026-08-27 22:27:45 -07:00
2026-08-27 22:27:45 -07:00
2026-08-27 22:27:45 -07:00
2026-07-17 12:30:42 -07:00
2026-07-17 12:30:42 -07:00
2026-10-16 21:07:51 -07:00
2026-04-21 20:17:42 -07:00
2026-08-27 22:27:45 -07:00
2026-10-16 21:07:51 -07:00
2026-08-14 13:54:12 -07:00
2026-10-16 21:07:51 -07:00
2026-10-16 21:07:51 -07:00
2026-08-27 22:27:45 -07:00
2026-10-23 17:29:36 -07:00
2026-10-16 21:07:51 -07:00
2026-08-28 16:42:34 -07:00
2026-08-14 13:54:12 -07:00
2025-10-24 20:21:35 -07:00
2025-10-24 20:21:35 -07:00
2026-10-16 21:07:51 -07:00
2026-04-17 21:09:36 -07:00
2026-09-04 23:12:27 -07:00
2025-10-24 20:21:35 -07:00
2026-01-07 13:06:08 -08:00
2025-10-24 20:21:35 -07:00
2026-10-16 21:07:51 -07:00
2026-10-16 21:07:51 -07:00
2025-10-24 20:21:35 -07:00
2026-04-28 12:30:13 -07:00
2026-10-17 20:28:43 -07:00
2026-10-17 20:28:43 -07:00
2026-01-14 21:37:50 -08:00
2026-10-21 20:31:42 -07:00
2025-10-24 20:21:35 -07:00
2026-06-08 23:42:13 -07:00
2026-06-08 23:42:13 -07:00
2025-10-24 20:21:35 -07:00
2025-10-24 20:21:35 -07:00
2025-10-24 20:21:35 -07:00
2026-09-15 20:42:18 -07:00
2026-09-15 20:42:18 -07:00
2026-07-17 12:30:42 -07:00
2025-10-17 22:11:50 -07:00
2026-01-07 13:06:08 -08:00
2026-10-16 21:07:51 -07:00
2026-05-12 12:37:09 -07:00
2026-01-07 13:06:08 -08:00
2026-01-07 13:06:08 -08:00
2025-09-09 01:01:03 -07:00
2026-08-27 22:29:48 -07:00
2026-09-14 22:09:08 -07:00
2026-07-04 10:50:32 -07:00
2026-07-04 10:50:32 -07:00
2026-08-27 22:29:48 -07:00
2026-07-15 19:20:00 -07:00
2026-09-04 23:50:11 -07:00
2026-02-05 12:57:27 -08:00
2026-09-29 22:05:42 +08:00
2026-08-18 15:38:02 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-03-25 23:09:53 -07:00
2026-05-18 13:42:32 -07:00
2026-09-17 20:30:53 -07:00
2026-09-25 22:04:54 +08:00
2026-09-25 22:04:54 +08:00
2026-09-25 07:30:42 +08:00
2026-06-06 11:20:15 -07:00
2026-07-08 14:32:04 -07:00
2026-01-27 10:50:16 -08:00
2026-08-04 16:00:04 -07:00
2026-07-03 12:39:45 -07:00
2026-07-10 22:09:39 -07:00
2026-02-26 11:56:10 -08:00
2022-09-16 02:43:49 -07:00
2026-05-07 17:45:04 -07:00
2026-09-17 21:09:21 -07:00
2026-09-17 21:09:21 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-06-24 19:36:42 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-12 18:29:18 -07:00
2026-10-17 15:21:53 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-05-18 13:42:32 -07:00
2026-07-08 18:50:54 -07:00
2026-08-19 22:59:56 -07:00
2026-01-30 22:57:05 -08:00
2026-04-28 12:30:13 -07:00
2026-01-30 22:57:05 -08:00
2026-03-03 15:10:40 -08:00
2026-08-13 19:11:38 -07:00
2026-08-25 18:03:52 -07:00
2026-09-06 23:25:28 -07:00
2026-09-29 22:05:42 +08:00
2026-10-20 07:37:33 -07:00
2026-08-25 18:03:52 -07:00
2026-08-12 12:29:40 -07:00
2026-09-26 15:53:39 +08:00
2026-09-26 15:53:39 +08:00
2026-09-26 15:53:39 +08:00
2026-08-25 18:03:52 -07:00
2026-08-25 18:03:52 -07:00
2026-07-21 12:43:38 -07:00
2026-09-26 15:53:39 +08:00
2026-10-21 20:37:57 -07:00
2026-10-21 20:37:57 -07:00
2026-10-16 21:07:51 -07:00
2026-10-20 07:34:31 -07:00
2026-08-25 18:03:52 -07:00
2026-08-25 18:03:52 -07:00
2026-10-16 21:07:51 -07:00
2026-10-16 21:07:51 -07:00
2026-08-04 16:58:25 -07:00
2026-09-26 15:53:39 +08:00
2026-01-07 13:06:08 -08:00
2026-10-16 19:45:17 -07:00
2026-08-28 16:42:34 -07:00
2026-10-15 06:36:37 -07:00
2026-10-15 06:36:37 -07:00
2025-11-09 19:58:38 -08:00
2026-07-22 14:38:06 -07:00
2026-10-16 19:45:17 -07:00
2026-10-16 21:07:51 -07:00
2026-10-16 21:07:51 -07:00
2026-06-11 10:46:34 -07:00
2026-10-16 21:07:51 -07:00
2026-07-11 13:49:36 -07:00
2026-10-16 21:07:51 -07:00
2026-01-07 13:06:08 -08:00
2026-08-27 22:27:45 -07:00
2026-08-27 22:27:45 -07:00
2026-10-16 21:07:51 -07:00
2026-10-16 21:07:51 -07:00
2026-04-07 14:10:15 -07:00
2026-10-21 20:17:51 -07:00
2026-08-14 13:54:12 -07:00
2026-10-16 21:07:51 -07:00
2026-06-14 13:55:36 -07:00
2026-10-23 15:21:41 -07:00
2026-10-23 15:21:41 -07:00
2026-08-31 11:36:23 -07:00
2025-12-15 11:18:45 -08:00
2025-12-15 11:18:45 -08:00
2025-12-15 11:18:45 -08:00