On Tue, 1 Aug 2006, Daniel Eckl wrote:
Well, I don't have cluster knowledge, and so of course I simply believe you
that a good cluster system will never have file locking problems.
I already stated this below!
But how will the cluster affect application level database locking? That was
my primary question and you didn't name this at all.
A database file which is in use is practically always inconsistent until it's
being closed by the database application.
That's why databases can be corrupt after an application crash and have to be
reconstructed.
When you have two applications changing the same database file, you have a
never ending fight, because every application thinks, the database is
inconsistent, but it's just in use by another application. And every app will
try to reconstruct it and so break it for the other app(s).
It's like letting two cyrus master run on the same single node! It will break
in my opinion.
Can you shed some light on this subject?
I think the point here is that the situation you describe already occurs
all the time on a stand-alone Cyrus server. There are multiple imapd
processes accessing the mailboxes.db database concurrently. If you are
using Berkeley DB, it has an API to manage concurrent access. I assume
the same is true of skiplist and the other backend formats. I don't know
enough about the Berkeley DB internals to explain how it actually works,
but it does. :)
Andy
----
Cyrus Home Page: http://asg.web.cmu.edu/cyrus
Cyrus Wiki/FAQ: http://cyruswiki.andrew.cmu.edu
List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html