Информация об изменениях

Сообщение Re: [MSSQL] DELAYED_DURABILITY от 18.05.2019 18:24

Изменено 18.05.2019 18:27 VladCore

Re: [MSSQL] DELAYED_DURABILITY
Здравствуйте, Somescout, Вы писали:

S>Здравствуйте.


S>Может кто-нибудь рассказать что-то про эту фичу (https://docs.microsoft.com/en-us/sql/relational-databases/logs/control-transaction-durability?view=sql-server-2017)?

S>1) Действует ли она на любые типы таблиц в базе?
S>2) Насколько в целом это безопасно, если сбоев сервера, фактически, не бывает?
S>3) Что означает "Only transactions that have been made durable are included in the backup. " — что в бэкап логов транзакции попадут в момент фактической записи на диск, или что они вообще не будут в нём отражены?

Там есть пояснение:

If a fully durable transaction or sp_flush_log successfully commits, all previously committed delayed durability transactions are guaranteed to have been made durable.


Т.е. Транзакция попадает гарантированно и в backup и в log shipment или при выполнении sp_flush_log или если комитится любая обычная транзакция (с выключенным Deleyed Durabity)

А вообще прикольная тема.

Интересно насколько все быстрее работает если на всё включить Deleyed Durabity = On?

Скажем простой сценарий типа hangfire/асинхронная очередь — W потоков пишут в таблицу сообщения и R потоков сообщения удаляют.

А теперь возмем
R=0, W=16
R=16, W=0
R=16, W=1
Re: [MSSQL] DELAYED_DURABILITY
Здравствуйте, Somescout, Вы писали:

S>Здравствуйте.


S>Может кто-нибудь рассказать что-то про эту фичу (https://docs.microsoft.com/en-us/sql/relational-databases/logs/control-transaction-durability?view=sql-server-2017)?

S>1) Действует ли она на любые типы таблиц в базе?
S>2) Насколько в целом это безопасно, если сбоев сервера, фактически, не бывает?
S>3) Что означает "Only transactions that have been made durable are included in the backup. " — что в бэкап логов транзакции попадут в момент фактической записи на диск, или что они вообще не будут в нём отражены?

Там есть пояснение:

If a fully durable transaction or sp_flush_log successfully commits, all previously committed delayed durability transactions are guaranteed to have been made durable.


Т.е. Транзакция попадает гарантированно и в backup и в log shipment или при выполнении sp_flush_log или если комитится любая обычная транзакция (с выключенным Deleyed Durabity)

А вообще прикольная тема.

Интересно насколько все быстрее работает если на всё включить Deleyed Durabity = On?

Скажем простой сценарий типа hangfire/асинхронная очередь — W потоков пишут в таблицу сообщения и R потоков сообщения "удаляют" (помечают обработанными).

А теперь возмем
R=0, W=16
R=16, W=0
R=16, W=1