Connecting to a single host vs balancing requests

Lukas J. Dickie lukas.dickie at gimigo.com
Wed Oct 8 13:52:18 EDT 2014


Hi Geoff,

It may not even be a logic issue.  "Higher up" management may not fully 
understand Riak.  Might I suggest while listening to their reasons, pay 
close attention to whether they are approaching Riak configuration with 
an older thought process (i.e. "this is how we did it in the past, so 
this is how we're going forward").

One could explain your situation like this:

You're at the airport and ready to fly out along with thousands of other 
people.  You and every other flyer approach a security gate checkpoint 
with 10 screening lanes available.  At each of these screen lanes there 
are agents waiting to push scores of passengers through.  Now suppose 
out of all of those available screening lanes, only a single screening 
lane was being utilized to receive and screen flyers, one by one.  The 
other screening lanes are just sitting there with agents ready at hand, 
but not being utilized. You can push through all of those passengers 
waiting to fly... but at a terrible cost.

Cars are designed to drive forward, not sideways.  Riak is designed to 
balance load, obtain maximum efficiency, and sustain operation during 
one or more node interruption.

-Lukas


On 10/8/14, 9:00 AM, riak-users-request at lists.basho.com wrote:
> Send riak-users mailing list submissions to
> 	riak-users at lists.basho.com
>
> To subscribe or unsubscribe via the World Wide Web, visit
> 	http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
> or, via email, send a message with subject or body 'help' to
> 	riak-users-request at lists.basho.com
>
> You can reach the person managing the list at
> 	riak-users-owner at lists.basho.com
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of riak-users digest..."
>
>
> Today's Topics:
>
>     1. Re: Connecting to a single host vs balancing requests
>        (Geoff Garbers)
>     2. Re: Connecting to a single host vs balancing requests (John Daily)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Wed, 8 Oct 2014 07:03:51 +0200
> From: Geoff Garbers <geoff at totalsend.com>
> To: Sargun Dhillon <sargun at sargun.me>
> Cc: "riak-users at lists.basho.com" <riak-users at lists.basho.com>
> Subject: Re: Connecting to a single host vs balancing requests
> Message-ID:
> 	<CAAeH1ddKLRLkpV40XjAs-ZS_YuUCQS_xNRKc6XoAMN7x6QkONw at mail.gmail.com>
> Content-Type: text/plain; charset=UTF-8
>
> Nope, the reads will be randomly distributed through the other four
> nodes (riak2 through to riak5 - selected from within a hard-coded list
> of host names).
>
> I sincerely doubt our workload would require some sort of complicated
> workload set-up. As for your question as to why I'm doing this - I
> don't want to.
>
> This decision has been made higher up, but I don't agree with it. I'm
> wanting to gather as much information as possible & understand as much
> as possible before I motivate for why it's a bad idea.
>
> The biggest pitfall of this (in my opinion) is that should riak1 go
> down (even for maintenance), we're unable to write without first
> updating our code to point to another riak host.
>
> Thanks for the feedback. Much appreciated :)
>
>
>
> Geoffrey Garbers
> Senior Developer
>
>
> Cell: +27 (0)766 476 920
> Skype: geoff.garbers
> geoff at totalsend.com
> www.totalsend.com
>
>   +1 347-431-0494
>   +44 (0)203 519 1082
>   +61 (0)3 9111 5760
>   +27 (0)21 200 6981
>
>
> On Tue, Oct 7, 2014 at 11:49 AM, Sargun Dhillon <sargun at sargun.me> wrote:
>> When you do read / modify / writes, are you also planning on sending
>> the relevant read through one node only? In that case, your update
>> latency might suffer if the egress queues of your designated node get
>> backed up on writes, waiting for a very low cost read query.
>>
>> You're more likely to get awkward load on riak1, and the vnodes that
>> that node hosts are going to suffer as a result. Although, you may not
>> see that in the common case where n=3, and r=quorum, (r=2), but if
>> another vnode in a preflist is degraded, it's likely to be
>> problematic.
>>
>> There are potential performance benefits given some very specific
>> workloads where you can sacrifice a node, or alternatively you can
>> configure Riak not to put any vnodes on that node, but these are
>> advanced options that are not for the faint of heart.
>>
>> My question would be why are you doing this?
>>
>> P.S. The way you asked your question of the list is fine.
>>
>> On Tue, Oct 7, 2014 at 2:09 AM, Geoff Garbers <geoff at totalsend.com> wrote:
>>> Hi all.
>>>
>>> Apologies if I'm not using the mailing list correctly - this is the
>>> first time I'm posting to a mailing list.
>>>
>>> We're in the process of redeveloping our systems using Riak, and will
>>> be using five nodes initially. Let's call these nodes riak1 through to
>>> riak5. Our read/write/delete distribution is weighted more towards
>>> reads than writes, with few deletes (if I have to hazard a guess, I
>>> would say 60/35/5 read/write/deletes).
>>>
>>> A technical decision has been made to ensure that all writes are sent
>>> to riak1, and all reads are done from riak2 through riak5. The read
>>> hosts are selected completely at random.
>>>
>>> Apart from the obvious write availability concern, is there any
>>> performance benefit or penalty to be had from writing to a specific
>>> node, and reading from the rest? I haven't been able to perform a test
>>> on this myself, so any input from the community would be appreciated
>>> for the time being.
>>>
>>> Thanks in advance,
>>> Geoff
>>>
>>> _______________________________________________
>>> riak-users mailing list
>>> riak-users at lists.basho.com
>>> http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
>
>
> ------------------------------
>
> Message: 2
> Date: Wed, 8 Oct 2014 09:07:11 -0400
> From: John Daily <jdaily at basho.com>
> To: Geoff Garbers <geoff at totalsend.com>
> Cc: "riak-users at lists.basho.com" <riak-users at lists.basho.com>
> Subject: Re: Connecting to a single host vs balancing requests
> Message-ID:
> 	<CABPjnfU-5srfsyyXqB7647_i4Ud5SM5sYGds+8UYAvzchYw8Kw at mail.gmail.com>
> Content-Type: text/plain; charset="utf-8"
>
> If you can help us what goal is trying to be achieved by taking that
> approach, perhaps we can refute the logic (or find a better solution). It
> sounds suspiciously like someone is trying to avoid the complexities of
> siblings and conflict resolution (a goal which your architecture doesn't
> actually achieve).
>
> If the argument can't be won, at least use a load balancer (software like
> haproxy would do fine) in front of riak1 for writes so that you can
> redirect traffic in the case of a node failure.
>
> However, seriously, if your company is willing to sacrifice write
> availability, Riak probably isn't the best choice. Riak's tradeoffs are
> oriented around making certain it remains available even with network and
> server failures; if you don't need high availability, making those
> tradeoffs is usually not worth the trouble.
>
> -John
>
>
>
> On Wed, Oct 8, 2014 at 1:03 AM, Geoff Garbers <geoff at totalsend.com> wrote:
>
>> Nope, the reads will be randomly distributed through the other four
>> nodes (riak2 through to riak5 - selected from within a hard-coded list
>> of host names).
>>
>> I sincerely doubt our workload would require some sort of complicated
>> workload set-up. As for your question as to why I'm doing this - I
>> don't want to.
>>
>> This decision has been made higher up, but I don't agree with it. I'm
>> wanting to gather as much information as possible & understand as much
>> as possible before I motivate for why it's a bad idea.
>>
>> The biggest pitfall of this (in my opinion) is that should riak1 go
>> down (even for maintenance), we're unable to write without first
>> updating our code to point to another riak host.
>>
>> Thanks for the feedback. Much appreciated :)
>>
>>
>>
>> Geoffrey Garbers
>> Senior Developer
>>
>>
>> Cell: +27 (0)766 476 920
>> Skype: geoff.garbers
>> geoff at totalsend.com
>> www.totalsend.com
>>
>>   +1 347-431-0494
>>   +44 (0)203 519 1082
>>   +61 (0)3 9111 5760
>>   +27 (0)21 200 6981
>>
>>
>> On Tue, Oct 7, 2014 at 11:49 AM, Sargun Dhillon <sargun at sargun.me> wrote:
>>> When you do read / modify / writes, are you also planning on sending
>>> the relevant read through one node only? In that case, your update
>>> latency might suffer if the egress queues of your designated node get
>>> backed up on writes, waiting for a very low cost read query.
>>>
>>> You're more likely to get awkward load on riak1, and the vnodes that
>>> that node hosts are going to suffer as a result. Although, you may not
>>> see that in the common case where n=3, and r=quorum, (r=2), but if
>>> another vnode in a preflist is degraded, it's likely to be
>>> problematic.
>>>
>>> There are potential performance benefits given some very specific
>>> workloads where you can sacrifice a node, or alternatively you can
>>> configure Riak not to put any vnodes on that node, but these are
>>> advanced options that are not for the faint of heart.
>>>
>>> My question would be why are you doing this?
>>>
>>> P.S. The way you asked your question of the list is fine.
>>>
>>> On Tue, Oct 7, 2014 at 2:09 AM, Geoff Garbers <geoff at totalsend.com>
>> wrote:
>>>> Hi all.
>>>>
>>>> Apologies if I'm not using the mailing list correctly - this is the
>>>> first time I'm posting to a mailing list.
>>>>
>>>> We're in the process of redeveloping our systems using Riak, and will
>>>> be using five nodes initially. Let's call these nodes riak1 through to
>>>> riak5. Our read/write/delete distribution is weighted more towards
>>>> reads than writes, with few deletes (if I have to hazard a guess, I
>>>> would say 60/35/5 read/write/deletes).
>>>>
>>>> A technical decision has been made to ensure that all writes are sent
>>>> to riak1, and all reads are done from riak2 through riak5. The read
>>>> hosts are selected completely at random.
>>>>
>>>> Apart from the obvious write availability concern, is there any
>>>> performance benefit or penalty to be had from writing to a specific
>>>> node, and reading from the rest? I haven't been able to perform a test
>>>> on this myself, so any input from the community would be appreciated
>>>> for the time being.
>>>>
>>>> Thanks in advance,
>>>> Geoff
>>>>
>>>> _______________________________________________
>>>> riak-users mailing list
>>>> riak-users at lists.basho.com
>>>> http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
>> _______________________________________________
>> riak-users mailing list
>> riak-users at lists.basho.com
>> http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
>>
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: <http://lists.basho.com/pipermail/riak-users_lists.basho.com/attachments/20141008/f92841a3/attachment-0001.html>
>
> ------------------------------
>
> Subject: Digest Footer
>
> _______________________________________________
> riak-users mailing list
> riak-users at lists.basho.com
> http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
>
>
> ------------------------------
>
> End of riak-users Digest, Vol 63, Issue 7
> *****************************************





More information about the riak-users mailing list