Thanks, Ethan.
I'd like to know more about using MySQL.
Indeed, I'd like to know more about other classes of databases, e.g. graph databases.

Still, while hit rate is one aspect of scalability, when you talk about "safely cached", I wonder about the combinatoric aspect of scalability, say, a million users each with timelines in the hundreds to thousands long, and all the entailed message objects. Are you thinking in terms of, say, external memcached solutions, or just large memory models and load balancers?

Curious minds...
Thanks
Jack

On 8/3/2011 4:56 AM, Ethan Jewett wrote:
Hi Jack,

It should be able to run on any Java application server with any
database via JNDI or with any JDBC database by providing JDBC
connection information in a .props file. I believe that on Stax (now
CloudBees) we are using a MySQL database.

Regarding scalability, the design of ESME is such that it doesn't rely
much on the database for scalability. Operations should generally
happen on data in memory, and there shouldn't be access of the
database on most operations. We can do this because the data model has
messages as immutable objects (you can't change or delete them), so
they can be safely cached and we can rest assured that they will never
be out of sync with the database.

I'm fairly sure we did some performance tests a while ago that showed
ESME was able to support thousands of concurrent users on a fairly
small server without trouble, but I can't currently find that
documentation. Maybe someone else knows where it ran off to? Seems
like something we should have on a our website (and a test that we
should redo at some point).

Cheers,
Ethan

Reply via email to