1. 27 Oct, 2020 1 commit
    • Hannah Howard's avatar
      Add allocator for memory backpressure (#108) · 034465b7
      Hannah Howard authored
      * test(benchmarks): add large file tests
      
      add tests of large file processing to benchmarks
      
      * feat(allocator): add allocator for memory backpressure
      
      add an allocator that manages global memory allocations on responder and blocks peerresponsesenders
      as needed
      
      * feat(allocator): add method to release all peer memory
      
      * feat(allocator): refactor w/ mutex
      
      refactor allocator to remove go routine and address a few PR comments
      
      * Update responsemanager/allocator/allocator.go
      Co-authored-by: default avatarSteven Allen <steven@stebalien.com>
      
      * fix(impl): update constants in readable form
      Co-authored-by: default avatarSteven Allen <steven@stebalien.com>
      034465b7
  2. 26 Oct, 2020 1 commit
    • Hannah Howard's avatar
      Shutdown notifications go routines (#109) · ea899f5d
      Hannah Howard authored
      * test(benchmarks): add benchmark for go routine leak
      
      * fix(notifications): shutdown notification queues
      
      make sure all notification publishers are actually shut down, and don't start them automatically
      ea899f5d
  3. 16 Oct, 2020 1 commit
    • Hannah Howard's avatar
      Switch to google protobuf generator (#105) · 536970d8
      Hannah Howard authored
      * feat(message): switch to google protobuf
      
      after tracking down an error in Unmarshal code generate by gogoprotobuf, and verifying this is a
      bug in the library, which appears unmaintained, try switching to google's own golang protobuf tools
      
      * fix(message): upgrade msgio
      
      resolve bad message strings
      
      * feat(message): initialize empty extensions
      
      Initialize extensions to map if nil
      536970d8
  4. 14 Oct, 2020 3 commits
  5. 13 Oct, 2020 1 commit
    • Hannah Howard's avatar
      Track actual network operations in a response (#102) · dd6fa459
      Hannah Howard authored
      * feat(notifications): build notifications architecture
      
      build an architecture via which we can pass on notifications
      
      * feat(peerresponsesender): add notifications
      
      pass notifications on from peer response sender based on message queue notifications
      
      * feat(responsemanager): handle network errors
      
      Pass on network errors through the response manager, pass block sent errors as well
      
      * fix(notifications): send unique notifications by peer
      
      * feat(responsemanager): subscriber per request
      
      * Revert "fix(notifications): send unique notifications by peer"
      
      This reverts commit 7bf368a05d14229b7523cb25068681d9c7e48246.
      dd6fa459
  6. 12 Oct, 2020 1 commit
  7. 24 Sep, 2020 3 commits
  8. 23 Sep, 2020 4 commits
  9. 22 Sep, 2020 1 commit
  10. 17 Sep, 2020 2 commits
  11. 10 Sep, 2020 1 commit
  12. 29 Aug, 2020 1 commit
  13. 28 Aug, 2020 2 commits
  14. 13 Aug, 2020 4 commits
  15. 04 Aug, 2020 2 commits
  16. 31 Jul, 2020 1 commit
  17. 30 Jul, 2020 1 commit
  18. 15 Jul, 2020 3 commits
  19. 08 Jul, 2020 1 commit
    • Hannah Howard's avatar
      All changes to date including pause requests & start paused, along with new... · caa872f6
      Hannah Howard authored
      All changes to date including pause requests & start paused, along with new adds for cleanups and checking of execution (#75)
      
      * WIP
      
      * feat(graphsync): pause/unpause requests
      
      Allow graphsync requests to be paused and unpaused via request cancelling and DoNotSendCIDs
      extension
      
      * fix(requestmanager): refactor executor
      
      remove extraneous allocation of closure functions
      
      * feat(graphsync): support external request pauses
      
      allow pausing requests imperatively via PauseRequest function
      
      * fix(lint): fix lint errors
      
      * feat(responsemanager): start requests paused
      
      add the ability for a hook to pause a response right when it's first received
      
      * feat(responsemanager): improve cancellation UX
      
      provide a mechanism for responders to learn a requestor cancelled a request and for requestors to
      learn a request was cancelled
      
      * feat(requestmanager): process request cancelled status
      
      process the responder returning a request cancelled error code and also support sentinel errors
      
      * feat(executor): refactor to remove loader
      
      remove loader, also only fire restart request as needed
      
      * fix(asyncloader): load requests synchronously when possible
      
      * fix(responsemanager): fix external pause
      
      Fix external pauses missing a block
      
      * fix(responsemanager): do not delay complete listener
      
      Run complete listener in same thread as response processing, making it less susceptable to
      interruption via cancel
      
      * fix(responsemanager): fix context check
      
      fix checking for context cancellation errors based off of the way ipld-prime does not wrap errors
      
      * fix(responsemanager): more precise cancel
      
      make cancels only get recorded if actual blocks are not sent -- otherwise the request is considered
      complete -- and the complete hook always runs
      
      * fix(requestmanager): handle non processed pauses
      
      Handler the case where a pause is requested but never actually takes place
      
      * refactor(responsemanager): handle cancels, correctly this time
      
      Properly handle cancels for both paused and unpaused states
      
      * fix(errors): remove regex cause it appears to be very slow
      
      * fix(traverser): fix race condition for shutdown
      
      make sure that the traverser is finished in the request executor
      
      * fix(deps): mod tidy
      
      * fix(executor): add back network error
      caa872f6
  20. 02 Jul, 2020 1 commit
    • Hannah Howard's avatar
      More fine grained response controls (#71) · 0e230853
      Hannah Howard authored
      * feat(responsemanager): add ability to pause response outside of a hook
      
      Add the ability for anyone who knows a requestID & peer to pause a response at any time
      
      * feat(responsemanager): add direct cancellations
      
      add function to directly cancel responses from requestID. also, move query execution code to
      seperate struct, internal for now
      
      * fix(responsemanager): minor heap allocation optimization
      
      * feat(responsemanager): support extensions on resume
      
      Support sending extensions when resuming a request
      
      * fix(lint): fix lint errors
      0e230853
  21. 01 Jul, 2020 1 commit
  22. 27 May, 2020 2 commits
    • Hannah Howard's avatar
      feat(graphsync): implement do-no-send-cids extension (#69) · ea953565
      Hannah Howard authored
      Provides full implementation of do-no-send-cids on responder side
      ea953565
    • Hannah Howard's avatar
      Incoming Block Hooks (#68) · 430b4dc6
      Hannah Howard authored
      * feat(graphsync): add incoming block hook types
      
      add types (not implemented) for incoming block hook
      
      * feat(asyncloader): identify local loads
      
      add a boolean value to AsyncLoadResult to determine if a request load was local
      
      * fixup! feat(graphsync): add incoming block hook types
      
      * feat(hooks): add block hooks plumbing
      
      * feat(requestmanager): process block hooks
      
      Process block hooks on each block, and connect last response to blocks
      
      * feat(peerresponsemanager): add transactions
      
      add the ability to do multple response operations with a gaurantee they will end up in a single
      response
      
      * refactor(lint): fix lint errors
      430b4dc6
  23. 04 May, 2020 2 commits