Hi Till,
Thank you for taking the time to read my mail.
I think DNS is just the "cheapest" in most cases.
DNS is simpler to put in place.
Besides you should probably use a "real" load balancer (like HAProxy or Pound, or maybe even hardware) to spread out.
HAProxy or Pound (or even Varnish [1]) are no more "real load
balancer" than NGINX.
And I see no need to invest in an "hardware solution" (ie: which is
just a nice way to say an expensive hardware + software bundle) when I
have everything I need in the OSS landscape.
And because of the availability of those tools/solutions, I wouldn't necessarily wrap that part into the application as well.
I explained previously why source IP based load balancing is not
enough in my case and why I _had_ to use a round robin algorithm and
cookie solution to spread the load.
I can see how the new DB code is a simpler solution but AFAIK it did
not exist when I first presented my patch three months ago.
I was able to load balancing roundcube a few months ago after only a
few hours work, well before the SQL sharing code was in place.
I don't want to talk you into another solution, but e.g. if one of your backends fails, the user will be send to it regardless.
Yes existing connection could routed to a dead server if you have
nothing to pervent it.
One could use wackamole[2] on the roundcube servers to prevent it (the
patch plan for it).
Round-robin doesn't safe guard against that, but e.g. a load balancer would.
I assume you meant "e.g. load balancer with roundcube using a shared
DB would" :)
I was not focusing on high availability - like the need of DB
replication, etc.
Pushing attachments and sessions into the database gives you lots of flexibility (with a trade-off in terms of resources).
It is another design, do not get me wrong it is a good solution but
not what _I_ need
But anyway, did you progress with the plugin api?
I explained why I thought it was not possible. Do you think I am
mistaken ?
Thomas
[1] http://varnish.projects.linpro.no/ [2] http://www.backhand.org/wackamole/
List info: http://lists.roundcube.net/dev/