Improve registry performance #136
Labels
No labels
P0
P1
P2
P3
good first issue
Infrastructure
blocked
bug
config
discussion
documentation
duplicate
enhancement
go
help wanted
internal
invalid
kludge
observability
perfomance
question
refactoring
wontfix
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: TrueCloudLab/xk6-frostfs#136
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
There is an output example:
Registry save latency is
iteration_duration(p90) - frostfs_obj_put_duration(p90) = 331 - 46 = 285 ms
. Looks that registry performance is around 10 time worse than storage.Task to research and implement using of other storage engine for registry (badger, bitcask etc).
We should first try having
Batch
instead ofUpdate
and async persist.It is a lot cheaper and can provide substantial improvements.
Using asynchronous persist also has its own problems: when the async queue is full (this is quite realistic on long-term tests), the write speed will decrease, since you can't just drop objects. This will lead to side effects of the test results, which will be difficult to interpret correctly.
Badger won't solve our problems either, it is still DB operation whose duration is taken into account in the metrics. Also, the queue doesn't need to be bounded (by a static size, may be bounded by ram)
I am not opposed to the badger idea, I just think there are less expensive things to try first.
And there are possible problems with badger too (currently registry is a single file which may be easily copied by some existing pipelines, they will break).
RAM is bounded too.
Badger won't solve our problems either
- agree. The main idea is to improve registry saving performance, but make registry saving latency as much constant as possible.@fyrchik Should task be closed?