On Tue Oct 26 13:21 1999 -0400, [EMAIL PROTECTED] wrote:
 > >>>>> "Mark" == Mark D Roth <[EMAIL PROTECTED]> writes:
 > 
 > Mark> Another possible difference between syslogd-syslogd transfers and
 > Mark> process-syslogd transfers is the fsync() interval.  Since the
 > Mark> receiving syslogd cannot send an ACK until it's fsync()'ed its queue
 > Mark> file(s), we will probably want to implement a mechanism whereby the
 > Mark> server can accept a number of messages before fsync()'ing, and then
 > Mark> ACK the last one to tell the client that all of the messages up to
 > Mark> that point have been received.  This obviously doesn't work for
 > Mark> initial message submission, because an application process needs an
 > Mark> ACK immediately in order to stop blocking in the library call.
 > 
 > Whoa! I don't want to _ever_ guarantee an fsync(). I want to be able to say
 > "I'm a best-efforts server, I got your message, it will be written to
 > non-volatile storage unless I crash". Strict delivery really should be
 > optional.

I agree that best-effort is good enough for the default, especially if
TCP is used for the new protocol.  However, if we're going to provide
a guarunteed/verifyable delivery option, we need to ensure that the
data will not be lost when that option is selected.  This means that
we need to fsync() before sending an ACK.

-- 
Mark D. Roth <[EMAIL PROTECTED]>
http://www.feep.net/~roth/

Reply via email to