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. 23 Sep, 2020 1 commit
    • Eric Myhre's avatar
      Update go-ipld-prime@v0.5.0 (#92) · a0cc6f06
      Eric Myhre authored
      * Update go-ipld-prime@v0.5.0
      
      Simultaneously updates go-ipld-prime-proto, which also has changes to
      match that version of go-ipld-prime.
      
      * feat(deps): update ipld-prime near master
      
      update to lastest needed sha for filecoin, reinstitute generated node tests
      
      * feat(deps): update go-ipld-prime-prot
      Co-authored-by: default avatarhannahhoward <hannah@hannahhoward.net>
      a0cc6f06
  4. 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
  5. 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
  6. 31 Jul, 2020 1 commit
  7. 15 Jul, 2020 2 commits
  8. 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
  9. 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
  10. 01 Jul, 2020 1 commit
  11. 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
  12. 28 Apr, 2020 1 commit
    • Hannah Howard's avatar
      Update of IPLD Prime (#66) · 6e4ddab1
      Hannah Howard authored
      * Updating go-ipld-prime to NodeAssembler era.
      
      The 'testutil/chaintypes' codegen is currently dropped, and I ported
      the testchain fixtures to using basicnode instead.  We can restore this
      to using codegen soon, but it's easier to complete this set of changes
      by temporarily switching to using basicnode.
      
      Tests using 'NewUnencodableSelectorSpec' were discarded -- this more or
      less exercised what would happen if an uninitialized zero value got
      into a program, and this is now happily statically impossible.
      
      Some tests are not passing; have not sussed yet.
      
      * fix(deps): upgrade ipld-prime with bug fix
      
      use ipld prime with fixed marshalling bug to get tests passing
      
      * fix(lint): fix lint error
      Co-authored-by: default avatarEric Myhre <hash@exultant.us>
      6e4ddab1
  13. 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
  14. 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
  15. 02 Apr, 2020 2 commits
    • 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
    • Hannah Howard's avatar
      Testify refactor (#56) · b3cc648d
      Hannah Howard authored
      * refactor(tests): introduce testify
      
      Introduce testify, cleanup lots of tests, add channel assertions to simplify channel tests, make
      more readable
      
      * refactor(tests): clean up error messages
      
      * fix(deps): remove bitswap
      
      remove accidentally added bitswap
      
      * refactor(tests): put expected in correct position
      
      Make sure for require.equal that the expected value is the first value
      b3cc648d
  16. 27 Mar, 2020 1 commit
    • Hannah Howard's avatar
      Switch To Circle CI (#57) · bd3f4b47
      Hannah Howard authored
      * ci(circle): switch to circle
      
      Use configs from bitswap
      
      * fix(deps): update and standardize
      
      * fix(lint): fix lint errors
      
      * fix(tests): relax timings for context cancels
      
      Since we are not relying on context cancellation as anything but a test failsafe, relax timings
      significantly for slower machines
      
      * fix(test): fix minor test error
      
      * fix(tests): minor timing fix
      
      * fix(lint): fix lint errors
      
      * fix(tests): relax timings for context cancels
      
      Since we are not relying on context cancellation as anything but a test failsafe, relax timings
      bd3f4b47
  17. 23 Mar, 2020 5 commits
  18. 20 Mar, 2020 1 commit
  19. 03 Dec, 2019 5 commits
  20. 02 Dec, 2019 2 commits
  21. 19 Nov, 2019 1 commit
  22. 18 Nov, 2019 1 commit
  23. 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