Skip to content

Commit

Permalink
prealloc slice in rwset builder
Browse files Browse the repository at this point in the history
This commit defines capacity for slices used in
rwset building to avoid reallocation of memory, and
copy of contents.

Signed-off-by: senthil <cendhu@gmail.com>
  • Loading branch information
cendhu committed Oct 17, 2023
1 parent a632226 commit 45b22c8
Showing 1 changed file with 8 additions and 5 deletions.
13 changes: 8 additions & 5 deletions core/ledger/kvledger/txmgmt/rwsetutil/rwset_builder.go
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,7 @@ func (b *RWSetBuilder) GetTxReadWriteSet() *TxRwSet {
sortedNsPubBuilders := []*nsPubRwBuilder{}
util.GetValuesBySortedKeys(&(b.pubRwBuilderMap), &sortedNsPubBuilders)

var nsPubRwSets []*NsRwSet
nsPubRwSets := make([]*NsRwSet, 0, len(sortedNsPubBuilders))
for _, nsPubRwBuilder := range sortedNsPubBuilders {
nsPubRwSets = append(nsPubRwSets, nsPubRwBuilder.build())
}
Expand All @@ -191,7 +191,7 @@ func (b *RWSetBuilder) getTxPvtReadWriteSet() *TxPvtRwSet {
sortedNsPvtBuilders := []*nsPvtRwBuilder{}
util.GetValuesBySortedKeys(&(b.pvtRwBuilderMap), &sortedNsPvtBuilders)

var nsPvtRwSets []*NsPvtRwSet
nsPvtRwSets := make([]*NsPvtRwSet, 0, len(sortedNsPvtBuilders))
for _, nsPvtRwBuilder := range sortedNsPvtBuilders {
nsPvtRwSets = append(nsPvtRwSets, nsPvtRwBuilder.build())
}
Expand All @@ -205,23 +205,26 @@ func (b *nsPubRwBuilder) build() *NsRwSet {
var readSet []*kvrwset.KVRead
var writeSet []*kvrwset.KVWrite
var metadataWriteSet []*kvrwset.KVMetadataWrite
var rangeQueriesInfo []*kvrwset.RangeQueryInfo
var collHashedRwSet []*CollHashedRwSet
// add read set
util.GetValuesBySortedKeys(&(b.readMap), &readSet)
// add write set
util.GetValuesBySortedKeys(&(b.writeMap), &writeSet)
util.GetValuesBySortedKeys(&(b.metadataWriteMap), &metadataWriteSet)

rangeQueriesInfo := make([]*kvrwset.RangeQueryInfo, 0, len(b.rangeQueriesKeys))
// add range query info
for _, key := range b.rangeQueriesKeys {
rangeQueriesInfo = append(rangeQueriesInfo, b.rangeQueriesMap[key])
}
// add hashed rws for private collections
sortedCollBuilders := []*collHashRwBuilder{}
util.GetValuesBySortedKeys(&(b.collHashRwBuilder), &sortedCollBuilders)

collHashedRwSet := make([]*CollHashedRwSet, 0, len(sortedCollBuilders))
for _, collBuilder := range sortedCollBuilders {
collHashedRwSet = append(collHashedRwSet, collBuilder.build())
}

return &NsRwSet{
NameSpace: b.namespace,
KvRwSet: &kvrwset.KVRWSet{
Expand All @@ -238,7 +241,7 @@ func (b *nsPvtRwBuilder) build() *NsPvtRwSet {
sortedCollBuilders := []*collPvtRwBuilder{}
util.GetValuesBySortedKeys(&(b.collPvtRwBuilders), &sortedCollBuilders)

var collPvtRwSets []*CollPvtRwSet
collPvtRwSets := make([]*CollPvtRwSet, 0, len(sortedCollBuilders))
for _, collBuilder := range sortedCollBuilders {
collPvtRwSets = append(collPvtRwSets, collBuilder.build())
}
Expand Down

0 comments on commit 45b22c8

Please sign in to comment.