Hi Christian,

Tried your suggestion too on 1.7.9, unfortunately it hasn't had any 
influence even though it looked promising.

Regards,
- Ben

On Tuesday, September 23, 2014 8:48:00 AM UTC+2, Christian Laakmann wrote:
>
> Hi all, Luca,
>
> it seems as if you wait for synchronous responses from _all_ available 
> Nodes, even if quorum is set to 0. In 
> ODistributedResponseManager#collectResponse, this code handles the 
> notification of waiting threads after all expected responses have been 
> received.
>
>       if (receivedResponses >= expectedSynchronousResponses && 
> (!waitForLocalNode || receivedCurrentNode)) {
>         if (completed || isMinimumQuorumReached(false)) {
>           // NOTIFY TO THE WAITER THE RESPONSE IS COMPLETE NOW
>           notifyWaiters();
>         }
>       }
>
> My expectation would be, that #isMinimumQuorumReached() were called as 
> part of the first IF, i.e.:
>
>       if (completed 
>       || isMinimumQuorumReached(false) 
>       || (receivedResponses >= expectedSynchronousResponses && 
> (!waitForLocalNode || receivedCurrentNode))) {
>           // NOTIFY TO THE WAITER THE RESPONSE IS COMPLETE NOW
>           notifyWaiters();
>       }
>       
> From my understanding, this would notify the waiting thread that pushed 
> the task as soon as the quorum is reached or all responses from the 
> available nodes have been collected.
>
> Cheers,
> Christian
>
>
> On Tuesday, 23 September 2014 00:58:55 UTC+2, [email protected] wrote:
>>
>> Hi Luca,
>>
>> Since I've been hung out to dry, I've toyed around with the orientdb 
>> sources. I was able to establish that the bottlenecks are indeed 
>> sendRequest and send2Nodes. Removing sleeps in the latest 1.7.9 release 
>> already provided a 50% improvement (From ~1.2sec down to ~0.55sec.). 
>> Clearly we have different views on what is asynchronous. In your methods, 
>> you inarguably wait for a response from the nodes before giving a response 
>> to the client. IMHO asynchronous replication should update the local 
>> database, respond to the client and care about the rest later. I believe 
>> the replication methodology needs a rethink. Whilst in may be suitable to 
>> LAN environments, it is certainly not suitable for WAN. I still wonder if 
>> this is intended or even if it has ever been tested. I see examples with 
>> europe and usa nodes with sharding, etc.. but I can't believe such delays 
>> are accepted or the norm. Other technologies can do it, so should OrientDB.
>>
>> Anyway, enough of my ramblings.... Have a good evening.
>>
>> Regards,
>> - Ben
>>
>

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"OrientDB" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to