cmd/swarm-smoke: add paging to trackChunks (#1464)

* cmd/swarm-smoke: add paging to trackChunks
This commit is contained in:
acud
2019-06-14 10:46:41 +02:00
committed by GitHub
parent 99a431cf50
commit 9704ced894

View File

@ -39,6 +39,8 @@ import (
cli "gopkg.in/urfave/cli.v1"
)
const trackChunksPageSize = 7500
func uploadAndSyncCmd(ctx *cli.Context) error {
// use input seed if it has been set
if inputSeed != 0 {
@ -179,9 +181,20 @@ func trackChunks(testData []byte, submitMetrics bool) error {
func getChunksBitVectorFromHost(client *rpc.Client, addrs []storage.Address) (string, error) {
var hostChunks string
err := client.Call(&hostChunks, "bzz_has", addrs)
if err != nil {
return "", err
for len(addrs) > 0 {
var pageChunks string
// get current page size, so that we avoid a slice out of bounds on the last page
pagesize := trackChunksPageSize
if cap(addrs) < trackChunksPageSize {
pagesize = cap(addrs)
}
err := client.Call(&pageChunks, "bzz_has", addrs[:pagesize])
if err != nil {
return "", err
}
hostChunks += pageChunks
addrs = addrs[pagesize:]
}
return hostChunks, nil