Commit Graph

72 Commits

Author SHA1 Message Date
Steven Allen
9a335cee13 fewer allocations on unpin
License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2017-12-03 19:05:05 -08:00
Steven Allen
498ee0dc0b resolve and pin in one step
instead of resolving all the pins first and then pinning, pin after resolving
each pin.

This:

1. Avoids storing all the nodes in memory.
2. Avoids not showing pin progress.

fixes #4122

License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2017-12-03 19:03:04 -08:00
Steven Allen
8e780d2304 don't create a new context per pin
This came from an old commit that used a TODO context. Now that we have a real
context, use that.

License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2017-12-03 19:02:08 -08:00
Kevin Atkinson
37f6a1bb86 "repo stat": Make special value to represent NoLimit a constant.
License: MIT
Signed-off-by: Kevin Atkinson <k@kevina.org>
2017-09-18 19:26:16 -04:00
Kevin Atkinson
f156f63eed "repo stat": Don't crash when Datastore.StorageMax is not defined
License: MIT
Signed-off-by: Kevin Atkinson <k@kevina.org>
2017-09-18 15:44:07 -04:00
Steven Allen
70d6629940 gx: update go-cid, go-multibase, base32
License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2017-09-01 17:46:49 -07:00
Jeromy
cccc6a94a3 update go-multihash and bubble up changes
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2017-07-11 19:27:43 -07:00
Łukasz Magiera
8ab93aaeb2 Update go-datastore to 1.2.2, go-cid to 0.7.16
License: MIT
Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
2017-07-04 20:18:57 +02:00
Steven Allen
13636bef50 blocks: gx import go-block-format
And updated related dependencies.

License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2017-06-29 22:12:14 +02:00
Steven Allen
e2cd36e88f pinning + pathresolver: fix pinning/unpinning of sharded directories
* Change ResolveToCid to take a Resolver and a NameSystem instead of an ipfs
  Node.
* Make the pin/unpin methods use a Unixfs path resolver.

Closes: #3974

License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2017-06-12 18:12:29 -07:00
Kevin Atkinson
0f46a34f59 Add MaxStorage field to output of "repo stat".
License: MIT
Signed-off-by: Kevin Atkinson <k@kevina.org>
2017-05-10 23:41:35 -04:00
Jeromy
b15470d548
bubble up updates from go-multihash changes
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2017-04-20 20:28:04 +02:00
Kevin Atkinson
d39d9ed60b gc: address CR comments
License: MIT
Signed-off-by: Kevin Atkinson <k@kevina.org>
2017-03-20 14:46:02 -04:00
Kevin Atkinson
f338520aa8 gc: add option to stream errors
License: MIT
Signed-off-by: Kevin Atkinson <k@kevina.org>
2017-03-06 14:26:14 -05:00
Kevin Atkinson
401d156596 gc: refactor: CollectResult
License: MIT
Signed-off-by: Kevin Atkinson <k@kevina.org>
2017-03-06 14:26:14 -05:00
Kevin Atkinson
96f8c17b0f gc: return Result instead of two channels
License: MIT
Signed-off-by: Kevin Atkinson <k@kevina.org>
2017-03-06 14:26:14 -05:00
Kevin Atkinson
d7fa05a707 gc: join multiple errors with "; " instead of a newline
otherwise the daemon will only display the first error

License: MIT
Signed-off-by: Kevin Atkinson <k@kevina.org>
2017-03-06 14:26:09 -05:00
Kevin Atkinson
f1938f3cbd gc: output all errors to a channel
Errors from ColoredSet are now reported as encountered and errors
encountered when deleting blocks are no longer ignored.

License: MIT
Signed-off-by: Kevin Atkinson <k@kevina.org>

gc: report errors from ColoredSet as encountered

License: MIT
Signed-off-by: Kevin Atkinson <k@kevina.org>
2017-03-06 14:26:09 -05:00
Jeromy
b4eeff2d84 update go-multihash and bubble up deps
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2017-02-12 12:25:41 -08:00
Lars Gierth
2836c64642 gc: remove unneccessary full repo scan
GetStorageUsage() is super expensive as it involves a full repo scan,
and it's already bad enough that we have do it once.

The call that's being removed here is purely for cosmetical purposes:
printing the number of bytes freed by the GC run. Let's drop it.

License: MIT
Signed-off-by: Lars Gierth <larsg@systemli.org>
2016-12-13 14:50:01 +01:00
Lars Gierth
a6ae8e72bf gc: remove wonky timeout
This timeout was:
- unneccessary
- based on a metric that doesn't make sense

License: MIT
Signed-off-by: Lars Gierth <larsg@systemli.org>
2016-12-13 14:50:01 +01:00
Jeromy
53d47669da bubble up go-datastore deps
License: MIT
Signed-off-by: Jeromy <why@ipfs.io>
2016-11-28 22:29:38 -08:00
Jeromy
396c629301 update to newer ipld node interface with Copy and better Tree
License: MIT
Signed-off-by: Jeromy <why@ipfs.io>
2016-11-15 18:00:49 -08:00
Jeromy
67c2a4ec14 make path resolver no longer require whole node for construction
License: MIT
Signed-off-by: Jeromy <why@ipfs.io>
2016-10-25 15:04:44 -07:00
Jeromy
eac13abaec update to new cid and ipld node packages
License: MIT
Signed-off-by: Jeromy <why@ipfs.io>
2016-10-25 09:54:04 -07:00
Jeromy
48f7e14277 extract node interface
License: MIT
Signed-off-by: Jeromy <why@ipfs.io>
2016-10-14 07:53:48 -07:00
Jeromy
01aee44679 merkledag: change 'Node' to be an interface
Also change existing 'Node' type to 'ProtoNode' and use that most
everywhere for now. As we move forward with the integration we will try
and use the Node interface in more places that we're currently using
ProtoNode.

License: MIT
Signed-off-by: Jeromy <why@ipfs.io>
2016-10-12 08:16:03 -07:00
Jeromy Johnson
015d476c4f Merge pull request #3297 from ipfs/feat/bitswap-cid
bitswap: protocol extension to handle cids
2016-10-12 10:13:30 -04:00
Jeromy
affb06d558 run gofmt
License: MIT
Signed-off-by: Jeromy <why@ipfs.io>
2016-10-12 07:00:38 -07:00
Jeromy
f4d7369c4a bitswap: protocol extension to handle cids
This change adds the /ipfs/bitswap/1.1.0 protocol. The new protocol
adds a 'payload' field to the protobuf message and deprecates the
existing 'blocks' field. The 'payload' field is an array of pairs of cid
prefixes and block data. The cid prefixes are used to ensure the correct
codecs and hash functions are used to handle the block on the receiving
end.

License: MIT
Signed-off-by: Jeromy <why@ipfs.io>
2016-10-10 08:19:31 -07:00
Jeromy
282bdc4816 cid: integrate cid into bitswap and blockstores
License: MIT
Signed-off-by: Jeromy <why@ipfs.io>
2016-10-08 12:14:58 -07:00
Kevin Atkinson
721df367a2 Don't use a separate LinkService for DAGService.GetLinks()
Instead make LinkService a part of DAGService.  The LinkService is now
simply an interface that DAGService implements.  Also provide a
GetOfflineLinkService() method that the GC uses to get an offline
instance.

License: MIT
Signed-off-by: Kevin Atkinson <k@kevina.org>
2016-10-06 11:52:39 -04:00
Kevin Atkinson
3899194cb0 Add DAGService.GetLinks() method and use it in the GC and elsewhere.
This method will use the (also new) LinkService if it is available to
retrieving just the links for a MerkleDAG without necessary having to
retrieve the underlying block.

For now the main benefit is that the pinner will not break when a block
becomes invalid due to a change in the backing file.  This is possible
because the metadata for a block (that includes the Links) is stored
separately and thus always available even if the backing file changes.

License: MIT
Signed-off-by: Kevin Atkinson <k@kevina.org>
2016-10-06 11:38:41 -04:00
Jeromy
1f9ec4e3ed update to libp2p 4.0.1 and propogate other changes
License: MIT
Signed-off-by: Jeromy <why@ipfs.io>
2016-10-05 22:12:43 -07:00
George Antoniadis
6859b8ccd8 Extract key and datastore
License: MIT
Signed-off-by: George Antoniadis <george@noodles.gr>
2016-09-09 15:52:25 +01:00
Jeromy
c8fe495934 integrate CIDv0
License: MIT
Signed-off-by: Jeromy <why@ipfs.io>
2016-09-07 13:32:32 -07:00
Jeromy
05b197df2d update deps for libp2p 3.4.0
License: MIT
Signed-off-by: Jeromy <why@ipfs.io>
2016-08-25 19:02:55 -07:00
Jeromy
a3bd3bc364 Automatically download and run migrations if needed
License: MIT
Signed-off-by: Jeromy <why@ipfs.io>
2016-07-19 06:50:00 -07:00
Jakub Sztandera
ce8c8a7a71 Update go-log in whole dependency tree (#2898)
* Update golog in go-ipfs

License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>

* Update go-libp2p for go-log

License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>

* Update go-libp2p-secio for go-log

License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>

* Update go-libp2p-crypto for go-log

License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>

* Update go-libp2p-peer for go-log

License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>

* Import peersore, it wasn't imported

License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>

* Update peerstore

License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>

* Update peer

License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>

* Update secio

License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>

* Update go-libp2p

License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2016-06-24 09:38:07 -07:00
Kevin Atkinson
714f2debea Add Files API root as best-effort pin.
Closes #2697.  Closes #2698.

License: MIT
Signed-off-by: Kevin Atkinson <k@kevina.org>
2016-06-20 17:09:56 -04:00
Jakub Sztandera
eaccd07505 Update go-log
https://github.com/ipfs/go-log/pull/3

License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2016-06-09 23:37:09 +02:00
Jakub Sztandera
6d4975d82c Move go-humanize to gx
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2016-06-09 11:32:02 +02:00
Michael Pfister
234afc8888 Adds repo version info to repo stat command
addresses #2571

License: MIT
Signed-off-by: Mike Pfister <pfista@gmail.com>
2016-06-03 13:03:40 -07:00
Hector Sanjuan
57b494a70c Update go-log to 1.1.0 and fix calls to go-log.Uuid
License: MIT
Signed-off-by: Hector Sanjuan <code@hector.link>
2016-05-04 23:17:21 +02:00
Lars Gierth
a79907b7c1 repo: properly init Datastore config, and leave it be
We didn't previously initialize the Datastore config section.
The respective function exists, but was dead code up until now.

This lead to weird decisions like the GC code deciding on defaults,
and writing these to the config file. Don't want GC to touch the config.

License: MIT
Signed-off-by: Lars Gierth <larsg@systemli.org>
2016-04-11 16:21:14 -07:00
David Dias
c10e329b78 repo-stat
License: MIT
Signed-off-by: David Dias <daviddias.p@gmail.com>
2016-03-04 23:45:03 +00:00
Jeromy
0e8a6700f9 correct go-log dep
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2016-01-30 09:34:10 -08:00
Jeromy
0e312f5caf initial vendoring of libp2p outside of the repo with gx
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2016-01-30 09:34:06 -08:00
Stephen Whitmore
32ceaa61e8 Resolves paths in 'pin rm' without network lookup.
Fixes ipfs/go-ipfs#2155 by turning the hash path arguments into keys
and unpinning directly, rather than running a full core.Resolve on
them. This lets users fail fast when they try to remove pins that
they don't have locally.

Note that this will only work when the path is of the form <hash> or
/ipfs/<hash>. Given e.g. /ipfs/<hash>/foo, foo's key cannot be known
without first resolving <hash>, which may involve talking to the
network.

License: MIT
Signed-off-by: Stephen Whitmore <noffle@ipfs.io>
2016-01-16 03:11:36 +01:00
Jeromy
b12ee40aba implement mark and sweep GC
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>

dont GC blocks used by pinner

License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>

comment GC algo

License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>

add lock to blockstore to prevent GC from eating wanted blocks

License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>

improve FetchGraph

License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>

separate interfaces for blockstore and GCBlockstore

License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>

reintroduce indirect pinning, add enumerateChildren dag method

License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2016-01-12 08:21:13 -08:00