Commit Graph

306 Commits

Author SHA1 Message Date
Raúl Kripalani
19eea773fa rename addrsRecord.Refresh() => addrsRecord.Clean(). 2018-11-30 16:56:37 +00:00
Raúl Kripalani
943429ff4b Revert "use a Pool for address record objects." 2018-11-30 16:19:57 +00:00
Raúl Kripalani
dd2a07ea4a Revert "gx: update golang-lru dependency."
This reverts commit c7107ffb52.
2018-11-30 16:19:57 +00:00
Raúl Kripalani
fd57c55d87 document custom gogo types; reorg code. 2018-11-30 16:19:57 +00:00
Raúl Kripalani
c3c24b227a rename GCPruneInterval to GCPurgeInterval for consistency. 2018-11-28 01:29:09 +00:00
Raúl Kripalani
bbff6b7522 improve test coverage of new GC routine. 2018-11-28 01:08:25 +00:00
Raúl Kripalani
ffe9586203 codecov: ignore protobuf go sources. 2018-11-28 00:57:08 +00:00
Raúl Kripalani
03a40a855a minor cleanup. 2018-11-28 00:56:51 +00:00
Raúl Kripalani
3a85498ae8 add tests for new GC routines. 2018-11-28 00:13:13 +00:00
Raúl Kripalani
35444fbc6a implement two-tiered lookahead-based GC procedure.
The GC procedure consists of two tiers: lookahead and purge. The
lookahead tier runs less frequently (default 12 hours) than the purge
tier (default 5 minutes).

A lookahead round traverses the entire store and picks entries that
need to be visited in the current lookahead window, pinning those
entries in a separate region in the KV store, indexed by the next visit
timestamp.

A purge round iterates over the lookahead window only, and refreshes
the entries that require a visit. It removes them from the lookahead
region unless the entry requires another visit within the current
window.
2018-11-28 00:13:02 +00:00
Raúl Kripalani
c7107ffb52 gx: update golang-lru dependency. 2018-11-16 11:11:00 +00:00
Raúl Kripalani
ef8e8ff359 use a Pool for address record objects. 2018-11-15 18:48:40 +00:00
Raúl Kripalani
390e8c3f44 add Keys() function to private cache interface for completeness. 2018-11-15 18:39:38 +00:00
Raúl Kripalani
bd80609ef6 adjust GC interval in tests. 2018-11-15 13:55:53 +00:00
Raúl Kripalani
e57f21a66c Merge branch 'master' into feat/pstore-ds-gc 2018-11-15 13:44:13 +00:00
Raúl Kripalani
22f8aa142c fix makefile for protobuf. 2018-11-15 13:40:48 +00:00
Raúl Kripalani
4c43736fe9 pstoreds: tighten up gc-based peerstore.
Introduces custom types in protobuf to serde directly into multiaddrs
and peer IDs. Simplify purge by ordering addrs by expiry. In general,
getting this readier for merge.
2018-11-15 13:32:08 +00:00
Raúl Kripalani
0c6cf4a799
Merge pull request #43 from lanzafame/feat/more-benchs
Deterministic benchmark order; Keybook interface benchmarks
2018-11-14 19:09:15 +00:00
Raúl Kripalani
c423e9e997 pstoreds: migrate from strict TTL to GC-based expiry.
Each entry in the address book KV store now represents a full peer
with all its addresses. Expiries and TTLs are kept inline. Records are
serialised with Protobuf.

Housekeeping is performed on retrieve, and via a periodic GC routine.
The architecture mimics a write-through cache, although not strictly.
2018-11-13 16:57:51 +00:00
Hannah Howard
3a5fba8af2
Merge pull request #46 from libp2p/gx/update-kque0y
gx publish 2.0.11
2018-11-09 15:47:08 -08:00
hannahhoward
129aa29181 gx publish 2.0.11 2018-11-09 15:31:38 -08:00
Steven Allen
00679cccdb
Merge pull request #45 from zhizouxiao/fix/peerinfo-unmarshal
PeerInfo UnMarshal Error #393
2018-11-08 20:54:45 -08:00
wzp
de5683cb85 add marshal unittest #393 2018-11-09 11:13:06 +08:00
Eli Wang
ab8c6cbfd1
bug fix: UnmarshalJSON should take a pointer 2018-11-08 10:40:39 +08:00
wzp
e9ca112fea PeerInfo UnMarshal Error #393 2018-11-08 10:12:34 +08:00
Adrian Lanzafame
c04ff2d27b
add keybook benchmarks
License: MIT
Signed-off-by: Adrian Lanzafame <adrianlanzafame92@gmail.com>
2018-11-07 15:48:31 +10:00
Adrian Lanzafame
308d998d76
sort suite so benchmarks always run in the same order
License: MIT
Signed-off-by: Adrian Lanzafame <adrianlanzafame92@gmail.com>
2018-11-07 15:48:31 +10:00
Adrian Lanzafame
ee43bc1951
prevent timeout by un-nesting tb.Runs
License: MIT
Signed-off-by: Adrian Lanzafame <adrianlanzafame92@gmail.com>
2018-11-07 15:48:31 +10:00
Steven Allen
545f62f160 gx publish 2.0.10 2018-11-02 21:10:55 -07:00
Steven Allen
d351b9ad3b gx publish 2.0.9 2018-11-02 18:06:06 -07:00
Steven Allen
491863b2bf gx publish 2.0.8 2018-11-02 16:33:25 -07:00
Steven Allen
9e5b5504df Merge branch 'gx/update-fzw9j3' 2018-11-02 16:06:33 -07:00
Steven Allen
126e7c5eb4 gx publish 2.0.7 2018-11-02 15:55:27 -07:00
Steven Allen
d544f80a45
Merge pull request #44 from libp2p/fix/inline-test
fix the inline key test
2018-11-02 15:52:29 -07:00
Steven Allen
62b237fea1 ci: update go 2018-11-02 15:49:58 -07:00
Steven Allen
6c58e9f9fa fix the inline key test
RandTestKeyPair uses RSA keys but we now forbid any RSA key under 512 bits.
2018-11-02 15:24:44 -07:00
Steven Allen
6295e61c9f gx publish 2.0.6 2018-10-24 09:45:00 -07:00
Steven Allen
98ce9158bd gx publish 2.0.5 2018-10-16 11:39:03 +01:00
Steven Allen
3585c4af62
Merge pull request #42 from libp2p/feat/fix-peer-inlining
update to match new ExtractPublicKey API
2018-10-16 11:38:02 +01:00
Steven Allen
588ab36ce8 update to match new ExtractPublicKey API
This is a "more correct" API and we might as well fix this before it becomes
used all over the place. The new API returns ErrNoPublicKey when there is no
inlined key.

This *also* fixes a bug where the datastore-backed keystore would panic if
`ExtractPublicKey` returned `nil, nil`.
2018-10-16 11:31:32 +01:00
Raúl Kripalani
4c151480e8
Merge pull request #41 from libp2p/fix/smaller-addr-book
store expiring addrs by pointer
2018-10-16 09:47:39 +01:00
Steven Allen
68a73712e1 store expiring addrs by pointer
Hopefully, this reduces the space wasted by using maps (see the comment in the
committed code).
2018-10-14 15:11:35 +01:00
Raúl Kripalani
b87bbd4e21
Merge pull request #40 from raulk/b32
Replace b58-encoded keys with b32 (no padding) + test against multiple ds. Resolves #38.
2018-10-11 17:55:56 +01:00
Raúl Kripalani
1e98679c50 gx publish 2.0.4 2018-10-11 17:51:04 +01:00
Raúl Kripalani
43dbbcfb18 gx upgrade go-ds-leveldb. 2018-10-11 17:50:35 +01:00
Raúl Kripalani
ad3e48181c Merge branch 'master' into b32 2018-10-11 15:53:56 +01:00
Steven Allen
a491d36013 gx publish 2.0.4 2018-10-10 11:29:57 +01:00
Steven Allen
3e0c5fae56 gx publish 2.0.3 2018-10-05 13:38:44 -07:00
Raúl Kripalani
e18b128538 add go-ds-leveldb gx dep for tests. 2018-10-04 22:11:51 +01:00
Raúl Kripalani
4e2e2de65f ds key encoding: b58 => b32 (no padding). 2018-10-04 10:51:57 +01:00