feat(core) using WriteCached, cache Puts for exchange and blockservice
License: MIT Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
Brian Tiger Chow committed
Nov 30, 2014 at 21:44 UTC
9895af2dffddcd38c2e0ee3497a2ef3b84867026
1 file changed
+6
-5
core/core.go
+6
-5
@@ -8,7 +8,7 @@ import (
8
b58 "github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/jbenet/go-base58"
9
ma "github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/jbenet/go-multiaddr"
10
11
- blockstore "github.com/jbenet/go-ipfs/blocks/blockstore"
11
+ bstore "github.com/jbenet/go-ipfs/blocks/blockstore"
12
bserv "github.com/jbenet/go-ipfs/blockservice"
13
config "github.com/jbenet/go-ipfs/config"
14
diag "github.com/jbenet/go-ipfs/diagnostics"
@@ -35,6 +35,7 @@ import (
35
)
36
37
const IpnsValidatorTag = "ipns"
38
+const kSizeBlockstoreWriteCache = 100
39
40
var log = eventlog.Logger("core")
41
@@ -130,7 +131,8 @@ func NewIpfsNode(cfg *config.Config, online bool) (n *IpfsNode, err error) {
131
return nil, debugerror.Wrap(err)
132
}
133
133
- n.Exchange = offline.Exchange(blockstore.NewBlockstore(n.Datastore))
134
+ blockstore, err := bstore.WriteCached(bstore.NewBlockstore(n.Datastore), kSizeBlockstoreWriteCache)
135
+ n.Exchange = offline.Exchange(blockstore)
136
137
// setup online services
138
if online {
@@ -174,16 +176,15 @@ func NewIpfsNode(cfg *config.Config, online bool) (n *IpfsNode, err error) {
176
// setup exchange service
177
const alwaysSendToPeer = true // use YesManStrategy
178
bitswapNetwork := bsnet.NewFromIpfsNetwork(exchangeService, n.Network)
177
- bstore := blockstore.NewBlockstore(n.Datastore)
179
179
- n.Exchange = bitswap.New(ctx, n.Identity, bitswapNetwork, n.Routing, bstore, alwaysSendToPeer)
180
+ n.Exchange = bitswap.New(ctx, n.Identity, bitswapNetwork, n.Routing, blockstore, alwaysSendToPeer)
181
182
go initConnections(ctx, n.Config, n.Peerstore, dhtRouting)
183
}
184
185
// TODO(brian): when offline instantiate the BlockService with a bitswap
186
// session that simply doesn't return blocks
186
- n.Blocks, err = bserv.New(blockstore.NewBlockstore(n.Datastore), n.Exchange)
187
+ n.Blocks, err = bserv.New(blockstore, n.Exchange)
188
if err != nil {
189
return nil, debugerror.Wrap(err)
190
}