Re: How to sync a file on FreeBSD? [SOLVED]

2011-07-22 Thread Unga
--- On Fri, 7/22/11, Pieter de Goeje pie...@degoeje.nl wrote:

 From: Pieter de Goeje pie...@degoeje.nl
 Subject: Re: How to sync a file on FreeBSD?
 To: freebsd-questions@freebsd.org
 Cc: Unga unga...@yahoo.com
 Date: Friday, July 22, 2011, 7:37 PM
 On Friday, July 22, 2011 08:44:00 AM
 Unga wrote:
  How to sync a file on FreeBSD (esp. on 8.1) to disk?
  
  I used fsync(2), but does not immediately flush to
 disk.
  
  I want my writing to a file (a log file) immediately
 available to other
  users to read.
 
 A file doesn't need to be synced to disk for other users
 to read the latest 
 data. The application just needs to call write(2) and the
 data is available. 
 It will be written to and read from the operating system's
 file cache. If 
 you're using stdio you can force a write(2) by calling
 fflush(3).
 
 - Pieter
 

Hi all

Thanks for the replies.

fflush(3) after fputs seems to work.

Best regards
Unga


___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to freebsd-questions-unsubscr...@freebsd.org


Re: How to sync a file on FreeBSD? [SOLVED]

2011-07-22 Thread Michael Sierchio
This is extremely important, esp. with Softupdates, since fsync() does
not guarantee a flush of all buffers to the medium.  In order to
implement a stable queue, it would be best to use a different
filesystem.

On Fri, Jul 22, 2011 at 6:16 AM, Unga unga...@yahoo.com wrote:
 --- On Fri, 7/22/11, Pieter de Goeje pie...@degoeje.nl wrote:

 From: Pieter de Goeje pie...@degoeje.nl
 Subject: Re: How to sync a file on FreeBSD?
 To: freebsd-questions@freebsd.org
 Cc: Unga unga...@yahoo.com
 Date: Friday, July 22, 2011, 7:37 PM
 On Friday, July 22, 2011 08:44:00 AM
 Unga wrote:
  How to sync a file on FreeBSD (esp. on 8.1) to disk?
 
  I used fsync(2), but does not immediately flush to
 disk.
 
  I want my writing to a file (a log file) immediately
 available to other
  users to read.

 A file doesn't need to be synced to disk for other users
 to read the latest
 data. The application just needs to call write(2) and the
 data is available.
 It will be written to and read from the operating system's
 file cache. If
 you're using stdio you can force a write(2) by calling
 fflush(3).

 - Pieter


 Hi all

 Thanks for the replies.

 fflush(3) after fputs seems to work.

 Best regards
 Unga


 ___
 freebsd-questions@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/freebsd-questions
 To unsubscribe, send any mail to freebsd-questions-unsubscr...@freebsd.org

___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to freebsd-questions-unsubscr...@freebsd.org


Re: How to sync a file on FreeBSD? [SOLVED]

2011-07-22 Thread Polytropon
On Fri, 22 Jul 2011 07:37:48 -0700, Michael Sierchio wrote:
 This is extremely important, esp. with Softupdates, since fsync() does
 not guarantee a flush of all buffers to the medium. 

But wouldn't sync() (see man 2 sync) make sure that
all buffers, even in regards to soft updates, get
immediately flushed / written?



 In order to
 implement a stable queue, it would be best to use a different
 filesystem.

What type of filesystem would match those requirements?


-- 
Polytropon
Magdeburg, Germany
Happy FreeBSD user since 4.0
Andra moi ennepe, Mousa, ...
___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to freebsd-questions-unsubscr...@freebsd.org


Re: How to sync a file on FreeBSD? [SOLVED]

2011-07-22 Thread Michael Sierchio
On Fri, Jul 22, 2011 at 7:42 AM, Polytropon free...@edvax.de wrote:

 But wouldn't sync() (see man 2 sync) make sure that
 all buffers, even in regards to soft updates, get
 immediately flushed / written?

Apparently not. I think most of Matt Dillon's notes are still relevant.

http://leaf.dragonflybsd.org/mailarchive/kernel/2010-01/msg5.html

 In order to
 implement a stable queue, it would be best to use a different
 filesystem.

 What type of filesystem would match those requirements?

I would make a UFS filesystem without Softupdates enabled,  use
fflush() and wait for a proper ack before promising to the caller that
the bits will survive something like pulling the plug.  Softupdates
guarantees metadata consistency. I would probably make decisions about
block and fragment sizes based on knowledge of the physical device's
buffer mechanism, sector sizes, etc.
___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to freebsd-questions-unsubscr...@freebsd.org