For now, treat partial writes as a success. (If we couldn't write enough columns to reconstruct the data, the I/O failed. Otherwise, good enough.) Now that we support write reallocation, it would be better to treat partial failure as real failure unless there are no non-degraded top-level vdevs left, and not update DTLs if we intend to reallocate.
With the current ZFS code, it turns out that the vdev cache is not helpful, and in some cases actually harmful. It is better if we disable this. Once some time has passed, we should actually remove this to simplify the code. For now we just disable it by setting the zfs_vdev_cache_size to zero. Note that Solaris 11 has made these same changes.
Devise an elegant method for including the tunable's path in the documentation. For example, the documentation for zfs_no_write_throttle should tell you that its path is "vfs.zfs.no_write_throttle".