swarm/storage/feed/lookup: change lookup HL to 31 for efficiency

This commit is contained in:
Javier Peletier 2019-04-04 22:48:08 +02:00
parent d378227c95
commit 2096c44071
8 changed files with 13 additions and 14 deletions

View file

@ -184,7 +184,6 @@ func (h *Handler) Lookup(ctx context.Context, query *Query) (*cacheEntry, error)
// Invoke the lookup engine. // Invoke the lookup engine.
// The callback will be called every time the lookup algorithm needs to guess // The callback will be called every time the lookup algorithm needs to guess
requestPtr, err := lookup.Lookup(ctx, timeLimit, query.Hint, func(ctx context.Context, epoch lookup.Epoch, now uint64) (interface{}, error) { requestPtr, err := lookup.Lookup(ctx, timeLimit, query.Hint, func(ctx context.Context, epoch lookup.Epoch, now uint64) (interface{}, error) {
fmt.Printf("Epoch query: %s\n", epoch.String())
atomic.AddInt32(&readCount, 1) atomic.AddInt32(&readCount, 1)
id := ID{ id := ID{
Feed: query.Feed, Feed: query.Feed,

View file

@ -177,8 +177,8 @@ func TestFeedsHandler(t *testing.T) {
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
if request.Epoch.Base() != 0 || request.Epoch.Level != 22 { if request.Epoch.Base() != 0 || request.Epoch.Level != 28 {
t.Fatalf("Expected epoch base time to be %d, got %d. Expected epoch level to be %d, got %d", 0, request.Epoch.Base(), 22, request.Epoch.Level) t.Fatalf("Expected epoch base time to be %d, got %d. Expected epoch level to be %d, got %d", 0, request.Epoch.Base(), 28, request.Epoch.Level)
} }
data = []byte(updates[3]) data = []byte(updates[3])
request.SetData(data) request.SetData(data)
@ -213,8 +213,8 @@ func TestFeedsHandler(t *testing.T) {
if !bytes.Equal(update2.data, []byte(updates[len(updates)-1])) { if !bytes.Equal(update2.data, []byte(updates[len(updates)-1])) {
t.Fatalf("feed update data was %v, expected %v", string(update2.data), updates[len(updates)-1]) t.Fatalf("feed update data was %v, expected %v", string(update2.data), updates[len(updates)-1])
} }
if update2.Level != 22 { if update2.Level != 28 {
t.Fatalf("feed update epoch level was %d, expected 22", update2.Level) t.Fatalf("feed update epoch level was %d, expected 28", update2.Level)
} }
if update2.Base() != 0 { if update2.Base() != 0 {
t.Fatalf("feed update epoch base time was %d, expected 0", update2.Base()) t.Fatalf("feed update epoch base time was %d, expected 0", update2.Base())

View file

@ -16,11 +16,11 @@ func getTestID() *ID {
func TestIDAddr(t *testing.T) { func TestIDAddr(t *testing.T) {
id := getTestID() id := getTestID()
updateAddr := id.Addr() updateAddr := id.Addr()
compareByteSliceToExpectedHex(t, "updateAddr", updateAddr, "0x8b24583ec293e085f4c78aaee66d1bc5abfb8b4233304d14a349afa57af2a783") compareByteSliceToExpectedHex(t, "updateAddr", updateAddr, "0x842d0a81987b9755dfeaa5558f5c134c1c0af48b6545005cac7b533d9411453a")
} }
func TestIDSerializer(t *testing.T) { func TestIDSerializer(t *testing.T) {
testBinarySerializerRecovery(t, getTestID(), "0x776f726c64206e657773207265706f72742c20657665727920686f7572000000876a8936a7cd0b79ef0735ad0896c1afe278781ce803000000000019") testBinarySerializerRecovery(t, getTestID(), "0x776f726c64206e657773207265706f72742c20657665727920686f7572000000876a8936a7cd0b79ef0735ad0896c1afe278781ce80300000000001f")
} }
func TestIDLengthCheck(t *testing.T) { func TestIDLengthCheck(t *testing.T) {

View file

@ -31,8 +31,8 @@ const maxuint64 = ^uint64(0)
const LowestLevel uint8 = 0 // default is 0 (1 second) const LowestLevel uint8 = 0 // default is 0 (1 second)
// HighestLevel sets the lowest frequency the algorithm will operate at, as a power of 2. // HighestLevel sets the lowest frequency the algorithm will operate at, as a power of 2.
// 25 -> 2^25 equals to roughly one year. // 31 -> 2^31 equals to roughly 38 years.
const HighestLevel = 25 // default is 25 (~1 year) const HighestLevel = 31
// DefaultLevel sets what level will be chosen to search when there is no hint // DefaultLevel sets what level will be chosen to search when there is no hint
const DefaultLevel = HighestLevel const DefaultLevel = HighestLevel

File diff suppressed because one or more lines are too long

View file

@ -30,7 +30,7 @@ func getTestQuery() *Query {
} }
func TestQueryValues(t *testing.T) { func TestQueryValues(t *testing.T) {
var expected = KV{"hint.level": "25", "hint.time": "1000", "time": "5000", "topic": "0x776f726c64206e657773207265706f72742c20657665727920686f7572000000", "user": "0x876A8936A7Cd0b79Ef0735AD0896c1AFe278781c"} var expected = KV{"hint.level": "31", "hint.time": "1000", "time": "5000", "topic": "0x776f726c64206e657773207265706f72742c20657665727920686f7572000000", "user": "0x876A8936A7Cd0b79Ef0735AD0896c1AFe278781c"}
query := getTestQuery() query := getTestQuery()
testValueSerializer(t, query, expected) testValueSerializer(t, query, expected)

View file

@ -223,7 +223,7 @@ func TestUpdateChunkSerializationErrorChecking(t *testing.T) {
t.Fatalf("error creating update chunk:%s", err) t.Fatalf("error creating update chunk:%s", err)
} }
compareByteSliceToExpectedHex(t, "chunk", chunk.Data(), "0x0000000000000000776f726c64206e657773207265706f72742c20657665727920686f7572000000876a8936a7cd0b79ef0735ad0896c1afe278781ce803000000000019416c206269656e206861636572206a616dc3a173206c652066616c7461207072656d696f5a0ffe0bc27f207cd5b00944c8b9cee93e08b89b5ada777f123ac535189333f174a6a4ca2f43a92c4a477a49d774813c36ce8288552c58e6205b0ac35d0507eb00") compareByteSliceToExpectedHex(t, "chunk", chunk.Data(), "0x0000000000000000776f726c64206e657773207265706f72742c20657665727920686f7572000000876a8936a7cd0b79ef0735ad0896c1afe278781ce80300000000001f416c206269656e206861636572206a616dc3a173206c652066616c7461207072656d696f9896df5937e64e51a7994479ff3fe0ed790d539b9b3e85e93c0014a8a64374f23603c79d16e99b50a757896d3816d7022ac594ad1415679a9b164afb2e5926d801")
var recovered Request var recovered Request
recovered.fromChunk(chunk) recovered.fromChunk(chunk)

View file

@ -28,7 +28,7 @@ func getTestFeedUpdate() *Update {
} }
func TestUpdateSerializer(t *testing.T) { func TestUpdateSerializer(t *testing.T) {
testBinarySerializerRecovery(t, getTestFeedUpdate(), "0x0000000000000000776f726c64206e657773207265706f72742c20657665727920686f7572000000876a8936a7cd0b79ef0735ad0896c1afe278781ce803000000000019456c20717565206c6565206d7563686f207920616e6461206d7563686f2c207665206d7563686f20792073616265206d7563686f") testBinarySerializerRecovery(t, getTestFeedUpdate(), "0x0000000000000000776f726c64206e657773207265706f72742c20657665727920686f7572000000876a8936a7cd0b79ef0735ad0896c1afe278781ce80300000000001f456c20717565206c6565206d7563686f207920616e6461206d7563686f2c207665206d7563686f20792073616265206d7563686f")
} }
func TestUpdateLengthCheck(t *testing.T) { func TestUpdateLengthCheck(t *testing.T) {