Tous les livres

Professionnel

Applis À propos Coach Connexion Commencer la lecture

Quantitative Finance · Glossaire

Qu'est-ce que « Binary log, deferred formatting » ?

Aussi appelé : binary log · deferred formatting

Definition 23.1 Low-Latency Software · Chapitre 23 — Logging, Capture and Replay

A binary log is a log whose records hold a statement identifier, a timestamp and the raw values of the statement’s arguments, not text; the statements’ format strings are stored once, in the log’s header or alongside the binary. Deferred formatting is the practice of turning such records into text only when the log is read, by a separate program, so that the program that writes the log never converts a number to text.

Logging, capture and replay. The hot path writes raw records into a ring and returns; a writer thread drains them to a file whose header holds every statement’s format; formatting happens offline. The inputs are journaled as they arrive, and a replay of the journal through the same binary produces the same log.
Figure 23.1. Logging, capture and replay. The hot path writes raw records into a ring and returns; a writer thread drains them to a file whose header holds every statement’s format; formatting happens offline. The inputs are journaled as they arrive, and a replay of the journal through the same binary produces the same log.
The cost of one log call carrying four numbers, by method (TSC-timed, 200 000 calls each): the binary log with its writer thread draining the ring on another core, snprintf into a buffer, fprintf into a fully buffered file, and a string stream. Measured on a laptop (Intel Core Ultra 7 155H) under WSL2. Data: bench_log.py.
Figure 23.2. The cost of one log call carrying four numbers, by method (TSC-timed, 200 000 calls each): the binary log with its writer thread draining the ring on another core, snprintf into a buffer, fprintf into a fully buffered file, and a string stream. Measured on a laptop (Intel Core Ultra 7 155H) under WSL2. Data: bench_log.py.
Lire dans le chapitre →