You'll want to run protobufs if you're looking to optimize your
response time; HTTP sockets (even to localhost) will require much more
overhead and time.
Even better would be unix sockets if they're available, and you can
bypass the whole TCP stack.

I would go A over B.  Less thrash, more control, better ACL/security
but it is slightly slower (probably a few ms per request.)
How optimized do you care about?  Is an extra 100ms (random number)
too much to give up?

-mox

On Tue, Oct 4, 2011 at 2:04 PM, O'Brien-Strain, Eamonn
<eamonn.obrien-str...@hp.com> wrote:
> I am contemplating two different architectures for deploying Riak nodes and 
> web servers.
>
> Option A:  Riak nodes are in their own cluster of dedicated machines behind a 
> load balancer.  Web servers talk to the Riak nodes via the load balancer. 
> (See diagram http://eamonn.org/i/riak-arch-A.png )
>
> Option B: Each web server machine also has a Riak node, and there are also 
> some Riak-only machines.  Each web server only talks to its own localhost 
> Riak node. (See diagram http://eamonn.org/i/riak-arch-B.png )
>
>
> All machines will deployed as elastic cloud instances.  I will want to spin 
> up and spin down instances, particularly the web servers, as demand varies.  
> Both load balancers are non-sticky.  Web servers are currently talking to 
> Riak via HTTP (though might change that to protocol buffers in the future).  
> Currently Riak is configured with the default options.
>
> Here is my thinking of the comparative advantages:
>
> Option A:
>
>  - Better for security, because can lock down the Riak load balancer to only 
> open a single port and only for connections from the web servers.
>  - Less churn for Riak of nodes entering and leaving the Riak cluster (as web 
> servers spin up and down)
>  - More flexibility in scaling storage and web tiers independently of each 
> other
>
> Option B:
>
>  - Faster localhost connection from web server to Riak
>
> I think availability is similar for the two options.
>
> The web server response time is the primary metric I want to optimize.  Most 
> web server requests will cause several requests to Riak.
>
> What other factors should I take into account?  What measurements could I 
> make to help me decide between the architectures?  Are there other 
> architectures I should consider? Should I add memcached? Does anyone have any 
> experiences they could share in deploying such systems?
>
> Thanks.
> __
> Eamonn
>
> _______________________________________________
> riak-users mailing list
> riak-users@lists.basho.com
> http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
>

_______________________________________________
riak-users mailing list
riak-users@lists.basho.com
http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com

Reply via email to