On Tue, Jan 24, 2012 at 9:57 AM, Peter Dijkshoorn
<peter.dijksho...@adyen.com> wrote:
> yeah, well main question remains then, is the node receiving the request
> from the client called the coordinator (even if it is not responsible
> for that key)?

Yes.

> Or will that node forward the call to the first responsible node who
> does the coordinating stuff? (as the cassandra and dynamo paper state)
>
> In case of that forwarding, is the client told to connect to another
> node, or does the node receiving the call act as a proxy?
>
> so, is it a 3-deep or a 2-deep network call?

2-deep (except for counter increments which have a slightly different protocol).

> I want to explain this in a small literature part of my thesis to
> distinguish the internal structure against BigTable and various kinds of
> RDBMS replication schemes, that's why I want to know precisely :)
>
> Thanks,
>
> Peter Dijkshoorn
> Adyen - Payments Made Easy
> www.adyen.com
>
> Visiting Address:                 Mail Address:
> Stationsplein 57 - 4th floor      P.O. Box 10095
> 1012 AB Amsterdam                 1001 EB Amsterdam
> The Netherlands                   The Netherlands
>
> Office +31.20.240.1240
> Email peter.dijksho...@adyen.com
>
>
> On 01/23/2012 06:59 PM, Daniel Doubleday wrote:
>> Ouch :-) you were asking write ...
>>
>> Well kind of similar
>>
>> 1. Coordinator calculates all nodes
>> 2. If not enough (according to CL) nodes are alive it throughs unavailable
>> 3. If nodes are down it writes and hh is enabled it writes a hint for that 
>> row
>> 4. It sends write request to all nodes (including itself / shortcutting 
>> messaging)
>> 5. If it receives enough (according to CL) acks before timeout everything is 
>> fine otherwise it throughs unavailable
>>
>> errm .. I'm more confident in the read path though especially concerning hh 
>> handling so I'm happy to be corrected here. I.e. I'm not sure if hints are 
>> written when request time out but CL is reached.
>>
>> On Jan 23, 2012, at 6:47 PM, Daniel Doubleday wrote:
>>
>>> Your first thought was pretty much correct:
>>>
>>> 1. The node which is called by the client is the coordinator
>>> 2. The coordinator determines the nodes in the ring which can handle the 
>>> request ordered by expected latency (via snitch). The coordinator may or 
>>> may not be part of these nodes
>>> 3. Given the consistency level and read repair chance the coordinator 
>>> calculates the min amount of node to ask and sends read requests to them
>>> 4. As soon as the minimum count (according to consistency) of responses is 
>>> collected the coordinator will respond to the request. Mismatches will lead 
>>> to repair write requests to the corresponding nodes
>>>
>>> Thus the minimal depth is one (CL = 1 and coordinator can handle the 
>>> request itself) or two otherwise.
>>>
>>> Hope that helps
>>>
>>> On Jan 23, 2012, at 4:47 PM, Peter Dijkshoorn wrote:
>>>
>>>> Hi guys,
>>>>
>>>> I got an architectural question about how a write operation flows
>>>> through the nodes.
>>>>
>>>> As far as I understand now, a client sends its write operation to
>>>> whatever node it was set to use and if that node does not contain the
>>>> data for this key K, then this node forwards the operation to the first
>>>> node given by the hash function. This first node having key K then
>>>> contacts the replication nodes depending on the selected consistency level.
>>>>
>>>> This means that in the unlucky event you always have a network call
>>>> sequence depth of 2 (consistency level one), or 3 (assumed that the
>>>> replication nodes are contacted in parallel)
>>>>
>>>> This is more than I expected, so I am not sure whether this is correct?
>>>> can someone help me out?
>>>>
>>>> At first I thought that the receiver was the coordinator, and thus doing
>>>> all further calls in parallel, the depth as described above would always
>>>> be 2. But I just discovered that I was wrong and that it should be
>>>> something like above.
>>>>
>>>> Another possibility would be that the client learnt the layout of the
>>>> cluster at connection time and thereby tries per request to contact the
>>>> coordinator directly, but I never read or see something like this 
>>>> happening.
>>>>
>>>> Remembering the picture of Dean about network and hard disk latencies,
>>>> is this 3-sequential-network-call still faster?
>>>>
>>>> Thanks for any thoughts :)
>>>>
>>>> Peter
>>>>
>>>> --
>>>> Peter Dijkshoorn
>>>> Adyen - Payments Made Easy
>>>> www.adyen.com
>>>>
>>>> Visiting Address:                 Mail Address:
>>>> Stationsplein 57 - 4th floor      P.O. Box 10095
>>>> 1012 AB Amsterdam                 1001 EB Amsterdam
>>>> The Netherlands                   The Netherlands
>>>>
>>>> Office +31.20.240.1240
>>>> Email peter.dijksho...@adyen.com
>>>>

Reply via email to