You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently, the I/O has to be "serialized" from outside, which defeats the async nature of the I/O to a significant extent; while internally the I/O requests will be going on between multiple peers for every request, the request round-trip must be "outside shielded" (serialized) to prevent concurrent I/O requests.
There are two main reasons for this limitation:
On startup, I/O may begin before Session was completely initialized; this has to do with SocketProactor::IOCompletion running in its own thread. Session constructor should wait for the initial discovery I/O to complete before proceeding and allowing kademlia library I/O operations to be issued.
When I/O is running concurrently, loading values sometimes fails with "value not found" error; this manifest itself as a timeout, but increasing the timeout value does not help it - for some reason, some peers fail to respond with the sought for value; a "stopgap" that fixes this problem is to treat the timed out peers as new ("uncontacted") on such occurrence, but the true underlying reason for it should be further investigated (this problem does not happen when the loading operations are serialized)
The text was updated successfully, but these errors were encountered:
Currently, the I/O has to be "serialized" from outside, which defeats the async nature of the I/O to a significant extent; while internally the I/O requests will be going on between multiple peers for every request, the request round-trip must be "outside shielded" (serialized) to prevent concurrent I/O requests.
There are two main reasons for this limitation:
On startup, I/O may begin before
Session
was completely initialized; this has to do withSocketProactor::IOCompletion
running in its own thread. Session constructor should wait for the initial discovery I/O to complete before proceeding and allowing kademlia library I/O operations to be issued.When I/O is running concurrently, loading values sometimes fails with "value not found" error; this manifest itself as a timeout, but increasing the timeout value does not help it - for some reason, some peers fail to respond with the sought for value; a "stopgap" that fixes this problem is to treat the timed out peers as new ("uncontacted") on such occurrence, but the true underlying reason for it should be further investigated (this problem does not happen when the loading operations are serialized)
The text was updated successfully, but these errors were encountered: