neofs-node
neofs-node copied to clipboard
Combined writing for FSTree
We can think of replacing peapod with it.
Notice that this scheme also helps with #1951 and #2107 (!) if we're to store meta separately.
So what is the peapod's fate?
TBD
Codecov Report
Attention: Patch coverage is 54.26357%
with 118 lines
in your changes missing coverage. Please review.
Project coverage is 23.62%. Comparing base (
7baa16c
) to head (1b40ec4
). Report is 13 commits behind head on master.
Additional details and impacted files
@@ Coverage Diff @@
## master #2814 +/- ##
==========================================
+ Coverage 23.51% 23.62% +0.11%
==========================================
Files 776 775 -1
Lines 45325 45513 +188
==========================================
+ Hits 10656 10754 +98
- Misses 33822 33907 +85
- Partials 847 852 +5
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
So what is the peapod's fate?
TBD
I am asking cause we have to rework some things if there is no "small" storage anymore.
Have you considered GET bench? Isn't it slower to read a combined object for only a part of it if there are a few parallel GET requests? Like reading 8MB for a 4KB object 128 times can be slower than reading 4KB 128 times from a peadod.
Isn't it slower to read
For sure. But I doubt it's noticeable. I'll try to bench it.
Ironically, it doesn't have any conflicts with current master even without a rebase. So my proposal is to merge this as is and then deal with peapod. @cthulhu-rider, @carpawell?
Have you considered GET bench? Isn't it slower to read a combined object for only a part of it if there are a few parallel GET requests? Like reading 8MB for a 4KB object 128 times can be slower than reading 4KB 128 times from a peadod.
@roman-khimov, my questions are the same. I am afraid there (at least this PR) is not enough info about if it is really a better one than we had before, from any perspective (i consider it a worse solution for GETs). If there is a single slower thing in results, we should discuss it and find out (at least write it somewhere) what is better for us.
But you've seen the test results. GETs are the same, PUTs are ~15% better for the target cases. GETs do incur some additional overhead, but it's totally acceptable, there is no real difference in practice.
Rebased, otherwise lens failed to build after the merge (even though the merge itself is clean).
There is potential for improvement still left, oid-offset mapping can be stored at the end of file minimizing seeks.