HEPBO3AH
04/03/2025, 9:55 PMGian Merlino
04/03/2025, 10:01 PMGian Merlino
04/03/2025, 10:01 PMGian Merlino
04/03/2025, 10:03 PMAR
04/06/2025, 2:13 PMHEPBO3AH
04/06/2025, 10:25 PMwhen it comes to correctness / integrity / durability on the ingestion and storage side, the main thing to recognize is that all data ingested into Druid is stored in "segment" files on object storage (e.g. S3, HDFS, etc) with pointers to those files in a "metadata store" (typically relational database like cloud-managed MySQL or PostgreSQL).In case when S3 is the storage mechanism, wouldn't writing every segment create a TPS bottleneck? In the official documentation it is mentioned that segments are pushed to deep storage (eg s3) after they are constructed. I cannot find where they are stored before they are pushed to S3. This is the part that I'm most concerned about in terms of durability
Maytas Monsereenusorn
04/07/2025, 2:36 AMreplicas setting on SupervisorSpec.Gian Merlino
04/07/2025, 7:06 PMGian Merlino
04/07/2025, 7:07 PMreplicas feature to mitigate even short-term durability concernsGian Merlino
04/07/2025, 7:07 PMreplicas: 1 b/c they're mostly concerned about long-term durability, and replicas: 1 is enough to get long-term durabilityGian Merlino
04/07/2025, 7:08 PMIn case when S3 is the storage mechanism, wouldn't writing every segment create a TPS bottleneck?for this- we avoid bottlenecks by making the segments relatively large. typically a segment has 3–6 million rows in it
Maytas Monsereenusorn
04/07/2025, 7:25 PMGian Merlino
04/07/2025, 9:41 PMGian Merlino
04/07/2025, 9:42 PMMaytas Monsereenusorn
04/07/2025, 9:44 PMrestored when the historicals are back onlineThat can take some time (~30mins for us with our 4-7TB per historical). During that time, you would have query returning incorrect query results (missing data, gaps, etc.). You can setup alert from Druid metrics to detect when Historicals are down and/or segments are unavailable though.
Gian Merlino
04/07/2025, 9:45 PMGian Merlino
04/07/2025, 9:45 PMGian Merlino
04/07/2025, 9:46 PMMaytas Monsereenusorn
04/07/2025, 9:47 PMHEPBO3AH
04/07/2025, 9:47 PMflush & fsync is called before the 200 is returned to ensure that the data in the buffer is written to the disk?Gian Merlino
04/07/2025, 9:50 PMGian Merlino
04/07/2025, 9:50 PMfsync because the local storage isn't expected to be durable anywayGian Merlino
04/07/2025, 9:51 PM