You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently, Decode allows decoding only the entire axis. It requires a 2D bytes slice as input and reconstructs nil shares via non-nil ones. However, we now need an additional use case where we want to reconstruct only particular nil shares and not all of them. This optimization is a part of lazy-extend effort and avoids unnecessary share reconstruction for Codec
Solutions
change the Decode slice share inputs to have three states: built, nil, and empty(zero-length). The new empty share slices will signal to Codec that they need to be reconstructed by the provided built, while nil shares will be left untouched.
Less explicit and needs to be properly documented
add a new DecodeSome method that takes the same shares slice as input + an additional slice of bools with the same line as the shares slice, following klauspost's ReconstructSome method.
Allocates additional slice
Two code paths for lazy and non-lazy decoding that can be single.
Problem
Currently,
Decode
allows decoding only the entire axis. It requires a 2D bytes slice as input and reconstructs nil shares via non-nil ones. However, we now need an additional use case where we want to reconstruct only particular nil shares and not all of them. This optimization is a part of lazy-extend effort and avoids unnecessary share reconstruction forCodec
Solutions
Decode
slice share inputs to have three states: built, nil, and empty(zero-length). The newempty
share slices will signal toCodec
that they need to be reconstructed by the providedbuilt
, whilenil
shares will be left untouched.DecodeSome
method that takes the same shares slice as input + an additional slice of bools with the same line as the shares slice, following klauspost's ReconstructSome method.Refs
Blocked on klauspost/reedsolomon#264
The text was updated successfully, but these errors were encountered: