Logical sharding for metabase #979

Open
opened 2024-02-13 08:02:27 +00:00 by dstepanov-yadro · 0 comments

With a metabase size of more than 10-12 GB, insert and update performance begins to degrade significantly:
image
image

Describe the solution you'd like

A similar problem for the blobovnicza was solved by increasing the number of database files and reducing their size. Now blobovnicza performance looks not so terrible:
image

Perhaps a similar approach will help solve the problem of degradation of metabase performance.
I propose to divide the metabase into several files by analogy with the blobovnicza.

Describe alternatives you've considered

Try to use badger for metabase:

  • badger is SSD optimized
  • badger uses WiskKey, so badger-metabase will be already logically sharded

But badger's iteration implemented on iteration over all SST and merge sort, so need to check how GC will work. Also badger returns error in case of update conflict, which should be retried, this can lead badger metabase implementation to single threaded like bbolt.

## Is your feature request related to a problem? Please describe. With a metabase size of more than 10-12 GB, insert and update performance begins to degrade significantly: ![image](/attachments/8c2ddb1b-9fd3-4f74-a2b1-642efc769d39) ![image](/attachments/f576e52d-5135-4e4c-b894-9678255e8143) ## Describe the solution you'd like A similar problem for the blobovnicza was solved by increasing the number of database files and reducing their size. Now blobovnicza performance looks not so terrible: ![image](/attachments/cd842780-d74a-41b1-b618-de8dbe57ac8e) Perhaps a similar approach will help solve the problem of degradation of metabase performance. I propose to divide the metabase into several files by analogy with the blobovnicza. ## Describe alternatives you've considered Try to use badger for metabase: - badger is SSD optimized - badger uses WiskKey, so badger-metabase will be already logically sharded But badger's iteration implemented on iteration over all SST and merge sort, so need to check how GC will work. Also badger returns error in case of update conflict, which should be retried, this can lead badger metabase implementation to single threaded like bbolt.
dstepanov-yadro added the
enhancement
frostfs-node
triage
badger
perfomance
labels 2024-02-13 08:02:27 +00:00
fyrchik added this to the vNext milestone 2024-05-14 14:23:09 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
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#979
No description provided.