<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body><div>On Wed, Apr 22, 2015, at 02:27 PM, Ciro Iriarte wrote:<br></div>
<blockquote type="cite"><p dir="ltr">Interesting, is the use of several instances needed because cyrus cannot scale with threads in a single instance scenario?<br></p></blockquote><div dir="ltr" class="">There are two interesting reasons:<br></div>
<div dir="ltr" class="">&nbsp;</div>
<div dir="ltr" class="">1) global locks.&nbsp; There are some - mailboxes.db for example.&nbsp; If you have multiple instances on a single machine, then a lock never blocks up the entire machine.<br></div>
<div dir="ltr" class="">&nbsp;</div>
<div dir="ltr" class="">2) replication and load spreading - right now there's no support for "partial replica" - a Cyrus instance replicates every mailbox to its replica.<br></div>
<div dir="ltr" class="">&nbsp;</div>
<div dir="ltr" class="">The second one is the kicker.<br></div>
<div dir="ltr" class="">&nbsp;</div>
<div dir="ltr" class="">If we replicated everything from one machine to another machine, then we'd have 100% user load on one machine and nothing on the other - not efficient use of resources, because the second one needs to have the capacity to run at 100% in a failover situation too.<br></div>
<div dir="ltr" class="">&nbsp;</div>
<div dir="ltr" class="">Our first thought was to run two instances per machine and pair them - so there was a master on one and a replica on the other.&nbsp; At least then we're running equally in the general situation, and only in a failover situation are we loaded 100%.&nbsp; But it's still nasty - you go from 50% load to 100% load.<br></div>
<div dir="ltr" class="">&nbsp;</div>
<div dir="ltr" class="">So we have about 10 different replicas for each machine, and every machine is running at 50% capacity.&nbsp; If we need to take one machine down, then 10 other machines run at 55% capacity instead for that time.&nbsp; The load change is much less.<br></div>
<div dir="ltr" class="">&nbsp;</div>
<div dir="ltr" class="">(as of about a year ago, we're fully paired odd-host-number to even-host-number, and odd and even are in different cabinets, so we can shut down an entire cabinet by raising the load on its replicas)<br></div>
<div dir="ltr" class="">&nbsp;</div>
<div dir="ltr" class="">Bron.<br></div>
<div dir="ltr" class="">&nbsp;</div>
<div dir="ltr" class="">--<br></div>
<div id="sig567075"><div class="signature">Bron Gondwana<br></div>
<div class="signature">brong@fastmail.fm<br></div>
<div class="signature">&nbsp;</div>
</div>
<div>&nbsp;</div>
</body>
</html>