KNOWLEDGE BASE
Log In    |    Knowledge Base    |    4D Home
Tech Tip: How does 4D manage the journal in terms of storage performance?
PRODUCT: 4D | VERSION: 14.0 | PLATFORM: Mac & Win
Published On: March 21, 2014

What is the block size for 4D journal writes?
System defined block size.

What sort of I/O is used?
Buffered I/O (explanation)

What is the size of 4D journal writes?
Defined by the size of the operation. Mainly defined by the size of the record. Note that the MSC Activity Analysis pane includes the size for each operation:



In what order are operations written to the journal? Are they grouped?
Not grouped. Same as the order you see in the Activity Analysis window. Each operation is written individually.

Is there an internal lock when writing to the journal?
Yes.

What is the scope of the lock?
Global.

What is the duration of the lock?
Per operation. The lock is acquired, the operation written, and the lock released.

Which thread writes to the journal?
The same thread that is making the data change. If it is a pre-emptive DB4D thread, the same thread writes to the journal. If it is the cooperative 4D language thread (e.g. stored procedures or Web processes) only a single thread is accessing the journal. Further explanation here: https://www.youtube.com/watch?v=vVej7SwI-uM&t=38m14s

How should I tune my storage (e.g. SAN)?
Optimize for the size and frequency of operations in your journal (analysis-based solution) or optimize as for MS SQL Server (see for example: https://www.brentozar.com/sql/sql-server-san-best-practices/).