-
Notifications
You must be signed in to change notification settings - Fork 35
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Made a start on asynchronous code #117
Conversation
…nd all connection code, up tho the level of RiakConnection.cs which is STILL BLOCKING. Have NOT ported Batching, as I don't quite understand it! All unit tests pass, but have not tested on a real DB yet.
…ing OK, after fixing some bugs
…ynchronous. Tested with a console app, as I can't get the cluster going on my local machine...
Hi Chris, Thanks very much for all your effort on this. We'll do our best to review your changes over the coming days and get back to you. Cheers |
…e response part was still blocking!
Hi OJ, happy to help :) Just in case you're not aware, I've committed the rest of the code and tested it briefly, so it all appears to work. That is, everything is asynchronous and non-blocking. Chris |
Howdy @chrisleow, we've been sitting on this for two months while we pushed out CorrugatedIron 1.4.0. Now that we're on feature parity with Riak, we're ready to take a look at better async/nonblocking support in CorrugatedIron. After finding some an idle connection bug in our connection pool, we're going to scrap our existing work and put together a new connection pooling implementation that avoids the problems we've run into. Apologies for sitting on this for so long without a yay or nay on our side. Since we're going to be gutting the connections, this merge would be painful. Thank you, though, for putting the work in on it. |
Ok no problem, good luck! |
Thanks for your contribution Chris! Please don't think we've ditched your efforts at all. Much of what you've done has influenced what we're doing with our final implementation. Your name will definitely be included in the credits. Thanks! |
Hi All,
I've made a start on converting all your good work to be fully asynchronous. I've updated the clients (RiakClient, RiakAsyncClient), nodes, endpoints, clusters etc... All unit tests have been updated are working apart from the Async client ones, which I've commented out for now. Integration tests are broken, because of batching.
All the major files should now have method should return "Task<....>", which leads to some pretty long method signatures!
The following has not been done:
I hope we can test against this internal fix-up of the code for asynchronous dev, and then it should be quite easy to convert RiakConnection to be completely non-blocking with some asynchronous socket-fu.