forked from cerc-io/ipld-eth-server
Extract and delegate logs concurrently
This commit is contained in:
@@ -52,8 +52,7 @@ func (repo CheckedHeadersRepository) MissingHeaders(startingBlockNumber, endingB
|
||||
LEFT JOIN checked_headers on headers.id = header_id
|
||||
WHERE (header_id ISNULL OR check_count < $2)
|
||||
AND headers.block_number >= $1
|
||||
AND headers.eth_node_fingerprint = $3
|
||||
LIMIT 100`
|
||||
AND headers.eth_node_fingerprint = $3`
|
||||
err = repo.db.Select(&result, query, startingBlockNumber, checkCount, repo.db.Node.ID)
|
||||
} else {
|
||||
query = `SELECT headers.id, headers.block_number, headers.hash FROM headers
|
||||
@@ -61,8 +60,7 @@ func (repo CheckedHeadersRepository) MissingHeaders(startingBlockNumber, endingB
|
||||
WHERE (header_id ISNULL OR check_count < $3)
|
||||
AND headers.block_number >= $1
|
||||
AND headers.block_number <= $2
|
||||
AND headers.eth_node_fingerprint = $4
|
||||
LIMIT 100`
|
||||
AND headers.eth_node_fingerprint = $4`
|
||||
err = repo.db.Select(&result, query, startingBlockNumber, endingBlockNumber, checkCount, repo.db.Node.ID)
|
||||
}
|
||||
|
||||
|
||||
@@ -170,18 +170,6 @@ var _ = Describe("Checked Headers repository", func() {
|
||||
Expect(nodeTwoMissingHeaders[1].BlockNumber).To(Or(Equal(startingBlockNumber+10), Equal(middleBlockNumber+10), Equal(endingBlockNumber+10)))
|
||||
Expect(nodeTwoMissingHeaders[2].BlockNumber).To(Or(Equal(startingBlockNumber+10), Equal(middleBlockNumber+10), Equal(endingBlockNumber+10)))
|
||||
})
|
||||
|
||||
It("only returns 100 results to prevent blocking log delegation", func() {
|
||||
for n := outOfRangeBlockNumber + 1; n < outOfRangeBlockNumber+100; n++ {
|
||||
_, err := headerRepository.CreateOrUpdateHeader(fakes.GetFakeHeader(n))
|
||||
Expect(err).NotTo(HaveOccurred())
|
||||
}
|
||||
|
||||
missingHeaders, err := repo.MissingHeaders(startingBlockNumber, endingBlockNumber+200, uncheckedCheckCount)
|
||||
|
||||
Expect(err).NotTo(HaveOccurred())
|
||||
Expect(len(missingHeaders)).To(Equal(100))
|
||||
})
|
||||
})
|
||||
|
||||
Describe("when ending block is -1", func() {
|
||||
@@ -252,19 +240,6 @@ var _ = Describe("Checked Headers repository", func() {
|
||||
Expect(nodeTwoMissingHeaders[2].BlockNumber).To(Or(Equal(startingBlockNumber+10), Equal(middleBlockNumber+10), Equal(endingBlockNumber+10), Equal(outOfRangeBlockNumber+10)))
|
||||
Expect(nodeTwoMissingHeaders[3].BlockNumber).To(Or(Equal(startingBlockNumber+10), Equal(middleBlockNumber+10), Equal(endingBlockNumber+10), Equal(outOfRangeBlockNumber+10)))
|
||||
})
|
||||
|
||||
It("only returns 100 results to prevent blocking log delegation", func() {
|
||||
for n := outOfRangeBlockNumber + 1; n < outOfRangeBlockNumber+100; n++ {
|
||||
_, err := headerRepository.CreateOrUpdateHeader(fakes.GetFakeHeader(n))
|
||||
Expect(err).NotTo(HaveOccurred())
|
||||
}
|
||||
|
||||
missingHeaders, err := repo.MissingHeaders(startingBlockNumber, endingBlock, uncheckedCheckCount)
|
||||
|
||||
Expect(err).NotTo(HaveOccurred())
|
||||
Expect(len(missingHeaders)).To(Equal(100))
|
||||
})
|
||||
})
|
||||
|
||||
})
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user