The doMove() operation in DavServlet.java implements a move as a copy followed by a remove. This causes all files so "moved" to be recreated in the storage volume before the old copies are deleted. And so in every case, the application server must read the full content of each file and write it back out again. In a shared storage situation, particularly a multiple-volume one, this creates several risks. And when multiple MOVE operations are issued in sequence (eg a user using a DAV client to move 10 folders to another location), several threads are kicked off which can result in complete saturation of the server's I/O system and/or NFS connection.
ContentHostingService provides a "rename" method which may or may not be appropriate for the needs of the DAV server, and in addition that method is also implemented in this manner (copy then remove-- see
KNL-817), however, this implementation presents a big risk when dealing with multiple multi-gigabyte files.