|
Вопросы по режиму открытия Firebird'ом файлов базы и GTT (анализ данных ProcMon'a)
|
|||
---|---|---|---|
#18+
hi all. решил я тут поглядеть, в каком режиме ФБ открывает: 1) файл базы, когда fw= ON vs OFF 2) файл GTT, когда база в fw = ON. Запустил ProcMon, поставил оставил только IO-активность, задал соотв. фильтры на PID, Operation и Path. В итоге получил следующие сведения для файла базы : 1) при fw = OFF : Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29.
(да, тут именно два события; сначала такое же как в fw =OFF, но затем файл переоткрывается с "Write Through"). И увидел там вот это: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Forcing the Cache to Write Through to Disk, pg 448Because some applications can’t tolerate even momentary delays between writing a file and seeing the updates on disk, the cache manager also supports write-through caching on a per–file object basis; changes are written to disk as soon as they’re made .Types of I/O, pg 41Synchronous and Asynchronous I/O Most I/O operations that applications issue are synchronous (which is the default); that is, the application thread waits while the device performs the data operation and returns a status code when the I/O is complete . ИТОГО получаем: 1. При FW = ON файл базы открывается так, что кеш виндузы вообще игнорится и изменения пишутся мимо него. Вопрос-1. Правильно ли я теперь понимать, что параметр FileSystemCacheThreshold - он играет рояль только для баз с fw = OFF ? 2. При любом FW СУБД будет ждать подтверждения от операционки, что очередной пакет данных действительно записан в файл базы. Потому что в обоих случаях файл открывается с "Synchronous IO" флагом. Вопрос-2. У мну разрыв шаблона: что тогда есть fw = OFF ?? Получается, что это всего лишь отмена флага Write Through, и больше ничего ? 3. При любом FW СУБД будет ждать подтверждения записи и для файлов GTT! Также будем ждать ответа, что всё записано, файл GTT открыт "Synchronous IO" флагом. Вопрос-3. Для GTT-файлов - зачем такое строгое требование ? Почему этот файл нельзя открывать в async-реджиме ? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2016, 21:55 |
|
Вопросы по режиму открытия Firebird'ом файлов базы и GTT (анализ данных ProcMon'a)
|
|||
---|---|---|---|
#18+
Непонятно, что тебя смущает и чего хочешь добиться в новогоднюю ночь? =) Синхронный в/в ты немного не так понял, что там написано, но по факту это ничего не меняет. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2016, 22:11 |
|
Вопросы по режиму открытия Firebird'ом файлов базы и GTT (анализ данных ProcMon'a)
|
|||
---|---|---|---|
#18+
ЗимарглНепонятно, что тебя смущает и чего хочешь добиться в новогоднюю ночь? =) Синхронный в/в ты немного не так понял, что там написано, но по факту это ничего не меняет.Смущает необх-сть открытия GTT-тряпки в sync режиме. Зачем чего-то там ждать, пока в эту помой времянку запишется очередная порция данных ? Про синхронный в/в - поясни, плз, подробнее. Как ПРАВИЛЬНО надо понимать то, что там написано. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2016, 22:15 |
|
Вопросы по режиму открытия Firebird'ом файлов базы и GTT (анализ данных ProcMon'a)
|
|||
---|---|---|---|
#18+
Таблоид, ты понял всё не правильно. Сначала читай MSDN, флаги используемые CreateFile. Потом поговорим, если вопросы останутся. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2016, 22:16 |
|
Вопросы по режиму открытия Firebird'ом файлов базы и GTT (анализ данных ProcMon'a)
|
|||
---|---|---|---|
#18+
ТаблоидЗимарглНепонятно, что тебя смущает и чего хочешь добиться в новогоднюю ночь? =) Синхронный в/в ты немного не так понял, что там написано, но по факту это ничего не меняет.Смущает необх-сть открытия GTT-тряпки в sync режиме. Зачем чего-то там ждать, пока в эту помой времянку запишется очередная порция данных ? Про синхронный в/в - поясни, плз, подробнее. Как ПРАВИЛЬНО надо понимать то, что там написано. Правильно - дословно - ф-ция в/в вернет управление после выполнения, а не раньше. Но это может быть только фактом записи в кэш. В асинк.в/в ты отдельным запросом должен спрашивать - "а прочиталось ли ?" итп GTT скорее всего сделано логично - все файлы базы открываются в едином режиме. Девелоперы точнее могут сказать, или см код. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2016, 22:20 |
|
Вопросы по режиму открытия Firebird'ом файлов базы и GTT (анализ данных ProcMon'a)
|
|||
---|---|---|---|
#18+
hvladты понял всё не правильно. Сначала читай MSDN, флаги используемые CreateFile. Потом поговорим, если вопросы останутся.Прочитал вот это: Synchronous and Asynchronous I/O Handles . synchronous handle behaves such that I/O function calls using that handle are blocked until they complete, while an asynchronous file handle makes it possible for the system to return immediately from I/O function calls, whether they completed the I/O operation or no Ну и картинки глянул вот тута: Synchronous and Asynchronous I/O (похожую Марк в своей книжке тоже выводит). Вопросы остались. Те же самые, плюс что именно я "понял всё не правильно". ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2016, 22:40 |
|
Вопросы по режиму открытия Firebird'ом файлов базы и GTT (анализ данных ProcMon'a)
|
|||
---|---|---|---|
#18+
ЗимарглGTT скорее всего сделано логично - все файлы базы открываются в едином режиме. Девелоперы точнее могут сказать, или см код.Именно так. Режим ФлагиFW = ON FILE_FLAG_WRITE_THROUGHFW = OFFNo file system cache (FW = любой) FILE_FLAG_NO_BUFFERINGGTT FILE_ATTRIBUTE_TEMPORARY | FILE_FLAG_DELETE_ON_CLOSEКроме того, при FW = OFF по коммиту(роллбеку) вызывается FlushFileBuffers ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2016, 22:41 |
|
Вопросы по режиму открытия Firebird'ом файлов базы и GTT (анализ данных ProcMon'a)
|
|||
---|---|---|---|
#18+
Таблоид, я тебе сказал про флаги читать, а ты что читал ? Читай. Флаги я показал. Делай выводы :) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2016, 22:42 |
|
Вопросы по режиму открытия Firebird'ом файлов базы и GTT (анализ данных ProcMon'a)
|
|||
---|---|---|---|
#18+
hvladя тебе сказал про флаги читать, а ты что читал ? Читай. Флаги я показал. Делай выводы :)Про флаги тоже прочёл :-) Очень хороший флаг у нас для ГТТ:msdn FILE_ATTRIBUTE_TEMPORARY attribute causes file systems to avoid writing data back to mass storage if sufficient cache memory is available- но допустим, что запись на диск всё-таки попёрла, т.к. "sufficient cache memory" = false. Остается вопрос из стартового поста, про Synchronous IO: зачем файл ГТТ открывается именно в таком режиме ? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2016, 22:55 |
|
Вопросы по режиму открытия Firebird'ом файлов базы и GTT (анализ данных ProcMon'a)
|
|||
---|---|---|---|
#18+
ТаблоидОстается вопрос из стартового поста, про Synchronous IO: зачем файл ГТТ открывается именно в таком режиме ? Ты видел как программируется асинхронный ввод/вывод в винде? Это геморрой на ровном месте. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2016, 22:59 |
|
Вопросы по режиму открытия Firebird'ом файлов базы и GTT (анализ данных ProcMon'a)
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovТаблоидОстается вопрос из стартового поста, про Synchronous IO: зачем файл ГТТ открывается именно в таком режиме ?Ты видел как программируется асинхронный ввод/вывод в винде? Это геморрой на ровном месте.Нет, не видел. А в чём там гемор ? особливо интересует файл, соотв-щий gtt on commit DELETE rows, в который может вести запись одна и только одна транзакция (след-но, нет нужды думать о конкуреции за этот файлик). ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2016, 23:09 |
|
Вопросы по режиму открытия Firebird'ом файлов базы и GTT (анализ данных ProcMon'a)
|
|||
---|---|---|---|
#18+
ТаблоидА в чём там гемор ? В том, что всё равно приходится ждать пока оно запишется. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2016, 23:25 |
|
Вопросы по режиму открытия Firebird'ом файлов базы и GTT (анализ данных ProcMon'a)
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakovвсё равно приходится ждать пока оно запишется.Прошу пардону за неизбывную тупость, но... почему при async io всё равно надо будет ждать ? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2016, 23:29 |
|
Вопросы по режиму открытия Firebird'ом файлов базы и GTT (анализ данных ProcMon'a)
|
|||
---|---|---|---|
#18+
Таблоидпочему при async io всё равно надо будет ждать ? Потому что с буфером, из которого он пишет, ничего в этот промежуток времени делать нельзя. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2016, 23:41 |
|
Вопросы по режиму открытия Firebird'ом файлов базы и GTT (анализ данных ProcMon'a)
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovТаблоидпочему при async io всё равно надо будет ждать ? Потому что с буфером, из которого он пишет, ничего в этот промежуток времени делать нельзя.Гы... тогда зачем там вообще этот режим, async io ?.. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2016, 01:52 |
|
Вопросы по режиму открытия Firebird'ом файлов базы и GTT (анализ данных ProcMon'a)
|
|||
---|---|---|---|
#18+
"Ничего нельзя делать с буфером" и "совсем ничего не делать" не одно и то же. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2016, 02:18 |
|
|
start [/forum/topic.php?fid=40&tid=1562398]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
41ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
others: | 16ms |
total: | 165ms |
0 / 0 |