1. 25 May, 2021 1 commit
  2. 24 May, 2021 1 commit
  3. 22 May, 2021 2 commits
    • Felix Lange's avatar
      rlp: optimize byte array handling (#22924) · 154ca32a
      Felix Lange authored
      This change improves the performance of encoding/decoding [N]byte.
      
          name                     old time/op    new time/op    delta
          DecodeByteArrayStruct-8     336ns ± 0%     246ns ± 0%  -26.98%  (p=0.000 n=9+10)
          EncodeByteArrayStruct-8     225ns ± 1%     148ns ± 1%  -34.12%  (p=0.000 n=10+10)
      
          name                     old alloc/op   new alloc/op   delta
          DecodeByteArrayStruct-8      120B ± 0%       48B ± 0%  -60.00%  (p=0.000 n=10+10)
          EncodeByteArrayStruct-8     0.00B          0.00B          ~     (all equal)
      154ca32a
    • Felix Lange's avatar
      rlp: use atomic.Value for type cache (#22902) · 0d076d92
      Felix Lange authored
      All encoding/decoding operations read the type cache to find the
      writer/decoder function responsible for a type. When analyzing CPU
      profiles of geth during sync, I found that the use of sync.RWMutex in
      cache lookups appears in the profiles. It seems we are running into
      CPU cache contention problems when package rlp is heavily used
      on all CPU cores during sync.
      
      This change makes it use atomic.Value + a writer lock instead of
      sync.RWMutex. In the common case where the typeinfo entry is present in
      the cache, we simply fetch the map and lookup the type.
      0d076d92
  4. 21 May, 2021 5 commits
  5. 20 May, 2021 1 commit
  6. 19 May, 2021 1 commit
    • Péter Szilágyi's avatar
      eth, p2p/msgrate: move peer QoS tracking to its own package and use it for snap (#22876) · 3e795881
      Péter Szilágyi authored
      This change extracts the peer QoS tracking logic from eth/downloader, moving
      it into the new package p2p/msgrate. The job of msgrate.Tracker is determining
      suitable timeout values and request sizes per peer.
      
      The snap sync scheduler now uses msgrate.Tracker instead of the hard-coded 15s
      timeout. This should make the sync work better on network links with high latency.
      3e795881
  7. 18 May, 2021 5 commits
  8. 17 May, 2021 5 commits
  9. 12 May, 2021 2 commits
  10. 11 May, 2021 5 commits
  11. 10 May, 2021 5 commits
  12. 07 May, 2021 5 commits
  13. 06 May, 2021 2 commits