Optimize tree service GetSubTree latency #957
No reviewers
Labels
No labels
P0
P1
P2
P3
badger
frostfs-adm
frostfs-cli
frostfs-ir
frostfs-lens
frostfs-node
good first issue
triage
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
4 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: TrueCloudLab/frostfs-node#957
Loading…
Reference in a new issue
No description provided.
Delete branch "fyrchik/frostfs-node:optimize-list-latency"
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?
Background:
This PR picks up a low-hanging fruit.
From master to this PR:
TBD:
Slice
if the number of items is small.0b0940042d
toddbc95b859
@alexvanin An important problem is to pick up suitable implementation. If we knew the number of items to return in advance (first page?), more optimizations could've been possible. Does AWS CLI provides this info (so s3 can send it to us) or is all paging done on client?
Without parent link:
ddbc95b859
to2fbdb0d281
2fbdb0d281
to63a86d6e00
63a86d6e00
to8cbf9a0b44
WIP: Optimize tree service GetSubTree latencyto Optimize tree service GetSubTree latency@ -0,0 +8,4 @@
type MinPairingHeap struct {
head *phNode
size int
Looks like size is redundant.
@ -0,0 +22,4 @@
return &MinPairingHeap{}
}
func (m *MinPairingHeap) Insert(infos ...pilorama.NodeInfo) {
[Optionally]
Sorry, it seems I have gone far away 😄
Wouldn't you like to consider generic solution?
For check
I have rejected it, because it looks complicated (hello, callbacks) and I don't see any other usecases.
Not to mention that even slight performance degradation because of genericness can become crucial for 4M elements listing.
Nice!
Not worth the time now, there was another optimization in #1059 and we should have tree service replacement soon.
Pull request closed