1. 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
  2. 01 Jul, 2020 1 commit
  3. 21 Apr, 2020 1 commit
    • Hannah Howard's avatar
      Add pausing and unpausing of requests (#62) · 79c195c8
      Hannah Howard authored
      * feat(deps): upgrade IPLD prime to last before refactor
      
      * refactor(responsemanager): refactor traversal
      
      switch to iterative traversal that is more amenable to interruption
      
      * feat(peerresponsemanager): add bytes sent to peer response sender
      
      Add a return value to SendResponse in peer response sender to return the number of block bytes
      transmitted. Note: does not count unsent blocks. Also convert block size measurements to uint64
      
      * feat(responsemanager): add response pausing
      
      add first implementation of response pausing in response manager
      
      * refactor(responsemanager): extract classes to simplify response manager
      
      extract hooks as independant functionality
      
      * test(responsemanager): add tests for block hooks and request hooks
      
      * test(graphsync): add pause/resume integration test
      
      * fix(responsemanager): fix directory misname
      
      requesthooks.go directory -> requesthooks
      
      * fix(tests): cleanup races & lint
      
      * test(graphsync): fix flaky test
      79c195c8