Skip to content

Commit 38a707a

Browse files
simplify put
1 parent d154d71 commit 38a707a

File tree

1 file changed

+9
-27
lines changed

1 file changed

+9
-27
lines changed

provider/datastore/keystore.go

Lines changed: 9 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -222,11 +222,6 @@ func (s *keyStore) decodeKey(dsk string) (bit256.Key, error) {
222222
return bit256.NewKey(bs), nil
223223
}
224224

225-
type pair struct {
226-
k ds.Key
227-
h mh.Multihash
228-
}
229-
230225
// worker processes operations sequentially in a single goroutine
231226
func (s *keyStore) worker() {
232227
defer close(s.done)
@@ -272,7 +267,11 @@ func (s *keyStore) worker() {
272267
// returns the keys that weren't present already in the keystore.
273268
func (s *keyStore) put(ctx context.Context, keys []mh.Multihash) ([]mh.Multihash, error) {
274269
seen := make(map[bit256.Key]struct{}, len(keys))
275-
toPut := make([]pair, 0, len(keys))
270+
b, err := s.ds.Batch(ctx)
271+
if err != nil {
272+
return nil, err
273+
}
274+
newKeys := make([]mh.Multihash, 0, len(keys))
276275

277276
for _, h := range keys {
278277
k := keyspace.MhToBit256(h)
@@ -286,32 +285,15 @@ func (s *keyStore) put(ctx context.Context, keys []mh.Multihash) ([]mh.Multihash
286285
return nil, err
287286
}
288287
if !ok {
289-
toPut = append(toPut, pair{k: dsk, h: h})
290-
}
291-
}
292-
clear(seen)
293-
if len(toPut) == 0 {
294-
// Nothing to do
295-
return nil, nil
296-
}
297-
298-
b, err := s.ds.Batch(ctx)
299-
if err != nil {
300-
return nil, err
301-
}
302-
for _, p := range toPut {
303-
if err := b.Put(ctx, p.k, p.h); err != nil {
304-
return nil, err
288+
if err := b.Put(ctx, dsk, h); err != nil {
289+
return nil, err
290+
}
291+
newKeys = append(newKeys, h)
305292
}
306293
}
307294
if err := b.Commit(ctx); err != nil {
308295
return nil, err
309296
}
310-
311-
newKeys := make([]mh.Multihash, len(toPut))
312-
for i, p := range toPut {
313-
newKeys[i] = p.h
314-
}
315297
return newKeys, nil
316298
}
317299

0 commit comments

Comments
 (0)