|
Zimbra - Blog - Scaling up Zimbra by dmv at 10:05 pm EDT, Apr 21, 2006 |
While it's fair to say that we are still working on hardening, Zimbra was designed from the ground up for such scale. The Zimbra architecture inherits from distributed systems expertise that was gleaned building messaging systems that today host many millions of mailboxes world-wide and Java systems that have thousands of production server CPUs within single large Telco deployments. Of paramount importance to scaling is partitioning. Partitioning leverages "locality of reference" for both processing and data---if certain servers can be specialized to solve some subset of the bigger problem, then the essential code and data are more likely already to be in memory or close at hand on fast disk.
Nice review of the principles of scaling VLIS. |
|
RE: Zimbra - Blog - Scaling up Zimbra by Lost at 4:37 am EDT, Apr 22, 2006 |
dmv wrote: While it's fair to say that we are still working on hardening, Zimbra was designed from the ground up for such scale. The Zimbra architecture inherits from distributed systems expertise that was gleaned building messaging systems that today host many millions of mailboxes world-wide and Java systems that have thousands of production server CPUs within single large Telco deployments. Of paramount importance to scaling is partitioning. Partitioning leverages "locality of reference" for both processing and data---if certain servers can be specialized to solve some subset of the bigger problem, then the essential code and data are more likely already to be in memory or close at hand on fast disk.
Nice review of the principles of scaling VLIS.
dmv, your links kick my ass all over the place. You're my new favorite person. |
|
Scaling up Zimbra by Lost at 2:41 am EDT, Apr 23, 2006 |
Of paramount importance to scaling is partitioning. Partitioning leverages "locality of reference" for both processing and data---if certain servers can be specialized to solve some subset of the bigger problem, then the essential code and data are more likely already to be in memory or close at hand on fast disk. Partitioning techniques include the "vertical" partitioning of functional tasks and the "horizontal" partitioning of data and the associated processing (more below). Partitioning is augmented by other well-honed distributed systems techniques like automated replication, data dependent routing, load balancing, and failover. Overall, these techniques have proven (e.g., Google, Yahoo!, Amazon, etc.) to scale well beyond the reach of more centralized architectures that, say, rely on stateless processing and a single very-large database.
|
|
|