forked from TrueCloudLab/frostfs-node
[#220] blobstor: Support zero shallow depth of blobovnicza tree
There is a need to support single blobovnicza in blobovnicza tree. This can be achieved with a width of 1, and a depth of 0 or 1. With depth = 1 one redundant directory is created, inside which there is a blobovnicza. If the depth is zero, the blobobnivza will be in the root path. Fix negative capacity in iterateDeepest method with zero depth. Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
This commit is contained in:
parent
8bff073061
commit
34a259d5c0
1 changed files with 7 additions and 2 deletions
|
@ -463,10 +463,15 @@ func (b *blobovniczas) iterateSortedLeaves(addr *objectSDK.Address, f func(strin
|
||||||
|
|
||||||
// iterator over directories with blobovniczas sorted by weight.
|
// iterator over directories with blobovniczas sorted by weight.
|
||||||
func (b *blobovniczas) iterateDeepest(addr *objectSDK.Address, f func(string) (bool, error)) error {
|
func (b *blobovniczas) iterateDeepest(addr *objectSDK.Address, f func(string) (bool, error)) error {
|
||||||
|
depth := b.blzShallowDepth
|
||||||
|
if depth > 0 {
|
||||||
|
depth--
|
||||||
|
}
|
||||||
|
|
||||||
_, err := b.iterateSorted(
|
_, err := b.iterateSorted(
|
||||||
addr,
|
addr,
|
||||||
make([]string, 0, b.blzShallowDepth-1),
|
make([]string, 0, depth),
|
||||||
b.blzShallowDepth-1,
|
depth,
|
||||||
func(p []string) (bool, error) { return f(path.Join(p...)) },
|
func(p []string) (bool, error) { return f(path.Join(p...)) },
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue