Re: DDF: regression caused by 273989b9 / ce45c819
From: NeilBrown <hidden>
Date: 2013-08-07 07:09:55
Attachments
- signature.asc [application/pgp-signature] 828 bytes
From: NeilBrown <hidden>
Date: 2013-08-07 07:09:55
On Tue, 06 Aug 2013 20:14:35 +0200 Martin Wilck [off-list ref] wrote:
Hi Neil, these patches break the unit test 10ddf-geometry. I saw the regression with both patches applied. The problem occurs when subarrays are deleted. With these patches in place, sync_metadata() will not overwrite deleted conf records on disk, but lseek() over them instead. When the meta data is read back, this will cause errors. I would like to ask you to play safe here and revert these patches. It might be possible to fix the --kill-subarray problem, but there are other possible scenarios where the number of valid conf records on a disk decreases - I don't think we have a reliable way to check whether it is safe to skip over empty entries. We must also be prepared for other DDF implementations to read our meta data, so we must refrain from putting any writing anything that might be confusing. Regards Martin
Yes, you are right. That wasn't such a good idea, thanks. I've changed it to allocate a large buffer (which is done for 'read' - and we use the same buffer), fill that in and write. That is a lot faster than lots of individual writes, due to the fact that the fd is O_DIRECT. Thanks, NeilBrown