forked from TrueCloudLab/frostfs-api-go
[#376] refs: Replace []*ObjectID with []ObjectID
``` 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>
This commit is contained in:
parent
529d636ede
commit
84daaf59ef
9 changed files with 32 additions and 40 deletions
|
@ -19,7 +19,7 @@ type DataAuditResult struct {
|
|||
|
||||
pubKey []byte
|
||||
|
||||
passSG, failSG []*refs.ObjectID
|
||||
passSG, failSG []refs.ObjectID
|
||||
|
||||
failNodes, passNodes [][]byte
|
||||
|
||||
|
@ -91,7 +91,7 @@ func (a *DataAuditResult) SetPublicKey(v []byte) {
|
|||
}
|
||||
|
||||
// GetPassSG returns list of Storage Groups that passed audit PoR stage.
|
||||
func (a *DataAuditResult) GetPassSG() []*refs.ObjectID {
|
||||
func (a *DataAuditResult) GetPassSG() []refs.ObjectID {
|
||||
if a != nil {
|
||||
return a.passSG
|
||||
}
|
||||
|
@ -100,14 +100,14 @@ func (a *DataAuditResult) GetPassSG() []*refs.ObjectID {
|
|||
}
|
||||
|
||||
// SetPassSG sets list of Storage Groups that passed audit PoR stage.
|
||||
func (a *DataAuditResult) SetPassSG(v []*refs.ObjectID) {
|
||||
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 {
|
||||
func (a *DataAuditResult) GetFailSG() []refs.ObjectID {
|
||||
if a != nil {
|
||||
return a.failSG
|
||||
}
|
||||
|
@ -116,7 +116,7 @@ func (a *DataAuditResult) GetFailSG() []*refs.ObjectID {
|
|||
}
|
||||
|
||||
// SetFailSG sets list of Storage Groups that failed audit PoR stage.
|
||||
func (a *DataAuditResult) SetFailSG(v []*refs.ObjectID) {
|
||||
func (a *DataAuditResult) SetFailSG(v []refs.ObjectID) {
|
||||
if a != nil {
|
||||
a.failSG = v
|
||||
}
|
||||
|
|
|
@ -34,7 +34,7 @@ type SplitHeader struct {
|
|||
|
||||
parHdr *Header
|
||||
|
||||
children []*refs.ObjectID
|
||||
children []refs.ObjectID
|
||||
|
||||
splitID []byte
|
||||
}
|
||||
|
@ -228,7 +228,7 @@ type SearchRequest struct {
|
|||
}
|
||||
|
||||
type SearchResponseBody struct {
|
||||
idList []*refs.ObjectID
|
||||
idList []refs.ObjectID
|
||||
}
|
||||
|
||||
type SearchResponse struct {
|
||||
|
@ -500,7 +500,7 @@ func (h *SplitHeader) SetParentHeader(v *Header) {
|
|||
}
|
||||
}
|
||||
|
||||
func (h *SplitHeader) GetChildren() []*refs.ObjectID {
|
||||
func (h *SplitHeader) GetChildren() []refs.ObjectID {
|
||||
if h != nil {
|
||||
return h.children
|
||||
}
|
||||
|
@ -508,7 +508,7 @@ func (h *SplitHeader) GetChildren() []*refs.ObjectID {
|
|||
return nil
|
||||
}
|
||||
|
||||
func (h *SplitHeader) SetChildren(v []*refs.ObjectID) {
|
||||
func (h *SplitHeader) SetChildren(v []refs.ObjectID) {
|
||||
if h != nil {
|
||||
h.children = v
|
||||
}
|
||||
|
@ -1316,7 +1316,7 @@ func (r *SearchRequest) SetBody(v *SearchRequestBody) {
|
|||
}
|
||||
}
|
||||
|
||||
func (r *SearchResponseBody) GetIDList() []*refs.ObjectID {
|
||||
func (r *SearchResponseBody) GetIDList() []refs.ObjectID {
|
||||
if r != nil {
|
||||
return r.idList
|
||||
}
|
||||
|
@ -1324,7 +1324,7 @@ func (r *SearchResponseBody) GetIDList() []*refs.ObjectID {
|
|||
return nil
|
||||
}
|
||||
|
||||
func (r *SearchResponseBody) SetIDList(v []*refs.ObjectID) {
|
||||
func (r *SearchResponseBody) SetIDList(v []refs.ObjectID) {
|
||||
if r != nil {
|
||||
r.idList = v
|
||||
}
|
||||
|
|
|
@ -15,9 +15,8 @@ func BenchmarkObjectIDSlice(b *testing.B) {
|
|||
}
|
||||
|
||||
func benchmarkObjectIDSlice(b *testing.B, size int) {
|
||||
ids := make([]*ObjectID, size)
|
||||
ids := make([]ObjectID, size)
|
||||
for i := range ids {
|
||||
ids[i] = new(ObjectID)
|
||||
ids[i].val = make([]byte, 32)
|
||||
rand.Read(ids[i].val)
|
||||
}
|
||||
|
|
|
@ -110,7 +110,7 @@ func (o *ObjectID) FromGRPCMessage(m grpc.Message) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func ObjectIDListToGRPCMessage(ids []*ObjectID) (res []*refs.ObjectID) {
|
||||
func ObjectIDListToGRPCMessage(ids []ObjectID) (res []*refs.ObjectID) {
|
||||
if ids != nil {
|
||||
res = make([]*refs.ObjectID, 0, len(ids))
|
||||
|
||||
|
@ -122,23 +122,17 @@ func ObjectIDListToGRPCMessage(ids []*ObjectID) (res []*refs.ObjectID) {
|
|||
return
|
||||
}
|
||||
|
||||
func ObjectIDListFromGRPCMessage(idsV2 []*refs.ObjectID) (res []*ObjectID, err error) {
|
||||
func ObjectIDListFromGRPCMessage(idsV2 []*refs.ObjectID) (res []ObjectID, err error) {
|
||||
if idsV2 != nil {
|
||||
res = make([]*ObjectID, 0, len(idsV2))
|
||||
res = make([]ObjectID, len(idsV2))
|
||||
|
||||
for i := range idsV2 {
|
||||
var id *ObjectID
|
||||
|
||||
if idsV2[i] != nil {
|
||||
id = new(ObjectID)
|
||||
|
||||
err = id.FromGRPCMessage(idsV2[i])
|
||||
err = res[i].FromGRPCMessage(idsV2[i])
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
res = append(res, id)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -104,9 +104,9 @@ func (o *ObjectID) StableMarshal(buf []byte) ([]byte, error) {
|
|||
|
||||
// ObjectIDNestedListSize returns byte length of nested
|
||||
// repeated ObjectID field with fNum number.
|
||||
func ObjectIDNestedListSize(fNum int64, ids []*ObjectID) (sz int) {
|
||||
func ObjectIDNestedListSize(fNum int64, ids []ObjectID) (sz int) {
|
||||
for i := range ids {
|
||||
sz += proto.NestedStructureSize(fNum, ids[i])
|
||||
sz += proto.NestedStructureSize(fNum, &ids[i])
|
||||
}
|
||||
|
||||
return
|
||||
|
@ -122,11 +122,11 @@ func (o *ObjectID) StableSize() int {
|
|||
|
||||
// ObjectIDNestedListMarshal writes protobuf repeated ObjectID field
|
||||
// with fNum number to buf.
|
||||
func ObjectIDNestedListMarshal(fNum int64, buf []byte, ids []*ObjectID) (off int, err error) {
|
||||
func ObjectIDNestedListMarshal(fNum int64, buf []byte, ids []ObjectID) (off int, err error) {
|
||||
for i := range ids {
|
||||
var n int
|
||||
|
||||
n, err = proto.NestedStructureMarshal(fNum, buf[off:], ids[i])
|
||||
n, err = proto.NestedStructureMarshal(fNum, buf[off:], &ids[i])
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
|
|
@ -48,13 +48,13 @@ func GenerateObjectID(empty bool) *refs.ObjectID {
|
|||
return m
|
||||
}
|
||||
|
||||
func GenerateObjectIDs(empty bool) []*refs.ObjectID {
|
||||
var ids []*refs.ObjectID
|
||||
func GenerateObjectIDs(empty bool) []refs.ObjectID {
|
||||
var ids []refs.ObjectID
|
||||
|
||||
if !empty {
|
||||
ids = append(ids,
|
||||
GenerateObjectID(false),
|
||||
GenerateObjectID(false),
|
||||
*GenerateObjectID(false),
|
||||
*GenerateObjectID(false),
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@ type StorageGroup struct {
|
|||
|
||||
exp uint64
|
||||
|
||||
members []*refs.ObjectID
|
||||
members []refs.ObjectID
|
||||
}
|
||||
|
||||
// GetValidationDataSize of unified storage group structure.
|
||||
|
@ -66,7 +66,7 @@ func (s *StorageGroup) SetExpirationEpoch(v uint64) {
|
|||
|
||||
// GetMembers of unified storage group structure. Members are objects of
|
||||
// storage group.
|
||||
func (s *StorageGroup) GetMembers() []*refs.ObjectID {
|
||||
func (s *StorageGroup) GetMembers() []refs.ObjectID {
|
||||
if s != nil {
|
||||
return s.members
|
||||
}
|
||||
|
@ -76,7 +76,7 @@ func (s *StorageGroup) GetMembers() []*refs.ObjectID {
|
|||
|
||||
// SetMembers into unified storage group structure. Members are objects of
|
||||
// storage group.
|
||||
func (s *StorageGroup) SetMembers(v []*refs.ObjectID) {
|
||||
func (s *StorageGroup) SetMembers(v []refs.ObjectID) {
|
||||
if s != nil {
|
||||
s.members = v
|
||||
}
|
||||
|
|
|
@ -43,7 +43,7 @@ func (s *Tombstone) StableMarshal(buf []byte) ([]byte, error) {
|
|||
offset += n
|
||||
|
||||
for i := range s.members {
|
||||
n, err = proto.NestedStructureMarshal(membersFNum, buf[offset:], s.members[i])
|
||||
n, err = proto.NestedStructureMarshal(membersFNum, buf[offset:], &s.members[i])
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
@ -62,9 +62,8 @@ func (s *Tombstone) StableSize() (size int) {
|
|||
|
||||
size += proto.UInt64Size(expFNum, s.exp)
|
||||
size += proto.BytesSize(splitIDFNum, s.splitID)
|
||||
|
||||
for i := range s.members {
|
||||
size += proto.NestedStructureSize(membersFNum, s.members[i])
|
||||
size += proto.NestedStructureSize(membersFNum, &s.members[i])
|
||||
}
|
||||
|
||||
return size
|
||||
|
|
|
@ -11,7 +11,7 @@ type Tombstone struct {
|
|||
|
||||
splitID []byte
|
||||
|
||||
members []*refs.ObjectID
|
||||
members []refs.ObjectID
|
||||
}
|
||||
|
||||
// GetExpirationEpoch returns number of tombstone expiration epoch.
|
||||
|
@ -47,7 +47,7 @@ func (s *Tombstone) SetSplitID(v []byte) {
|
|||
}
|
||||
|
||||
// GetMembers returns list of objects to be deleted.
|
||||
func (s *Tombstone) GetMembers() []*refs.ObjectID {
|
||||
func (s *Tombstone) GetMembers() []refs.ObjectID {
|
||||
if s != nil {
|
||||
return s.members
|
||||
}
|
||||
|
@ -56,7 +56,7 @@ func (s *Tombstone) GetMembers() []*refs.ObjectID {
|
|||
}
|
||||
|
||||
// SetMembers sets list of objects to be deleted.
|
||||
func (s *Tombstone) SetMembers(v []*refs.ObjectID) {
|
||||
func (s *Tombstone) SetMembers(v []refs.ObjectID) {
|
||||
if s != nil {
|
||||
s.members = v
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue