-
Notifications
You must be signed in to change notification settings - Fork 166
Conversation
It seems that |
this will hopefully be handled automatically in tokio 1.0.
628c6fc
to
c5a7666
Compare
I have read the codes, amazing changes has been made from the original 👍 . I have only one doubt now, that is the atomic of the By the way, a senior ruster is more appropriate for the review :). |
To be fair, I had missed this that there was no For GC purposes, I am still thinking that an always-up-to-date set of collectable blocks is the way to go, given how I've understood go-ipfs aims to support this more of a stop the world process, but perhaps I am just naive as I haven't thought this through enough. The always up-to-date set of collectable blocks coupled with an LRU of trees would probably be the best solution, but I am guessing even either of those would work fine. Of course with an "LRU of trees" there's the issue of "which tree" in case a block is referenced from multiple but ... Perhaps a way can be found later on. Also the current method has the issue of the unbounded channel which I had already noted. It's good that you brought this up, I added a bit more of comments in a4515f7.
I think you have a good POV as having now looked into at least leveldb and sled to comment on the matters, just to make sure the direction seems good. If there are any smaller bugs beign created that'd be a great opportunity to enhance the "common pinstore tests" as I've already noted in some FIXMEs. I'll start doing issues for the FIXMEs perhaps next following this PR. |
All right, lets get this in before #446 (not that the update was ready to go). bors r+ |
Build succeeded: |
This PR adds:
get_pinned_mode
TransactionalTree::flush
instead ofDb::flush_async
, see sled pinstore tests deadlock rarely #443spawn_blocking
to do sled operationsCloses #443.