Zhengchao An
46bb7e52b6
refactor(ecstore): extract read IO primitives to set_disk::core::io_primitives (backlog#820) ( #4285 )
...
* refactor(ecstore): extract read IO primitives to set_disk::core::io_primitives (backlog#820)
P5 step 1 of the SetDisks God-Object split (tracking backlog#815, issue
backlog#820). Relocate the module-level low-level read/erasure primitives out of
the 5,898-line set_disk/read.rs into a new core/io_primitives.rs module home:
- Metadata-fanout quorum machinery (MetadataQuorumAccumulator,
MetadataFanoutDiagnostics/Observation, MetadataEarlyStopDecision,
MetadataCacheLookup).
- Bitrot reader scheduling/creation (BitrotReaderSetup and the
create_bitrot_readers_* / schedule / fill helpers).
- Shard-cost classification, read-repair heal dedup, and codec-streaming
reader helpers.
Pure move + visibility adjustment, zero logic change. The moved block is
byte-identical to the pre-move read.rs source modulo the module header swap
(use super::* -> use super::super::*) and item visibility widening
(module-private / pub(super) -> pub(in crate::set_disk) so read.rs still
reaches them). read.rs's impl SetDisks body and imports are byte-identical to
before; mod.rs only gains 'mod core;' and repoints two
GetCodecStreamingReaderBuildOutcome references to the new path.
Verification:
- cargo check / clippy -D warnings -p rustfs-ecstore --all-targets: clean
- cargo test -p rustfs-ecstore --lib: 1840 passed, 0 failed
- normalized + token-stream diff of moved block vs original: identical modulo
visibility tokens and rustfmt signature re-wrapping
* fix(arch): allow io_primitives as READ_REPAIR_HEAL_CACHE owner (backlog#820)
The READ_REPAIR_HEAL_CACHE owner-path guard in
check_architecture_migration_rules.sh pinned the cache to
set_disk/read.rs. P5 step 1 relocated the cache (and its accessor
helpers) to set_disk/core/io_primitives.rs, so allow that path too.
Guard intent is unchanged: the cache stays behind the ECStore set-disk
read-owner helpers.
---------
Co-authored-by: houseme <housemecn@gmail.com >
2026-07-05 20:23:49 +08:00
Zhengchao An
0271d7aa2b
refactor(ecstore): narrow api facade exports ( #4270 )
...
* refactor(ecstore): narrow bucket api facade
* refactor(ecstore): narrow more api facades
* test(ecstore): stabilize multipart cleanup test
2026-07-05 06:06:39 +08:00
Zhengchao An
a6b3e4f5d6
refactor: use canonical Rust module paths ( #4269 )
2026-07-05 03:01:14 +08:00
Zhengchao An
d0792b87be
refactor(lifecycle): extract core rule contracts ( #4258 )
2026-07-04 20:05:56 +08:00
Zhengchao An
123552d32b
refactor(replication): own utility wire contracts ( #4255 )
2026-07-04 08:00:37 +08:00
Zhengchao An
3d4fb532e5
refactor(replication): own filemeta wire contracts ( #4254 )
2026-07-04 06:39:54 +08:00
Zhengchao An
125c228832
refactor(replication): own delete DTO contracts ( #4253 )
2026-07-04 04:00:27 +08:00
Zhengchao An
8a0617865b
refactor(replication): route app storage through ecstore ( #4251 )
2026-07-04 02:00:28 +08:00
Zhengchao An
4883d3eb50
refactor(replication): route runtime facades through ecstore ( #4248 )
2026-07-03 23:49:24 +08:00
Zhengchao An
7cc470cb08
refactor(replication): isolate ecstore boundary imports ( #4247 )
2026-07-03 23:18:27 +08:00
Zhengchao An
d19ee6c51c
refactor(replication): isolate storage api contracts ( #4244 )
2026-07-03 22:48:21 +08:00
Zhengchao An
24e88a2cf4
refactor(replication): isolate filemeta facade contracts ( #4243 )
2026-07-03 22:20:46 +08:00
Zhengchao An
6839e57c96
refactor(replication): isolate storage api contracts ( #4240 )
...
* refactor(replication): isolate storage api contracts
* docs(replication): record storage api contract boundary
2026-07-03 22:10:16 +08:00
Zhengchao An
6a81445a96
refactor(replication): isolate ecstore owner contracts ( #4239 )
2026-07-03 21:42:45 +08:00
Zhengchao An
769549dd2c
refactor(replication): isolate status contract boundaries ( #4236 )
2026-07-03 19:40:49 +08:00
Zhengchao An
7001e53546
refactor(replication): isolate stats and app contract boundaries ( #4235 )
...
* refactor(replication): isolate stats boundary adapters
* refactor(replication): route app contracts through storage boundary
2026-07-03 18:48:26 +08:00
Zhengchao An
aecac5c0ae
refactor(replication): isolate object decision contracts ( #4219 )
2026-07-03 11:36:14 +08:00
Zhengchao An
c260a2f20f
refactor(replication): isolate queue boundary adapters ( #4216 )
2026-07-03 09:43:31 +08:00
Zhengchao An
48b70f6e4f
refactor(replication): isolate resync boundary adapters ( #4215 )
2026-07-03 08:59:42 +08:00
Zhengchao An
31df11beb7
refactor(replication): isolate multipart and target adapters ( #4211 )
...
* refactor(replication): isolate multipart part planning
* refactor(replication): isolate target head adapters
2026-07-03 08:06:17 +08:00
Zhengchao An
008b7fcb6f
refactor(replication): move heal queue routing contracts ( #4176 )
...
* refactor(replication): move heal queue routing contracts
* fix(replication): satisfy feature clippy
2026-07-02 15:15:08 +08:00
Zhengchao An
98a0cca4a2
refactor(replication): move resync decision contracts ( #4173 )
...
* refactor(replication): move resync decision contracts
* fix(replication): avoid resync status clones
2026-07-02 14:13:05 +08:00
Zhengchao An
48f8443626
refactor(replication): move object compare contracts ( #4171 )
2026-07-02 13:19:47 +08:00
Zhengchao An
d666028cdc
refactor(replication): move resync classifiers into crate ( #4170 )
2026-07-02 12:57:59 +08:00
Zhengchao An
953a080b37
refactor(replication): move runtime sizing contracts ( #4169 )
2026-07-02 12:33:11 +08:00
Zhengchao An
473132f36b
refactor(replication): move stats contracts into crate ( #4168 )
2026-07-02 12:14:36 +08:00
Zhengchao An
8ce0f824cf
refactor(replication): move queue contracts into crate ( #4167 )
2026-07-02 11:40:49 +08:00
Zhengchao An
2cf856a51d
Move replication delete worker contract into crate ( #4166 )
...
refactor(replication): move delete worker contract into crate
2026-07-02 11:03:24 +08:00
Zhengchao An
df6ce41acd
Move replication operation contracts into crate ( #4165 )
...
refactor(replication): move operation contracts into crate
2026-07-02 10:48:02 +08:00
Zhengchao An
b57820a486
refactor(replication): move config contracts into crate ( #4162 )
2026-07-02 10:17:48 +08:00
Zhengchao An
18b79ccc2a
refactor(replication): route filemeta paths through crate ( #4161 )
2026-07-02 09:08:47 +08:00
Zhengchao An
2de38d3e5c
refactor(replication): move mrf wire format to replication crate ( #4157 )
...
* refactor(replication): move mrf wire format to replication crate
* refactor(replication): match re-exported error variants
2026-07-02 04:27:53 +08:00
Zhengchao An
8f01012071
fix(replication): address resync review follow-up ( #4155 )
...
* fix(replication): address resync crate review
* fix(replication): skip fixext fields correctly
* fix(replication): satisfy resync clippy
2026-07-02 04:00:28 +08:00
Zhengchao An
e80391f1aa
refactor(replication): extract resync contracts crate ( #4154 )
2026-07-02 01:30:01 +08:00
Zhengchao An
572a001f93
refactor(storage): hide replication runtime handles ( #4152 )
2026-07-02 00:40:42 +08:00
Zhengchao An
14016dbe8c
refactor(scanner): hide replication queue DTOs ( #4150 )
2026-07-02 00:17:03 +08:00
Zhengchao An
644a472e52
refactor(obs): hide replication stats handle ( #4149 )
2026-07-01 23:37:23 +08:00
Zhengchao An
b43655ccdd
refactor(app): hide replication object DTOs ( #4147 )
2026-07-01 23:02:00 +08:00
Zhengchao An
b94e7d514d
refactor(admin): hide replication resync DTOs ( #4146 )
2026-07-01 22:18:06 +08:00
Zhengchao An
22cbd41ee9
refactor(ecstore): add replication owner bridges ( #4141 )
...
* refactor(ecstore): add replication owner bridges
* fix(ecstore): tighten replication owner guards
2026-07-01 21:51:26 +08:00
Zhengchao An
c0dfc260ca
refactor(ecstore): add replication object bridge ( #4140 )
2026-07-01 19:24:20 +08:00
Zhengchao An
e5ab6ee8e4
refactor(ecstore): make replication facade explicit ( #4139 )
2026-07-01 18:54:05 +08:00
Zhengchao An
fc806679fb
refactor(ecstore): add replication work bridges ( #4137 )
2026-07-01 18:37:01 +08:00
Zhengchao An
e8326e76a6
fix(ecstore): harden replication runtime guard ( #4132 )
2026-07-01 17:14:38 +08:00
Zhengchao An
b0f491549a
refactor(ecstore): hide replication runtime types ( #4131 )
2026-07-01 15:39:02 +08:00
Zhengchao An
8fd532ebb7
refactor(ecstore): use local replication paths ( #4130 )
2026-07-01 15:08:26 +08:00
Zhengchao An
7cb42529fc
refactor(ecstore): route replication config access ( #4128 )
2026-07-01 09:30:25 +08:00
Zhengchao An
722c0805ce
refactor(ecstore): route replication errors ( #4127 )
2026-07-01 08:13:57 +08:00
Zhengchao An
50a3ed8bf3
refactor(ecstore): route replication event host ( #4126 )
2026-07-01 06:00:50 +08:00
Zhengchao An
e917f1f4be
refactor(ecstore): route replication filemeta contracts ( #4122 )
2026-07-01 01:01:01 +08:00