1. 30 Aug, 2021 1 commit
  2. 22 Aug, 2021 1 commit
  3. 01 Apr, 2021 1 commit
  4. 12 Nov, 2020 1 commit
  5. 08 Jun, 2020 1 commit
  6. 02 May, 2020 1 commit
  7. 27 Apr, 2020 1 commit
  8. 21 Apr, 2020 1 commit
    • Steven Allen's avatar
      fix: minimize time holding wantlist lock (#361) · 9fc4a368
      Steven Allen authored
      * fix: minimize time holding wantlist lock
      
      Instead of holding the lock the entire time we prepare a message, hold the lock
      while we retrieve the wantlist entries, process the entries without the lock,
      retake the lock, then mark entries as sent.
      
      This means:
      
      1. We never sort entries while holding the lock.
      2. We allocate exactly three times while holding the lock (once per entry list).
      
      * fix: address code review
      9fc4a368
  9. 23 Mar, 2020 2 commits
  10. 16 Mar, 2020 1 commit
  11. 13 Mar, 2020 1 commit
  12. 10 Mar, 2020 1 commit
  13. 06 Mar, 2020 2 commits
  14. 02 Mar, 2020 1 commit
  15. 17 Feb, 2020 2 commits
  16. 13 Feb, 2020 1 commit
    • Steven Allen's avatar
      feat: debounce wants manually · 777c0d9a
      Steven Allen authored
      This:
      
      * Makes it easy to send immediately if we wait too long and/or if we have enough
      to send.
      * Is significantly more efficient than the debounce library as it doesn't spin
      off a bunch of "after" timers.
      
      fixes #245
      777c0d9a
  17. 12 Feb, 2020 1 commit
  18. 10 Feb, 2020 1 commit
  19. 30 Jan, 2020 2 commits
  20. 16 Dec, 2019 1 commit
  21. 09 Dec, 2019 1 commit
  22. 05 Dec, 2019 2 commits
  23. 15 Oct, 2019 1 commit
  24. 02 Oct, 2019 1 commit
  25. 01 Oct, 2019 1 commit
  26. 24 Sep, 2019 4 commits
  27. 07 Sep, 2019 1 commit
    • Steven Allen's avatar
      engine: tag peers based on usefulness · 9d580a65
      Steven Allen authored
      This patch tracks two usefulness metrics: short-term usefulness and long-term
      usefulness. Short-term usefulness is sampled frequently and highly weights new
      observations. Long-term usefulness is sampled less frequently and highly weights
      on long-term trends.
      
      In practice, we do this by keeping two EWMAs. If we see an interaction within
      the sampling period, we record the score, otherwise, we record a 0. The
      short-term one has a high alpha and is sampled every shortTerm period. The
      long-term one has a low alpha and is sampled every longTermRatio*shortTerm
      period.
      
      To calculate the final score, we sum the short-term and long-term scores then
      adjust it ±25% based on our debt ratio. Peers that have historically been more
      useful to us than we are to them get the highest score.
      9d580a65
  28. 14 Aug, 2019 1 commit
  29. 03 Jul, 2019 1 commit
  30. 02 Jul, 2019 1 commit
  31. 14 Jun, 2019 1 commit
  32. 12 Jun, 2019 1 commit