3 ms·
Why would you fsync logs for a high-level service? Are you afraid a power outage is going to cause you to lose service logs?
by sargun 12y ago
Why would you fsync logs for a high-level service? Are you afraid a power outage is going to cause you to lose service logs?
- TheLoneWolfling 12y agoMaking sure your logging data gets written is relatively important. Say, if you hit a bug somewhere that causes the server itself to crash.
- frankzinger 12y agoHow about installing a SIGSEGV, etc. handler to do the fsync (and perhaps even print a stacktrace)?
- Rapzid 12y agoDisabling buffering in the file library should provide for a similar mitigation outlook. If the OS accepts the writes it WILL make it to disk unless the some part of the storage sub system(or the os itself) fails. So if the process dies recent writes should make it to disk regardless. But if the process triggers a complete system crash then you're kinda stuck needing fsync's :|
- deleted 12y ago[deleted]
- frankzinger 12y ago> Disabling buffering in the file library should provide for a similar mitigation outlook Did you mean logging library? I.e., application-level buffering? In that case, good point.
- evan_miller 12y agoThe fsync() is implicit behavior of the glog framework for Go. We didn't actually want it.