84daaf59ef
``` ObjectIDSlice/0_elements/to_grpc_message-8 5.64ns ± 2% 5.89ns ± 4% +4.56% (p=0.000 n=10+10) ObjectIDSlice/0_elements/from_grpc_message-8 6.68ns ± 3% 6.81ns ± 8% ~ (p=0.143 n=10+10) ObjectIDSlice/0_elements/marshal-8 7.41ns ± 3% 7.91ns ± 4% +6.63% (p=0.000 n=10+10) ObjectIDSlice/1_elements/to_grpc_message-8 69.8ns ± 3% 80.5ns ± 7% +15.39% (p=0.000 n=10+10) ObjectIDSlice/1_elements/from_grpc_message-8 56.4ns ± 6% 34.7ns ± 5% -38.55% (p=0.000 n=10+9) ObjectIDSlice/1_elements/marshal-8 68.4ns ± 4% 67.6ns ± 4% ~ (p=0.404 n=10+10) ObjectIDSlice/50_elements/to_grpc_message-8 2.52µs ± 7% 2.56µs ± 4% ~ (p=0.315 n=10+9) ObjectIDSlice/50_elements/from_grpc_message-8 1.83µs ± 8% 0.44µs ± 1% -75.73% (p=0.000 n=10+8) ObjectIDSlice/50_elements/marshal-8 2.32µs ±17% 2.22µs ± 3% ~ (p=0.247 n=10+10) name old alloc/op new alloc/op delta ObjectIDSlice/0_elements/to_grpc_message-8 0.00B 0.00B ~ (all equal) ObjectIDSlice/0_elements/from_grpc_message-8 0.00B 0.00B ~ (all equal) ObjectIDSlice/0_elements/marshal-8 0.00B 0.00B ~ (all equal) ObjectIDSlice/1_elements/to_grpc_message-8 72.0B ± 0% 72.0B ± 0% ~ (all equal) ObjectIDSlice/1_elements/from_grpc_message-8 32.0B ± 0% 24.0B ± 0% -25.00% (p=0.000 n=10+10) ObjectIDSlice/1_elements/marshal-8 48.0B ± 0% 48.0B ± 0% ~ (all equal) ObjectIDSlice/50_elements/to_grpc_message-8 3.62kB ± 0% 3.62kB ± 0% ~ (all equal) ObjectIDSlice/50_elements/from_grpc_message-8 1.62kB ± 0% 1.28kB ± 0% -20.79% (p=0.000 n=10+10) ObjectIDSlice/50_elements/marshal-8 2.05kB ± 0% 2.05kB ± 0% ~ (all equal) name old allocs/op new allocs/op delta ObjectIDSlice/0_elements/to_grpc_message-8 0.00 0.00 ~ (all equal) ObjectIDSlice/0_elements/from_grpc_message-8 0.00 0.00 ~ (all equal) ObjectIDSlice/0_elements/marshal-8 0.00 0.00 ~ (all equal) ObjectIDSlice/1_elements/to_grpc_message-8 2.00 ± 0% 2.00 ± 0% ~ (all equal) ObjectIDSlice/1_elements/from_grpc_message-8 2.00 ± 0% 1.00 ± 0% -50.00% (p=0.000 n=10+10) ObjectIDSlice/1_elements/marshal-8 1.00 ± 0% 1.00 ± 0% ~ (all equal) ObjectIDSlice/50_elements/to_grpc_message-8 51.0 ± 0% 51.0 ± 0% ~ (all equal) ObjectIDSlice/50_elements/from_grpc_message-8 51.0 ± 0% 1.0 ± 0% -98.04% (p=0.000 n=10+10) ObjectIDSlice/50_elements/marshal-8 1.00 ± 0% 1.00 ± 0% ~ (all equal) ``` Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
271 lines
5.7 KiB
Go
271 lines
5.7 KiB
Go
package audit
|
|
|
|
import (
|
|
"github.com/nspcc-dev/neofs-api-go/v2/refs"
|
|
)
|
|
|
|
// DataAuditResult is a unified structure of
|
|
// DataAuditResult message from proto definition.
|
|
type DataAuditResult struct {
|
|
version *refs.Version
|
|
|
|
auditEpoch uint64
|
|
|
|
requests, retries uint32
|
|
|
|
hit, miss, fail uint32
|
|
|
|
cid *refs.ContainerID
|
|
|
|
pubKey []byte
|
|
|
|
passSG, failSG []refs.ObjectID
|
|
|
|
failNodes, passNodes [][]byte
|
|
|
|
complete bool
|
|
}
|
|
|
|
// GetVersion returns version of Data Audit structure.
|
|
func (a *DataAuditResult) GetVersion() *refs.Version {
|
|
if a != nil {
|
|
return a.version
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
// SetVersion sets version of Data Audit structure.
|
|
func (a *DataAuditResult) SetVersion(v *refs.Version) {
|
|
if a != nil {
|
|
a.version = v
|
|
}
|
|
}
|
|
|
|
// GetAuditEpoch returns epoch number when the Data Audit was conducted.
|
|
func (a *DataAuditResult) GetAuditEpoch() uint64 {
|
|
if a != nil {
|
|
return a.auditEpoch
|
|
}
|
|
|
|
return 0
|
|
}
|
|
|
|
// SetAuditEpoch sets epoch number when the Data Audit was conducted.
|
|
func (a *DataAuditResult) SetAuditEpoch(v uint64) {
|
|
if a != nil {
|
|
a.auditEpoch = v
|
|
}
|
|
}
|
|
|
|
// GetContainerID returns container under audit.
|
|
func (a *DataAuditResult) GetContainerID() *refs.ContainerID {
|
|
if a != nil {
|
|
return a.cid
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
// SetContainerID sets container under audit.
|
|
func (a *DataAuditResult) SetContainerID(v *refs.ContainerID) {
|
|
if a != nil {
|
|
a.cid = v
|
|
}
|
|
}
|
|
|
|
// GetPublicKey returns public key of the auditing InnerRing node in a binary format.
|
|
func (a *DataAuditResult) GetPublicKey() []byte {
|
|
if a != nil {
|
|
return a.pubKey
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
// SetPublicKey sets public key of the auditing InnerRing node in a binary format.
|
|
func (a *DataAuditResult) SetPublicKey(v []byte) {
|
|
if a != nil {
|
|
a.pubKey = v
|
|
}
|
|
}
|
|
|
|
// GetPassSG returns list of Storage Groups that passed audit PoR stage.
|
|
func (a *DataAuditResult) GetPassSG() []refs.ObjectID {
|
|
if a != nil {
|
|
return a.passSG
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
// SetPassSG sets list of Storage Groups that passed audit PoR stage.
|
|
func (a *DataAuditResult) SetPassSG(v []refs.ObjectID) {
|
|
if a != nil {
|
|
a.passSG = v
|
|
}
|
|
}
|
|
|
|
// GetFailSG returns list of Storage Groups that failed audit PoR stage.
|
|
func (a *DataAuditResult) GetFailSG() []refs.ObjectID {
|
|
if a != nil {
|
|
return a.failSG
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
// SetFailSG sets list of Storage Groups that failed audit PoR stage.
|
|
func (a *DataAuditResult) SetFailSG(v []refs.ObjectID) {
|
|
if a != nil {
|
|
a.failSG = v
|
|
}
|
|
}
|
|
|
|
// GetRequests returns number of requests made by PoR audit check to get
|
|
// all headers of the objects inside storage groups.
|
|
func (a *DataAuditResult) GetRequests() uint32 {
|
|
if a != nil {
|
|
return a.requests
|
|
}
|
|
|
|
return 0
|
|
}
|
|
|
|
// SetRequests sets number of requests made by PoR audit check to get
|
|
// all headers of the objects inside storage groups.
|
|
func (a *DataAuditResult) SetRequests(v uint32) {
|
|
if a != nil {
|
|
a.requests = v
|
|
}
|
|
}
|
|
|
|
// GetRetries returns number of retries made by PoR audit check to get
|
|
// all headers of the objects inside storage groups.
|
|
func (a *DataAuditResult) GetRetries() uint32 {
|
|
if a != nil {
|
|
return a.retries
|
|
}
|
|
|
|
return 0
|
|
}
|
|
|
|
// SetRetries sets number of retries made by PoR audit check to get
|
|
// all headers of the objects inside storage groups.
|
|
func (a *DataAuditResult) SetRetries(v uint32) {
|
|
if a != nil {
|
|
a.retries = v
|
|
}
|
|
}
|
|
|
|
// GetHit returns number of sampled objects under audit placed
|
|
// in an optimal way according to the containers placement policy
|
|
// when checking PoP.
|
|
func (a *DataAuditResult) GetHit() uint32 {
|
|
if a != nil {
|
|
return a.hit
|
|
}
|
|
|
|
return 0
|
|
}
|
|
|
|
// SetHit sets number of sampled objects under audit placed
|
|
// in an optimal way according to the containers placement policy
|
|
// when checking PoP.
|
|
func (a *DataAuditResult) SetHit(v uint32) {
|
|
if a != nil {
|
|
a.hit = v
|
|
}
|
|
}
|
|
|
|
// GetMiss returns number of sampled objects under audit placed
|
|
// in suboptimal way according to the containers placement policy,
|
|
// but still at a satisfactory level when checking PoP.
|
|
func (a *DataAuditResult) GetMiss() uint32 {
|
|
if a != nil {
|
|
return a.miss
|
|
}
|
|
|
|
return 0
|
|
}
|
|
|
|
// SetMiss sets number of sampled objects under audit placed
|
|
// in suboptimal way according to the containers placement policy,
|
|
// but still at a satisfactory level when checking PoP.
|
|
func (a *DataAuditResult) SetMiss(v uint32) {
|
|
if a != nil {
|
|
a.miss = v
|
|
}
|
|
}
|
|
|
|
// GetFail returns number of sampled objects under audit stored
|
|
// in a way not confirming placement policy or not found at all
|
|
// when checking PoP.
|
|
func (a *DataAuditResult) GetFail() uint32 {
|
|
if a != nil {
|
|
return a.fail
|
|
}
|
|
|
|
return 0
|
|
}
|
|
|
|
// SetFail sets number of sampled objects under audit stored
|
|
// in a way not confirming placement policy or not found at all
|
|
// when checking PoP.
|
|
func (a *DataAuditResult) SetFail(v uint32) {
|
|
if a != nil {
|
|
a.fail = v
|
|
}
|
|
}
|
|
|
|
// GetPassNodes returns list of storage node public keys that
|
|
// passed at least one PDP.
|
|
func (a *DataAuditResult) GetPassNodes() [][]byte {
|
|
if a != nil {
|
|
return a.passNodes
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
// SetPassNodes sets list of storage node public keys that
|
|
// passed at least one PDP.
|
|
func (a *DataAuditResult) SetPassNodes(v [][]byte) {
|
|
if a != nil {
|
|
a.passNodes = v
|
|
}
|
|
}
|
|
|
|
// GetFailNodes returns list of storage node public keys that
|
|
// failed at least one PDP.
|
|
func (a *DataAuditResult) GetFailNodes() [][]byte {
|
|
if a != nil {
|
|
return a.failNodes
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
// SetFailNodes sets list of storage node public keys that
|
|
// failed at least one PDP.
|
|
func (a *DataAuditResult) SetFailNodes(v [][]byte) {
|
|
if a != nil {
|
|
a.failNodes = v
|
|
}
|
|
}
|
|
|
|
// GetComplete returns boolean completion statement of audit result.
|
|
func (a *DataAuditResult) GetComplete() bool {
|
|
if a != nil {
|
|
return a.complete
|
|
}
|
|
|
|
return false // bool default
|
|
}
|
|
|
|
// SetComplete sets boolean completion statement of audit result.
|
|
func (a *DataAuditResult) SetComplete(v bool) {
|
|
if a != nil {
|
|
a.complete = v
|
|
}
|
|
}
|