Subject Re[2]: [firebird-support] RE: Nbackup, Default I/O ON or OFF
Author Dmitry Kuzmenko
Hello, atunccekic!

Friday, December 20, 2013, 5:58:08 PM, you wrote:

adct> Thank you Dmitry

I decided to refresh my memory, because started to forgot things I new
before :-)

So, several facts:

-d ON - turns ON direct I/O, i.e. turns off operating system cache.
on Windows it uses FILE_FLAG_NO_BUFFERING option (see comments below)

-d OFF - turns OFF direct I/O, i.e. turns ON operating system cache.
it can show bad performance when database size is bigger than RAM,
at least for Windows. Turning -d ON does not "spoil" OS cache, so,
performance left for the hard drive subsystem. So, it need to be
tested wich one to use - ON or OFF.

Also, as I see in nbak.cpp, -d option affects only diff file (delta),
not database file. You can check functions
BackupManager::openDelta
BackupManager::setForcedWrites

And, it inherits Forced Writes state from the database for delta.
If it's ON for database, it will be ON for delta (wich is seems
logical).

So, the description of -d that nbackup show is wrong. As I said, it
related only to the delta file.

What I coudn't find (sorry, I don't understand C++ and not so friendly
with Firebird sources) is defaults for -d option. But, as I see,
some people use -d OFF to avoid performance problems, so, I can guess,
that default is -d ON.

Have I satisfied your interest? :-)

--
Dmitry Kuzmenko, www.ib-aid.com