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. 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. 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
  4. 31 Jul, 2020 1 commit
  5. 15 Jul, 2020 2 commits
  6. 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
  7. 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
  8. 27 May, 2020 1 commit
    • 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
  9. 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
  10. 08 Apr, 2020 1 commit
    • Hannah Howard's avatar
      Outgoing Request Hooks, swapping persistence layers (#61) · e1a98fc6
      Hannah Howard authored
      * feat(graphsync): define hook interfaces, test infrastructure
      
      rename hooks, add outgoing request hook, define chain types for node builder chooser tests
      
      * feat(graphsync): define persistence option
      
      add persistence options to asyncloader & responsemanager + handling
      
      * feat(graphsync): complete persistence / node builder chooser roundtrip
      
      * fix(lint): fix lint errors
      e1a98fc6
  11. 02 Apr, 2020 1 commit
    • Hannah Howard's avatar
      Option to Reject requests by default (#58) · 67606650
      Hannah Howard authored
      * refactor(hooks): refactor default validation as hook, add unregister option
      
      * feat(graphsync): add disable default validation option
      
      * fix(responsemanager): fix mutex  unlocking
      
      cover case where unlocking was not happening
      67606650
  12. 23 Mar, 2020 3 commits
  13. 20 Mar, 2020 1 commit
  14. 03 Dec, 2019 4 commits
  15. 02 Dec, 2019 2 commits
  16. 18 Nov, 2019 1 commit
  17. 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
  18. 30 Jul, 2019 1 commit
  19. 23 Jul, 2019 1 commit
  20. 20 Jul, 2019 1 commit
  21. 11 Jun, 2019 1 commit
  22. 10 May, 2019 1 commit
  23. 19 Apr, 2019 6 commits