mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-19 18:32:23 +00:00
swarm/storage: measure lazy chunk reader chunk get time
This commit is contained in:
parent
972e699479
commit
72a99531e4
1 changed files with 8 additions and 0 deletions
|
|
@ -22,6 +22,7 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
"sync"
|
"sync"
|
||||||
|
"time"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/metrics"
|
"github.com/ethereum/go-ethereum/metrics"
|
||||||
ch "github.com/ethereum/go-ethereum/swarm/chunk"
|
ch "github.com/ethereum/go-ethereum/swarm/chunk"
|
||||||
|
|
@ -410,10 +411,14 @@ func (r *LazyChunkReader) Size(ctx context.Context, quitC chan bool) (n int64, e
|
||||||
|
|
||||||
log.Debug("lazychunkreader.size", "addr", r.addr)
|
log.Debug("lazychunkreader.size", "addr", r.addr)
|
||||||
if r.chunkData == nil {
|
if r.chunkData == nil {
|
||||||
|
|
||||||
|
startTime := time.Now()
|
||||||
chunkData, err := r.getter.Get(cctx, Reference(r.addr))
|
chunkData, err := r.getter.Get(cctx, Reference(r.addr))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
metrics.GetOrRegisterResettingTimer("lcr.getter.get.err", nil).UpdateSince(startTime)
|
||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
|
metrics.GetOrRegisterResettingTimer("lcr.getter.get", nil).UpdateSince(startTime)
|
||||||
r.chunkData = chunkData
|
r.chunkData = chunkData
|
||||||
s := r.chunkData.Size()
|
s := r.chunkData.Size()
|
||||||
log.Debug("lazychunkreader.size", "key", r.addr, "size", s)
|
log.Debug("lazychunkreader.size", "key", r.addr, "size", s)
|
||||||
|
|
@ -542,8 +547,10 @@ func (r *LazyChunkReader) join(b []byte, off int64, eoff int64, depth int, treeS
|
||||||
wg.Add(1)
|
wg.Add(1)
|
||||||
go func(j int64) {
|
go func(j int64) {
|
||||||
childAddress := chunkData[8+j*r.hashSize : 8+(j+1)*r.hashSize]
|
childAddress := chunkData[8+j*r.hashSize : 8+(j+1)*r.hashSize]
|
||||||
|
startTime := time.Now()
|
||||||
chunkData, err := r.getter.Get(r.ctx, Reference(childAddress))
|
chunkData, err := r.getter.Get(r.ctx, Reference(childAddress))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
metrics.GetOrRegisterResettingTimer("lcr.getter.get.err", nil).UpdateSince(startTime)
|
||||||
log.Debug("lazychunkreader.join", "key", fmt.Sprintf("%x", childAddress), "err", err)
|
log.Debug("lazychunkreader.join", "key", fmt.Sprintf("%x", childAddress), "err", err)
|
||||||
select {
|
select {
|
||||||
case errC <- fmt.Errorf("chunk %v-%v not found; key: %s", off, off+treeSize, fmt.Sprintf("%x", childAddress)):
|
case errC <- fmt.Errorf("chunk %v-%v not found; key: %s", off, off+treeSize, fmt.Sprintf("%x", childAddress)):
|
||||||
|
|
@ -551,6 +558,7 @@ func (r *LazyChunkReader) join(b []byte, off int64, eoff int64, depth int, treeS
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
metrics.GetOrRegisterResettingTimer("lcr.getter.get", nil).UpdateSince(startTime)
|
||||||
if l := len(chunkData); l < 9 {
|
if l := len(chunkData); l < 9 {
|
||||||
select {
|
select {
|
||||||
case errC <- fmt.Errorf("chunk %v-%v incomplete; key: %s, data length %v", off, off+treeSize, fmt.Sprintf("%x", childAddress), l):
|
case errC <- fmt.Errorf("chunk %v-%v incomplete; key: %s, data length %v", off, off+treeSize, fmt.Sprintf("%x", childAddress), l):
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue