time for cyrus-imap v3.2?
Howard Chu
hyc at highlandsun.com
Fri Nov 8 15:06:23 EST 2019
Bron Gondwana wrote:
> On Thu, Nov 7, 2019, at 15:46, Anatoli via Cyrus-devel wrote:
>> Bron,
>>
>> Thanks for your detailed reply and the work the FM team is doing!
>>
>> > This is not easy unfortunately with all the different datastructures,
>> > because it means that everything else which takes a lock is going to
>> > need to first take a global shared lock before it does anything else,
>> > and that's going to have a performance and complexity impact on
>> > everything - because you have to find them ALL or you might wind up
>> > with lock inversions down the line.
>>
>> One solution I see is to have a separate single lock, not even a lock
>> per se, but a barrier. I.e. before every write operation
>
> How does that maintain consistency? I guess you don't get skew between files, but you still have to do crash recovery on every file. There's no single place
> to put this either.
>
> I think I still prefer the idea of a shared locks that wraps every single other lock, such that taking the snapshot pauses every attempt to start a new lock
> until it's done, so you always get a completely clean read equivalent to a clean shutdown.
Not to sound like a broken record, but - if you were using named databases in LMDB
for all of these separate data structures, you would get atomic snapshots for free.
--
-- Howard Chu
CTO, Symas Corp. http://www.symas.com
Director, Highland Sun http://highlandsun.com/hyc/
Chief Architect, OpenLDAP http://www.openldap.org/project/
More information about the Cyrus-devel
mailing list