All Topics
All Topics
Technology
Technology
Design
Design
Programming
Programming
Science
Science
News
News
Gaming
Gaming
Entertainment
Entertainment
Business
Business
Finance
Finance
Sports
Sports
Health
Health
Food
Food
Travel
Travel
Art
Art
Music
Music
Books
Books
Education
Education
Politics
Politics
Personal
Personal
No algorithm. No AI slop. No ads. Just RSS. Pro-human. Indie writers. Real journalism. Open web. Chronological. Hand toasted.

Jepsen Analysis Reveals Data Loss Vulnerabilities in NATS JetStream 2.12.1

By

aphyr

5mo ago· 21 min readenInsight

Summary

Jepsen's independent testing of NATS JetStream version 2.12.1 revealed significant data loss vulnerabilities in the distributed streaming system. The analysis found that JetStream loses committed writes when data files are truncated or corrupted on a minority of nodes, and coordinated power failures or OS crashes combined with network delays can cause persistent split-brain scenarios. The primary cause was identified as the system's default policy of flushing writes to disk every two minutes rather than before acknowledging them. The report also includes a belated note about data loss in version 2.10.22 that was fixed in 2.10.23. NATS has since documented the risks of its default fsync policy, with remaining issues under investigation.

Key quotes

· 5 pulled
We tested NATS JetStream, version 2.12.1, and found that it lost writes if data files were truncated or corrupted on a minority of nodes.
We also found that coordinated power failures, or an OS crash on a single node combined with network delays or process pauses, can cause the loss of committed writes and persistent split-brain.
This data loss was caused (at least in part) by choosing to flush writes to disk every two minutes, rather than before acknowledging them.
NATS has now documented the risk of its default fsync policy, and the remaining issues remain under investigation.
This research was performed independently by Jepsen, without compensation, and conducted in accordance with the Jepsen ethics policy.
Snippet from the RSS feed
NATS is a distributed streaming system. Regular NATS streams offer only best-effort delivery, but a subsystem, called JetStream, guarantees messages are delivered at least once. We tested NATS JetStream, version 2.12.1, and found that it lost writes if da

You might also wanna read