At 02:32 23/04/2007, Christian Schlatter wrote:
Alan,
Alan Crosswell wrote:
One option being discussed here is running mysql
replicated. This
brings up the concern that the independent proxies are not aware that
they are talking to a single database instance. Will there be issues
involved such as:
- deadlocks
- inconsistency of in-memory and in-database data structures
(e.g. usrloc, presence)
- collisions of per-proxy unique keys that are inserted into
tables
Personally, I think mysql replication violates KISS if I am trying to
have my redundant servers as independent and survivable as possible.
With mysql master-slave replication only one proxy could write to the database, so
you'd need master-master replication which is possible but doesn't offer ACID as
mysql cluster does.
I would not constrain oneself, for example one can do symmetric two-way client-server
replication. We have done that once with SER, other testimony can be found in
http://portal.acm.org/citation.cfm?id=1227865.1228010&coll=&dl=ACM&…
(referring to a Columbia University technical report for even more details).
I agree that using DB replication violates KISS as
would also do the application layer state replication solutions you're describing
below.
I would say it depends on which type of data you are referring to. With SER (and I would
say this is 100% directly applicable to openser too) we have been using different
replication
strategies to different types of data (tables).
For me the best solution would be to have endpoints
registering with all redundant proxies in parallel. This would also be in-line with
SIP's redundancy in the previous hop. The newest firmware release for the Polycom SIP
phones does support that, though I haven't tested it yet. Are there other endpoints
implementing this feature?
The downside is that it does not work once you get a new SIP phone.
-jiri
--
Jiri Kuthan
http://iptel.org/~jiri/