Skip to content

Commit 3f2dabf

Browse files
update to context datastores (#283)
* update to context datastores * Update go-ds-versioning, go mod tidy Co-authored-by: Aayush Rajasekaran <[email protected]>
1 parent 2e55897 commit 3f2dabf

File tree

5 files changed

+544
-102
lines changed

5 files changed

+544
-102
lines changed

channels/channels_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -490,7 +490,7 @@ func TestMigrationsV0(t *testing.T) {
490490
buf := new(bytes.Buffer)
491491
err = channel.MarshalCBOR(buf)
492492
require.NoError(t, err)
493-
err = ds.Put(datastore.NewKey(datatransfer.ChannelID{
493+
err = ds.Put(ctx, datastore.NewKey(datatransfer.ChannelID{
494494
Initiator: initiators[i],
495495
Responder: responders[i],
496496
ID: transferIDs[i],
@@ -622,7 +622,7 @@ func TestMigrationsV1(t *testing.T) {
622622
buf := new(bytes.Buffer)
623623
err = channel.MarshalCBOR(buf)
624624
require.NoError(t, err)
625-
err = vds.Put(datastore.NewKey(datatransfer.ChannelID{
625+
err = vds.Put(ctx, datastore.NewKey(datatransfer.ChannelID{
626626
Initiator: initiators[i],
627627
Responder: responders[i],
628628
ID: transferIDs[i],

cidsets/cidsets.go

+16-8
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package cidsets
22

33
import (
4+
"context"
45
"sync"
56

67
"github.com/ipfs/go-cid"
@@ -77,12 +78,13 @@ func NewCIDSet(ds datastore.Batching) *cidSet {
7778
// Insert a CID into the set.
7879
// Returns true if the the CID was already in the set.
7980
func (s *cidSet) Insert(c cid.Cid) (exists bool, err error) {
81+
ctx := context.TODO()
8082
s.lk.Lock()
8183
defer s.lk.Unlock()
8284

8385
// Check if the key is in the set already
8486
k := datastore.NewKey(c.String())
85-
has, err := s.ds.Has(k)
87+
has, err := s.ds.Has(ctx, k)
8688
if err != nil {
8789
return false, err
8890
}
@@ -98,7 +100,7 @@ func (s *cidSet) Insert(c cid.Cid) (exists bool, err error) {
98100
}
99101

100102
// Add the new CID to the set
101-
err = s.ds.Put(k, nil)
103+
err = s.ds.Put(ctx, k, nil)
102104
if err != nil {
103105
return false, err
104106
}
@@ -118,13 +120,15 @@ func (s *cidSet) Len() (int, error) {
118120
}
119121

120122
func (s *cidSet) unlockedLen() (int, error) {
123+
ctx := context.TODO()
124+
121125
// If the length is already cached, return it
122126
if s.len >= 0 {
123127
return s.len, nil
124128
}
125129

126130
// Query the datastore for all keys
127-
res, err := s.ds.Query(query.Query{KeysOnly: true})
131+
res, err := s.ds.Query(ctx, query.Query{KeysOnly: true})
128132
if err != nil {
129133
return 0, err
130134
}
@@ -142,10 +146,12 @@ func (s *cidSet) unlockedLen() (int, error) {
142146

143147
// Get all cids in the set as an array
144148
func (s *cidSet) ToArray() ([]cid.Cid, error) {
149+
ctx := context.TODO()
150+
145151
s.lk.Lock()
146152
defer s.lk.Unlock()
147153

148-
res, err := s.ds.Query(query.Query{KeysOnly: true})
154+
res, err := s.ds.Query(ctx, query.Query{KeysOnly: true})
149155
if err != nil {
150156
return nil, err
151157
}
@@ -175,11 +181,13 @@ func (s *cidSet) ToArray() ([]cid.Cid, error) {
175181

176182
// Truncate removes all CIDs in the set
177183
func (s *cidSet) Truncate() error {
184+
ctx := context.TODO()
185+
178186
s.lk.Lock()
179187
defer s.lk.Unlock()
180188

181189
// Get all keys in the datastore
182-
res, err := s.ds.Query(query.Query{KeysOnly: true})
190+
res, err := s.ds.Query(ctx, query.Query{KeysOnly: true})
183191
if err != nil {
184192
return err
185193
}
@@ -190,21 +198,21 @@ func (s *cidSet) Truncate() error {
190198
}
191199

192200
// Create a batch to perform all deletes as one operation
193-
batched, err := s.ds.Batch()
201+
batched, err := s.ds.Batch(ctx)
194202
if err != nil {
195203
return err
196204
}
197205

198206
// Add delete operations for each key to the batch
199207
for _, entry := range entries {
200-
err := batched.Delete(datastore.NewKey(entry.Key))
208+
err := batched.Delete(ctx, datastore.NewKey(entry.Key))
201209
if err != nil {
202210
return err
203211
}
204212
}
205213

206214
// Commit the batch
207-
err = batched.Commit()
215+
err = batched.Commit(ctx)
208216
if err != nil {
209217
return err
210218
}

go.mod

+13-13
Original file line numberDiff line numberDiff line change
@@ -4,37 +4,37 @@ go 1.15
44

55
require (
66
github.com/bep/debounce v1.2.0
7-
github.com/filecoin-project/go-ds-versioning v0.1.0
7+
github.com/filecoin-project/go-ds-versioning v0.0.0-20211206185234-508abd7c2aff
88
github.com/filecoin-project/go-statemachine v0.0.0-20200925024713-05bd7c71fbfe
99
github.com/hannahhoward/cbor-gen-for v0.0.0-20200817222906-ea96cece81f1
1010
github.com/hannahhoward/go-pubsub v0.0.0-20200423002714-8d62886cc36e
1111
github.com/ipfs/go-block-format v0.0.3
12-
github.com/ipfs/go-blockservice v0.1.3
12+
github.com/ipfs/go-blockservice v0.2.1
1313
github.com/ipfs/go-cid v0.0.7
14-
github.com/ipfs/go-datastore v0.4.5
15-
github.com/ipfs/go-ds-badger v0.2.6
16-
github.com/ipfs/go-graphsync v0.10.4
17-
github.com/ipfs/go-ipfs-blockstore v1.0.1
14+
github.com/ipfs/go-datastore v0.5.1
15+
github.com/ipfs/go-ds-badger v0.3.0
16+
github.com/ipfs/go-graphsync v0.10.6-0.20211119000532-c416dad3bd56
17+
github.com/ipfs/go-ipfs-blockstore v1.1.0
1818
github.com/ipfs/go-ipfs-blocksutil v0.0.1
1919
github.com/ipfs/go-ipfs-chunker v0.0.5
2020
github.com/ipfs/go-ipfs-delay v0.0.1
21-
github.com/ipfs/go-ipfs-exchange-offline v0.0.1
21+
github.com/ipfs/go-ipfs-exchange-offline v0.1.1
2222
github.com/ipfs/go-ipfs-files v0.0.8
2323
github.com/ipfs/go-ipld-cbor v0.0.5
2424
github.com/ipfs/go-ipld-format v0.2.0
25-
github.com/ipfs/go-log/v2 v2.1.1
26-
github.com/ipfs/go-merkledag v0.3.2
25+
github.com/ipfs/go-log/v2 v2.3.0
26+
github.com/ipfs/go-merkledag v0.5.1
2727
github.com/ipfs/go-unixfs v0.2.4
2828
github.com/ipld/go-ipld-prime v0.12.3
2929
github.com/jbenet/go-random v0.0.0-20190219211222-123a90aedc0c
3030
github.com/jpillora/backoff v1.0.0
31-
github.com/libp2p/go-libp2p v0.13.0
31+
github.com/libp2p/go-libp2p v0.14.3
3232
github.com/libp2p/go-libp2p-core v0.8.5
3333
github.com/libp2p/go-libp2p-record v0.1.1 // indirect
34-
github.com/stretchr/testify v1.6.1
34+
github.com/stretchr/testify v1.7.0
3535
github.com/whyrusleeping/cbor-gen v0.0.0-20210219115102-f37d292932f2
36-
go.uber.org/atomic v1.6.0
37-
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9
36+
go.uber.org/atomic v1.7.0
37+
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c
3838
golang.org/x/tools v0.1.1-0.20210225150353-54dc8c5edb56 // indirect
3939
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1
4040
)

0 commit comments

Comments
 (0)