Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
komarevtsev-d opened this issue Jan 15, 2025 · 0 comments
Open

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

komarevtsev-d opened this issue Jan 15, 2025 · 0 comments
Assignees
Labels
blockstore Add this label to run only cloud/blockstore build and tests on PR bug Something isn't working

Comments

@komarevtsev-d
Copy link
Collaborator

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.

@komarevtsev-d komarevtsev-d added blockstore Add this label to run only cloud/blockstore build and tests on PR bug Something isn't working labels Jan 15, 2025
@komarevtsev-d komarevtsev-d self-assigned this Jan 15, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
blockstore Add this label to run only cloud/blockstore build and tests on PR bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant