Skip to content

[NBS] Split read requests in the mirror partition #2854

Open
@komarevtsev-d

Description

@komarevtsev-d

Imagine mirror-3 disk with this config:

┌───────────────────────────────────────────────────────┐
│ uuid-1 (Fresh)   │ uuid-3           │ uuid-5 (Fresh)  │
│──────────────────┼──────────────────┼─────────────────│
│ uuid-2           │ uuid-4 (Fresh)   │ uuid-6 (Fresh)  │
└───────────────────────────────────────────────────────┘

When the user attempts to read a range across two devices, the mirror partition will reply with E_INVALID_STATE because this range is "fresh" for all replicas.
As a solution, we should detect these situations in the mirror partition, split such requests into two parts and glue the result back as one response.

Metadata

Metadata

Assignees

Labels

blockstoreAdd this label to run only cloud/blockstore build and tests on PRbugSomething isn't working

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions