I wonder if someone can help me get educated about synchronous writes to a file server over the network? Is this something that's designed into specific apps or is this something that I have control of at the sys admin level?
I've recently built 2 TrueNAS file servers. The first (and main) unit runs all the time and serves to backup my home user machines. Generally speaking I (currently) put data onto it using rsync but it also has an NFS mount that serves as a location for my Raspberry Pi to store duplicate copies of astrophotography pictures live as they come off the DSLR in the middle of the night. The second TrueNAS machine serves to back up this first machine but resides at the other end of the house to protect data in case of fire. Eventually I'll probably backup all of this offsite but for now it's two old computers and a bunch of disks. The question about synchronous writes comes in the configuration of TrueNAS. TrueNAS supports what it calls a ZIL (ZFS Intent Log) which is a smaller SSD at the front end of the write data flow. The idea (as I understand it) is that the ZIL allows writes to the server to be cached quickly onto, in my case, an SSD, and then eventually written to spinning drives when the system gets around to it. Once new data arrives at the ZIL it remains until it's written and verified at which time the entries in the ZIL are removed. The ZIL does not do anything to speed up reads from the file server. The thing is that the ZIL is only used for synchronous writes and I don't know whether anything I'm doing to back up my user machines, which currently is just rsync commands, is synchronous or could be made synchronous, and I do not know if the NFS writes from the R_Pi are synchronous or could be made so. If someone can point me in the right direction in terms of reading and study I'd appreciate it. Thanks, Mark

