Jakob - thanks for the reminder.
1) You can see 'scp' calling truncate by downloading from a remote server to a mounted FUSE HDFS instance, like so:
[brian@red ~]$ strace scp brian-test:/tmp/hello_world /mnt/hadoop/dropfiles/test_scp 2>&1 | grep truncate
ftruncate(3, 13) = 0
2) IIRC, I tried your suggestion, but the size of the file in the namenode isn't updated until close() is called, right? [Actually, now that I say that out loud, I now suppose we can take advantage of the single-thread-writer rule and just track the number of bytes in the client? That seems doable upon 30 seconds of reflection at 10PM...]