]> git.ipfire.org Git - thirdparty/apache/httpd.git/commit
mod_dav: Allow to disable lock discovery via an DAVLockDiscovery expression.
authorYann Ylavic <ylavic@apache.org>
Mon, 17 Oct 2022 09:48:11 +0000 (09:48 +0000)
committerYann Ylavic <ylavic@apache.org>
Mon, 17 Oct 2022 09:48:11 +0000 (09:48 +0000)
commitf02c7a9b8ac443daafac8e7be5828b4010fb46d8
treefda95238a33421d1e018d8c5dee2d88cd92f7b26
parent4701f6f3cc47ac57053cf4151bfa60dd0b86a3a3
mod_dav: Allow to disable lock discovery via an DAVLockDiscovery expression.

mod_dav-fs scales badly when a few clients run PROPFIND requests to discover
directory content. Each PROPFIND involves lockdiscovery, which in turn waits
for a locked access to the file containing the lock database. Performances
quickly drop because of lock contention on this file.

Add a DAVLockDiscovery configuration directive that allows lockdiscovery to be
disabled. Its argument is an Apache expression so that flexible configuration
are possible (per-request).

When lock discovery is disabled, an empty lockdiscovery property is returned on
POPRFIND methods, just like if no lock was set on the object. That should cause
no regression, since a client cannot rely on lockdiscovery to decide when a
file should be accessed, the LOCK methood must be used.

If DAVLockDiscovery is not specified, the behavior is unchanged.

PR 66313.
Submitted by: Emmanuel Dreyfus <manu netbsd.org>
Reviewed by: ylavic

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1904638 13f79535-47bb-0310-9956-ffa450edef68
changes-entries/DAVLockDiscovery.txt [new file with mode: 0644]
modules/dav/main/mod_dav.c
modules/dav/main/mod_dav.h
modules/dav/main/props.c