-
Notifications
You must be signed in to change notification settings - Fork 38
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rework blobovnicza tree #2453
Comments
How about one layer of DBs? Can it be more optimal for storing small objects? No opened DBs caches and no complex logic at all but just one layer. |
Let's microbenchmark this using current structure:
The expectation is to get about the same number of operations per second, then a single DB case can be improved by removing the tree. |
BTW, speaking of names, blobovnicza is not really appropriate here as these are not BLOBs. They're more of a BSOB or BMOB. |
blobovnicza should be definitely replaced imo. I thought about new one a bit: "bolt with tiny objects" - boltin. |
|
IMO, naming should not depend on a certain DB name. |
|
Currently, storage node saves relatively small NeoFS objects in Blobovnicza tree component: group of BoltDB wrappers managed as a tree. This component has pretty complex data structure, code implementation and dubious performance results. Peapod is a new storage component introduced to replace Blobovnicza one as more simple and effective. It also bases on single BoltDB instance, but organizes batch writes in a specific way. In future, Peapod is going to be used as a storage of small objects by the BlobStor. Refs nspcc-dev#2453. Signed-off-by: Leonard Lyubich <[email protected]>
Add `cmd/blobovnicza-to-peapod` application which accepts YAML configuration file of the storage node and, for each configured shard, overtakes data from Blobovnicza tree to Peapod created in the parent directory. The tool is going to be used for phased and safe rejection of the Blobovnicza trees and the transition to Peapods. Refs nspcc-dev#2453. Signed-off-by: Leonard Lyubich <[email protected]>
Support `peapod` sub-storage type in BlobStor configuration. Refs nspcc-dev#2453. Signed-off-by: Leonard Lyubich <[email protected]>
Support `peapod` sub-storage type in BlobStor configuration. Refs nspcc-dev#2453. Signed-off-by: Leonard Lyubich <[email protected]>
Add `cmd/blobovnicza-to-peapod` application which accepts YAML configuration file of the storage node and, for each configured shard, overtakes data from Blobovnicza tree to Peapod created in the parent directory. The tool is going to be used for phased and safe rejection of the Blobovnicza trees and the transition to Peapods. Refs nspcc-dev#2453. Signed-off-by: Leonard Lyubich <[email protected]>
Support `peapod` sub-storage type in BlobStor configuration. Refs nspcc-dev#2453. Signed-off-by: Leonard Lyubich <[email protected]>
Support `peapod` sub-storage type in BlobStor configuration. Refs nspcc-dev#2453. Signed-off-by: Leonard Lyubich <[email protected]>
Support `peapod` sub-storage type in BlobStor configuration. Refs nspcc-dev#2453. Signed-off-by: Leonard Lyubich <[email protected]>
Currently, storage node saves relatively small NeoFS objects in Blobovnicza tree component: group of BoltDB wrappers managed as a tree. This component has pretty complex data structure, code implementation and dubious performance results. Peapod is a new storage component introduced to replace Blobovnicza one as more simple and effective. It also bases on single BoltDB instance, but organizes batch writes in a specific way. In future, Peapod is going to be used as a storage of small objects by the BlobStor. Refs nspcc-dev#2453. Signed-off-by: Leonard Lyubich <[email protected]>
Add `cmd/blobovnicza-to-peapod` application which accepts YAML configuration file of the storage node and, for each configured shard, overtakes data from Blobovnicza tree to Peapod created in the parent directory. The tool is going to be used for phased and safe rejection of the Blobovnicza trees and the transition to Peapods. Refs nspcc-dev#2453. Signed-off-by: Leonard Lyubich <[email protected]>
Support `peapod` sub-storage type in BlobStor configuration. Refs nspcc-dev#2453. Signed-off-by: Leonard Lyubich <[email protected]>
Add `cmd/blobovnicza-to-peapod` application which accepts YAML configuration file of the storage node and, for each configured shard, overtakes data from Blobovnicza tree to Peapod created in the parent directory. The tool is going to be used for phased and safe rejection of the Blobovnicza trees and the transition to Peapods. Refs nspcc-dev#2453. Signed-off-by: Leonard Lyubich <[email protected]>
Support `peapod` sub-storage type in BlobStor configuration. Refs nspcc-dev#2453. Signed-off-by: Leonard Lyubich <[email protected]>
Add `cmd/blobovnicza-to-peapod` application which accepts YAML configuration file of the storage node and, for each configured shard, overtakes data from Blobovnicza tree to Peapod created in the parent directory. The tool is going to be used for phased and safe rejection of the Blobovnicza trees and the transition to Peapods. Refs nspcc-dev#2453. Signed-off-by: Leonard Lyubich <[email protected]>
Support `peapod` sub-storage type in BlobStor configuration. Refs nspcc-dev#2453. Signed-off-by: Leonard Lyubich <[email protected]>
Fixed in #2462, but not closed. |
do we need anything else within this issue? |
It's done to me. We will drop bbcz eventually and we will optimize peapod additionally, we may simplify configurations, but all of those are different things. |
Is your feature request related to a problem? Please describe.
#2382, current bbcz tree is needlessly complex and fragile.
Describe the solution you'd like
One DB per shard is sufficient.
Describe alternatives you've considered
Keeping some number of them doesn't seem to be helpful.
Additional context
We need migration.
The text was updated successfully, but these errors were encountered: