Need to clarify relation between shard modes and their component modes #1076

Closed
opened 2024-04-05 12:24:44 +00:00 by anikeev-yadro · 5 comments
Member

Now not all times understandable relations between shard mode and thier componetnt mode in metrics.
As example when we turn the shard to degraded-read-only more blobstore and blobovnicza_tree have a different read-only mode

Describe the solution you'd like

Need to clarify relation between sharad modes and their component modes.
As example we need a relations table

---------------------------------------------------------------------------------------------------------------------------------
Shard mode	         | metabase mode |	blobstor mode |	writecache mode	| pilorama mode	| blobovnicza_tree mode |
---------------------------------------------------------------------------------------------------------------------------------
read-write				|                             |	                          |                             |                            |                                       |
read-only				|	                          |	                          |                             |                            |                                       |                            
degraded				|                             |	                          |                             |                            |                                       |	
degraded-read-only|					          |	                          |                             |                            |                                       |
disabled					|                             |	                          |                             |                            |                                       |
---------------------------------------------------------------------------------------------------------------------------------
## Is your feature request related to a problem? Please describe. Now not all times understandable relations between shard mode and thier componetnt mode in metrics. As example when we turn the shard to `degraded-read-only` more `blobstore` and `blobovnicza_tree` have a different `read-only` mode ## Describe the solution you'd like Need to clarify relation between sharad modes and their component modes. As example we need a relations table ``` --------------------------------------------------------------------------------------------------------------------------------- Shard mode | metabase mode | blobstor mode | writecache mode | pilorama mode | blobovnicza_tree mode | --------------------------------------------------------------------------------------------------------------------------------- read-write | | | | | | read-only | | | | | | degraded | | | | | | degraded-read-only| | | | | | disabled | | | | | | --------------------------------------------------------------------------------------------------------------------------------- ```
anikeev-yadro added the
triage
label 2024-04-05 12:24:44 +00:00
fyrchik added this to the v0.39.0 milestone 2024-04-05 12:26:31 +00:00
fyrchik added
documentation
frostfs-node
and removed
triage
labels 2024-04-05 12:26:49 +00:00
Owner

blobovnicza tree is one level below blobstor (so it really has no notion of mode internally, just readonly flag)

Everything should be understandable, so at least documentation is required.

By suggestion from @dstepanov-yadro we may set modes to read-write/read-only/closed for everything, while the "degraded-*" ones are used only on the shard level.

blobovnicza tree is one level below blobstor (so it really has no notion of mode internally, just readonly flag) Everything should be understandable, so at least documentation is required. By suggestion from @dstepanov-yadro we may set modes to read-write/read-only/closed for everything, while the "degraded-*" ones are used only on the shard level.
fyrchik changed title from Need to clarify relation between sharad modes and their component modes to Need to clarify relation between shard modes and their component modes 2024-04-10 08:07:22 +00:00
achuprov was assigned by fyrchik 2024-04-24 07:31:39 +00:00
Owner

I think having a different set of modes for components is ok.
So for shard we retain current set of modes.
For components we should have READ_WRITE, READ_ONLY, CLOSED.

Whether DEGRADED* modes should be present inside the code (mode field) is to be discussed -- currently shard just passes the mode through and each component knows what to do. It may be better to have a restricted set of modes for components too (though and error may be misleading -- "metabase is closed" without indication of degraded shard mode).

Thoughts? @TrueCloudLab/storage-core-committers @TrueCloudLab/storage-core-developers

I think having a different set of modes for components is ok. So for shard we retain current set of modes. For components we should have READ_WRITE, READ_ONLY, CLOSED. Whether DEGRADED* modes should be present inside the code (`mode` field) is to be discussed -- currently shard just passes the mode through and each component knows what to do. It may be better to have a restricted set of modes for components too (though and error may be misleading -- "metabase is closed" without indication of degraded shard mode). Thoughts? @TrueCloudLab/storage-core-committers @TrueCloudLab/storage-core-developers

My suggestion is still set modes to read-write/read-only/closed for everything, while the "degraded-*" ones are used only on the shard level. I don't understand what does it mean "degraded-read-only for metabase".

My suggestion is still `set modes to read-write/read-only/closed for everything, while the "degraded-*" ones are used only on the shard level.` I don't understand what does it mean "`degraded-read-only` for metabase".
Member

As a solution, I propose dividing Mode into two distinct types: StorageMode and ShardMode. StorageMode should be limited to the values READ-WRITE, READ. ShardMode would encompass all the values of StorageMode and also include DEGRADED_READ_ONLY and DEGRADED_READ. The handling of DEGRADED should be managed at the shard level.

As a solution, I propose dividing Mode into two distinct types: `StorageMode` and `ShardMode`. `StorageMode` should be limited to the values `READ-WRITE`, `READ`. `ShardMode `would encompass all the values of `StorageMode` and also include `DEGRADED_READ_ONLY` and `DEGRADED_READ`. The handling of `DEGRADED` should be managed at the shard level.
Owner
  1. What about CLOSED aka DISABLED?
  2. You say encompass, does this mean they will be binary compatible (i.e. I can mask shard mode with 0x3 to get storage mode)?
1. What about `CLOSED` aka `DISABLED`? 2. You say `encompass`, does this mean they will be binary compatible (i.e. I can _mask_ shard mode with `0x3` to get storage mode)?
fyrchik modified the milestone from v0.39.0 to v0.40.0 2024-05-14 14:05:10 +00:00
fyrchik modified the milestone from v0.40.0 to v0.41.0 2024-06-01 09:19:44 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
4 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: TrueCloudLab/frostfs-node#1076
No description provided.