>data-only sync does not have a performance advantage over a full sync
Does data-only sync have a perf advantage w/synchronous=normal?

Why does data-only sync exist? Is it a perf thing? Reliability? Other?


>Our experience with various Unix flavors teaches us
Windows != Unix. Although FlushFileBuffers is conceptually equivalent to fsync 
we're well into the realm of details mattering.


>Nt*() interfaces may cause portability problems for things like WinCE
Not just CE - NtFlushBuffersFileEx was added in Win8. But SQLite can and does 
use functions new in the last decade. A simple LoadLibrary/GetProcAddress can 
detect availability at runtime, and there's already plenty of #ifdef options. I 
already build a custom DLL from amalgamated source (for reasons) and I'm 
targeting Win8+ so adding /DSQLITE_ENABLE_WIN_DATASYNC would be trivial. 
Likewise enabling this #ifdef SQLITE_OS_WINRT is safe enough since WinRT only 
exists on Win8+


I'm trying to understand (a) if this has been considered, (b) if it's planned, 
and (c) if I wanted to hack it myself, do the resident experts have any 
implementation advice? Both to make it work, and if it's useful what's 
likeliest to be smoothest to be accepted as a patch.

        - Howard

-----Original Message-----
From: Joe Mistachkin [mailto:j...@mistachkin.com] 
Sent: Friday, April 3, 2015 10:35 AM
To: 'General Discussion of SQLite Database'
Cc: Howard Kapustein
Subject: RE: [sqlite] NtFlushBuffersFileEx for SQLITE_SYNC_DATAONLY onWindows ?


Howard Kapustein wrote:
> 
> Has anyone considered supporting SQLITE_SYNC_DATAONLY on Windows using 
> NtFlushBuffersFileEx?
>
http://msdn.microsoft.com/en-us/library/windows/hardware/hh967720(v=vs.85).a
spx
> 

Our experience with various Unix flavors teaches us that data-only sync does 
not have a performance advantage over a full sync.  And the Nt*() interfaces 
may cause portability problems for things like WinCE.

--
Joe Mistachkin

Reply via email to