1

I am analyzing DFS-R on Windows 2003 R2 and have come across a horrendous thing.

It appears that when you append a small amount of data to a large (existing) file, the write cost on the server for which you append the data is simply the data; when the write cost on the RECEIVING server is the entire file + the appended data.

Meaning, DFS-R re-writes the file on the receiving server.

I wanted to know if this is the case, and others have experienced the issue. I analyzed using a self-authored program that writes to a given file (I appended 100MB to the file), then I appended some data (1MB) to that file. I used Process Monitor's File Summary feature to review the write and read bytes occurring at the file system.

I am in shock. What sort of things might be misconfigured?

Thanks,

Matt

1 Answer 1

0

From MS :

DFSR uses a new compression algorithm called Remote Differential Compression (RDC). RDC is a "diff over the wire" protocol that can be used to efficiently update files over a limited-bandwidth network. RDC detects insertions, removals, and rearrangements of data in files, enabling DFSR to replicate only the deltas (changes) when files are updated.

Try using a tool, like Performance Monitor, or an SNMP agent, or wireshark, to actually see how much data gets transferred over the wire. I think you'll see only the small amount go over the network.

Edit - RDC can also be turned off - perhaps that has happened in your case?

3
  • My concern isn't how much data is replicated, it's how much is written. In fact, I can see that the compressed version of the file is written to the Staging directory, then it must be sent to the receiving server. Then the receiving server creates the file in the Install directory (here it writes the amount described above). Then dfsr performs a move operation to adjust the MFT entry of the Installed file (it does not write twice on the receiving server).
    – brandeded
    Aug 23, 2011 at 21:09
  • How are you measuring write cost? / edit- I see you say you're using ProcMon.
    – mfinni
    Aug 23, 2011 at 21:12
  • If payload = 100MB = 100%. Append 1MB = 1% on sending server, 101% on receiving. Instead of DFS-R treating an appending of data as an appending, it treats it as if the entire file changes. This seems inefficient, but I've already answered the question... the feature to check if the file was appended to or not isn't there. Thanks anyway.
    – brandeded
    Aug 24, 2011 at 12:31

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .