So if it's not obvious, we're working on migrating our openldap deployment to mdb from hdb :), I apologize for the flurry of questions, this will be the last, at least for today ;).
I'm trying to evaluate the optimal configuration for mdb; it seems like for the most part you can just set maxsize and move on if you don't have performance issues, but one flag I've seen frequently mentioned for improving performance is writemap. This seems like a win all around, unless there is some bug that results in erroneous writes into the mapped region, in which case it could potentially cause major database corruption. For those that have been running mdb in the field for a while, are you using writemap? Have you ever run into any corruption because of it?
The other flag that seems to be popular is nometasync. As opposed to nosync, which might cause loss of some number of transactions in case of a crash, nometasync only risks one? And the benefit is that it is "slightly faster"? Again, any recommendations from field experience on this? Also, if you do enable it, do you need a checkpoint directive, or is that only necessary for nosync?
Thanks.
Am Tue, 7 Jan 2014 19:15:07 -0800 schrieb "Paul B. Henson" henson@acm.org:
So if it's not obvious, we're working on migrating our openldap deployment to mdb from hdb :), I apologize for the flurry of questions, this will be the last, at least for today ;).
I'm trying to evaluate the optimal configuration for mdb; it seems like for the most part you can just set maxsize and move on if you don't have performance issues, but one flag I've seen frequently mentioned for improving performance is writemap. This seems like a win all around, unless there is some bug that results in erroneous writes into the mapped region, in which case it could potentially cause major database corruption. For those that have been running mdb in the field for a while, are you using writemap? Have you ever run into any corruption because of it?
Based on my experience, if you slapadd a large database, make sure that the configured maxsize is larger than your initial ldif file, no additional parameters, no checkpointing, after successful slapadd you may configure the database to your requirements.
-Dieter
--On Tuesday, January 07, 2014 7:15 PM -0800 "Paul B. Henson" henson@acm.org wrote:
So if it's not obvious, we're working on migrating our openldap deployment to mdb from hdb :), I apologize for the flurry of questions, this will be the last, at least for today ;).
I'm trying to evaluate the optimal configuration for mdb; it seems like for the most part you can just set maxsize and move on if you don't have performance issues, but one flag I've seen frequently mentioned for improving performance is writemap. This seems like a win all around, unless there is some bug that results in erroneous writes into the mapped region, in which case it could potentially cause major database corruption. For those that have been running mdb in the field for a while, are you using writemap? Have you ever run into any corruption because of it?
I use writemap and nometasync. I've never encountered corruption because of using writemap.
--Quanah
--
Quanah Gibson-Mount Architect - Server Zimbra, Inc. -------------------- Zimbra :: the leader in open source messaging and collaboration
From: Quanah Gibson-Mount [mailto:quanah@zimbra.com] Sent: Wednesday, January 08, 2014 8:22 AM
I use writemap and nometasync. I've never encountered corruption because of using writemap.
Excellent. Do you use nometasync because otherwise the performance isn't good enough for your use case? Or just because you like better performance in general, and the risk of one lost transaction seems a reasonable trade-off? Do you need a checkpoint directive with nometasync?
Thanks.
--On Wednesday, January 08, 2014 4:35 PM -0800 "Paul B. Henson" henson@acm.org wrote:
From: Quanah Gibson-Mount [mailto:quanah@zimbra.com] Sent: Wednesday, January 08, 2014 8:22 AM
I use writemap and nometasync. I've never encountered corruption because of using writemap.
Excellent. Do you use nometasync because otherwise the performance isn't good enough for your use case? Or just because you like better performance in general, and the risk of one lost transaction seems a reasonable trade-off? Do you need a checkpoint directive with nometasync?
Hi Paul,
I don't set any checkpoint directive with back-mdb. I have debated off and on whether or not to keep nometasync, but haven't done in-depth testing at this time as to its pros and cons. I settled on it some time ago and simply haven't chosen to disable it.
--Quanah
--
Quanah Gibson-Mount Architect - Server Zimbra, Inc. -------------------- Zimbra :: the leader in open source messaging and collaboration
From: Quanah Gibson-Mount [mailto:quanah@zimbra.com] Sent: Wednesday, January 08, 2014 4:48 PM
I don't set any checkpoint directive with back-mdb. I have debated off
and
on whether or not to keep nometasync, but haven't done in-depth testing at this time as to its pros and cons. I settled on it some time ago and simply haven't chosen to disable it.
Ah, I see. Given that mdb should perform considerably better than hdb to begin with, I think I'll start without nometasync and then revisit it if I have any performance or response issues.
Thanks much.
openldap-technical@openldap.org