Bug #8373

TXG_WAIT in ZIL commit path

Added by Andriy Gapon 13 days ago.

Status:NewStart date:2017-06-12
Priority:NormalDue date:
Assignee:-% Done:

0%

Category:zfs - Zettabyte File System
Target version:-
Difficulty:Medium Tags:needs-triage

Description

The code that writes ZIL blocks uses dmu_tx_assign(TXG_WAIT) to assign a transaction to a transaction group.
That seems to be logically incorrect as writing of the ZIL block does not introduce any new dirty data.
Also, when there is a lot of dirty data, the call can introduce significant delays into the ZIL commit path,
thus affecting all synchronous writes. Additionally, ARC throttling may affect the ZIL writing.

We probably need a new mechanism similar to dmu_tx_create_assigned to assign ZIL transactions.
(Ab)using TXG_WAITED does not seem to be sufficient.

Also available in: Atom