Title: Re: piler scalability

Hi Janos

In the model you propose, how is data provisioned/deprovisioned
in a multitenant environment? Are you keeping the per client
db and per client storage model changes you started implementing
a few weeks ago?

Regards


Darryl Sutherland

Senior Linux Administrator

logo image
E:   [email protected]
T:  +27 (0)11 262 3632
F:  +27 (0)86 637 8868
W:  www.synaq.com

   



PS: Download our free whitepaper on email archiving best practices here!

Support: +27 (0)11 262 3628 | +27 (0)861 0 SYNAQ
Block D, Sandhavon Office Park, Pongola Crescent, Eastgate Ext. 4, Sandton

----- Original Message -----
From: "Janos SUTO" <[email protected]>
To: [email protected]
Sent: Monday, 24 February, 2014 1:25:27 PM
Subject: piler scalability

Dear piler-users,

most of you who took the survey (thanks for that) have demanded for
scalability.

I fabricated a picture to give you a basic idea what piler currently
offers.

Let's say you have 5 piler nodes (node1, node2, ... node5). Each of
them works
independently from each other. A single node has the piler daemon that
archives
emails to /var/piler/store/<server_id>, and sphinx installed to index
the archived
messages.

How does this setup scale? It scales out, and you can add nodes up to
255.

However to combine all node's data to a single view for the end users,
we need
another host for the GUI. This host has no piler installed (except
pilerget to
retrieve emails), only the webserver (nginx, apache, ...) and the php
stuff
to provide the gui functionality. The gui node also features searchd,
however
it uses distributed indices only, which relays sphinx queries to the
piler
nodes. Fortunately sphinx does this in paralel, so answers from remote
searchd
instances should return in a timely manner.

Since pilerget can work locally only, so we have to mount (via NFS,
SSHFS, ...)
each nodes store/<server_id> directory to /var/piler/store, so it will
have
/var/piler/store/01 (from node1), /var/piler/store/02 (from node2),
etc.

Pilerget is smart enough to figure out the server_id from the unique
piler id,
so it can figure out where the message files are.

If you have many billions of emails to archive, perhaps you also have
lots of
users. I think it's possible to use more GUI hosts, and provide a DNS
round
robin feature (provided that the more than one host can read-only mount
the
store directory of the same piler node).

In this layout I use a standalone mysql server, and all hosts use this
mysql
server to store/retrieve data. (usually you might want to setup a mysql
cluster
for SQL high-availability and performance).

You have to choose how to distribute emails among the piler nodes. You
may use
a round robin approach, and use all the nodes, or you can say that send
March's
traffic to node1, then April's traffic to node2, etc. I think it can be
done
easily by setting up an smtp relay server that (logically) sits between
the
mail server(s) and the piler nodes, and you have to change smtp routing
at a
single point.

Let me know if this layout / approach would work for you. Feel free to
improve
it, or propose something else.

Best regards,
Janos

Reply via email to