1. 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
  2. 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
  3. 13 Aug, 2020 1 commit
    • Hannah Howard's avatar
      Dedup by key extension (#83) · 8e600425
      Hannah Howard authored
      * feat(responsemanager): dedup-by-key extension
      
      add deduping requests by a given key to the response manager
      
      * feat(requestmanager): use dedup extension
      
      use dedup extension to not dedup data across stores
      8e600425
  4. 04 Aug, 2020 1 commit
    • Hannah Howard's avatar
      Release infrastructure (#81) · 7dbe280c
      Hannah Howard authored
      * style(imports): fix import formatting
      
      Fix import formatting via script. Also add script for import fixes and release log
      
      * docs(CHANGELOG): add changelog, contributing
      
      Add the changelog and a contributing guidelines doc
      7dbe280c
  5. 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
  6. 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
  7. 21 Apr, 2020 3 commits
    • Hannah Howard's avatar
    • Hannah Howard's avatar
      Update Requests (#63) · 9ada784d
      Hannah Howard authored
      * feat(graphsync): add update to message
      
      add update to message protobuf. also fix deserialization error with cancel requests
      
      * feat(requestmanager): support updates for response hooks
      
      Support sending request updates in incoming response hooks. Also factor hooks out of request manager
      
      * refactor(hooks): make hooks approach consistent
      
      for ease of use and learning in library, make hooks structure consistent across requestor and
      responder
      
      * feat(responsemanager): update request processing
      
      Add the ability to processing update requests as needed
      
      * test(responsemanager): add more tests for update behavior
      
      * test(integration):add update integration test
      
      Add test to verify the whole update flow
      
      * fix(lint): fix lint error
      9ada784d
    • 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
  8. 23 Mar, 2020 1 commit
  9. 20 Mar, 2020 1 commit
  10. 02 Dec, 2019 1 commit
  11. 11 Nov, 2019 1 commit
    • hannahhoward's avatar
      refactor(graphsync): refactor file organization · 170951f1
      hannahhoward authored
      To reduce future import cycles, and expose more types properly, move the root package to an
      interface/types file and move the main implementation into /impl. This also exposes an interface
      other implementers can replace.
      170951f1
  12. 03 Sep, 2019 1 commit
  13. 23 Jul, 2019 1 commit
  14. 19 Apr, 2019 4 commits