From 9dc697bb759dc327bd9a1374da10f5e5d4429209 Mon Sep 17 00:00:00 2001 From: bwplotka Date: Tue, 26 Nov 2024 21:30:49 +0000 Subject: [PATCH 1/8] Propose WAL format versioning and change strategy. Signed-off-by: bwplotka --- .../twofold.png | Bin 0 -> 76825 bytes .../wal.excalidraw | 1336 +++++++++++++++++ proposals/2024-11-25_changing_wal_format.md | 257 ++++ 3 files changed, 1593 insertions(+) create mode 100644 assets/2024-11-25_changing_wal_format/twofold.png create mode 100644 assets/2024-11-25_changing_wal_format/wal.excalidraw create mode 100644 proposals/2024-11-25_changing_wal_format.md diff --git a/assets/2024-11-25_changing_wal_format/twofold.png b/assets/2024-11-25_changing_wal_format/twofold.png new file mode 100644 index 0000000000000000000000000000000000000000..4d491b819e9fabf4d42b679deff4e556bb81439d GIT binary patch literal 76825 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 z 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 literal 0 HcmV?d00001 diff --git a/assets/2024-11-25_changing_wal_format/wal.excalidraw b/assets/2024-11-25_changing_wal_format/wal.excalidraw new file mode 100644 index 0000000..38690fe --- /dev/null +++ b/assets/2024-11-25_changing_wal_format/wal.excalidraw @@ -0,0 +1,1336 @@ +{ + "type": "excalidraw", + "version": 2, + "source": "https://excalidraw.com", + "elements": [ + { + "type": "image", + "version": 1216, + "versionNonce": 624880835, + "index": "bHY", + "isDeleted": false, + "id": "DAM2c-KUNA3Tp986aize5", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 435.2916966096932, + "y": 368.1866691105597, + "strokeColor": "transparent", + "backgroundColor": "transparent", + "width": 72.28322745898363, + "height": 71.68086723015877, + "seed": 245275683, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1732646972505, + "link": null, + "locked": false, + "status": "saved", + "fileId": "10d7e8c7e5e589dcb2efe46bdfec7b3660948a26", + "scale": [ + 1, + 1 + ], + "crop": null + }, + { + "type": "rectangle", + "version": 1341, + "versionNonce": 562906605, + "index": "bHZ", + "isDeleted": false, + "id": "bGi2QjYId7o04UPymwkew", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 427.5599704557958, + "y": 359.7973251389326, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 405.0659013933212, + "height": 140.9607969814194, + "seed": 1969037251, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "XDaQjz-xCKAmB-obQd_S6" + }, + { + "id": "7K0W4lf1qFTP-85SfR7Ib", + "type": "arrow" + }, + { + "id": "BqdmvsPz9Jv-TI7ctGW_e", + "type": "arrow" + }, + { + "id": "1rhF_WszbkgyDRDRHKdHC", + "type": "arrow" + } + ], + "updated": 1732648278440, + "link": null, + "locked": false + }, + { + "id": "XDaQjz-xCKAmB-obQd_S6", + "type": "text", + "x": 497.80296792064485, + "y": 405.2777236296423, + "width": 264.57990646362305, + "height": 50, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bHa", + "roundness": null, + "seed": 1959407459, + "version": 145, + "versionNonce": 1238623917, + "isDeleted": false, + "boundElements": [], + "updated": 1732647404884, + "link": null, + "locked": false, + "text": " Prometheus: [v1.2]\nSupports Data: [v3] ", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "bGi2QjYId7o04UPymwkew", + "originalText": " Prometheus: [v1.2]\nSupports Data: [v3] ", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "6lKM3Mig9Yi03S2GEhv4q", + "type": "rectangle", + "x": 643.5225656508828, + "y": 514.6136940486726, + "width": 177.0941053134402, + "height": 47.39725214774762, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bHf", + "roundness": { + "type": 3 + }, + "seed": 326185347, + "version": 193, + "versionNonce": 324078093, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "YcPmr833aem1y7hlc4V7T" + } + ], + "updated": 1732646980820, + "link": null, + "locked": false + }, + { + "id": "YcPmr833aem1y7hlc4V7T", + "type": "text", + "x": 682.1996537079935, + "y": 525.8123201225465, + "width": 99.73992919921875, + "height": 25, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bHg", + "roundness": null, + "seed": 1643514147, + "version": 214, + "versionNonce": 1713258605, + "isDeleted": false, + "boundElements": [], + "updated": 1732646980821, + "link": null, + "locked": false, + "text": "Data [v3]", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "6lKM3Mig9Yi03S2GEhv4q", + "originalText": "Data [v3]", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "image", + "version": 1257, + "versionNonce": 198236717, + "index": "bHh", + "isDeleted": false, + "id": "t_b3AgyK1hqICO54_0vV2", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 947.4956504572368, + "y": 370.0481584428833, + "strokeColor": "transparent", + "backgroundColor": "transparent", + "width": 72.28322745898363, + "height": 71.68086723015877, + "seed": 326111299, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1732646999044, + "link": null, + "locked": false, + "status": "saved", + "fileId": "10d7e8c7e5e589dcb2efe46bdfec7b3660948a26", + "scale": [ + 1, + 1 + ], + "crop": null + }, + { + "type": "rectangle", + "version": 1403, + "versionNonce": 1145667363, + "index": "bHi", + "isDeleted": false, + "id": "3K4-G43QltFZ-IsJEe0VV", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 940.4318930533394, + "y": 361.88147072125616, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 405.0659013933212, + "height": 140.9607969814194, + "seed": 606801891, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "wOeuemoY4aLyLfFZH9fxs" + }, + { + "id": "7K0W4lf1qFTP-85SfR7Ib", + "type": "arrow" + } + ], + "updated": 1732647532922, + "link": null, + "locked": false + }, + { + "id": "wOeuemoY4aLyLfFZH9fxs", + "type": "text", + "x": 1011.5949039459229, + "y": 407.3618692119659, + "width": 262.7398796081543, + "height": 50, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bHj", + "roundness": null, + "seed": 1352997763, + "version": 206, + "versionNonce": 2117317677, + "isDeleted": false, + "boundElements": [], + "updated": 1732647424475, + "link": null, + "locked": false, + "text": " Prometheus: [v1.3]\n Supports Data: [v3, v4] ", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "3K4-G43QltFZ-IsJEe0VV", + "originalText": " Prometheus: [v1.3]\n Supports Data: [v3, v4] ", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "VglqSHN4Ty7_EVjEsm-xT", + "type": "rectangle", + "x": 1166.8046444984266, + "y": 514.6704958809962, + "width": 177.0941053134402, + "height": 47.39725214774762, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#b2f2bb", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bHk", + "roundness": { + "type": 3 + }, + "seed": 1696379683, + "version": 349, + "versionNonce": 687462221, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "MQ4eQDV-VYEa_x1nPZnPr" + } + ], + "updated": 1732647590350, + "link": null, + "locked": false + }, + { + "id": "MQ4eQDV-VYEa_x1nPZnPr", + "type": "text", + "x": 1205.4817325555373, + "y": 525.86912195487, + "width": 99.73992919921875, + "height": 25, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bHl", + "roundness": null, + "seed": 570447555, + "version": 363, + "versionNonce": 209839299, + "isDeleted": false, + "boundElements": [], + "updated": 1732647586542, + "link": null, + "locked": false, + "text": "Data [v3]", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "VglqSHN4Ty7_EVjEsm-xT", + "originalText": "Data [v3]", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "image", + "version": 1460, + "versionNonce": 1150073997, + "index": "bHp", + "isDeleted": false, + "id": "6-Utk-DfzG-qARp63j4lf", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1457.7838841096932, + "y": 361.8674850453183, + "strokeColor": "transparent", + "backgroundColor": "transparent", + "width": 72.28322745898363, + "height": 71.68086723015877, + "seed": 66761901, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1732647554650, + "link": null, + "locked": false, + "status": "saved", + "fileId": "10d7e8c7e5e589dcb2efe46bdfec7b3660948a26", + "scale": [ + 1, + 1 + ], + "crop": null + }, + { + "type": "rectangle", + "version": 1731, + "versionNonce": 2111888419, + "index": "bHq", + "isDeleted": false, + "id": "DcRd1dSvmo65Z_Z8cZCs5", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1450.3021579557958, + "y": 362.0992348236912, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 405.0659013933212, + "height": 140.9607969814194, + "seed": 1970902797, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "XT0RLG0NrSr0y6ovbm5E0" + }, + { + "id": "BqdmvsPz9Jv-TI7ctGW_e", + "type": "arrow" + }, + { + "id": "1rhF_WszbkgyDRDRHKdHC", + "type": "arrow" + } + ], + "updated": 1732648333568, + "link": null, + "locked": false + }, + { + "id": "XT0RLG0NrSr0y6ovbm5E0", + "type": "text", + "x": 1521.6951645759184, + "y": 407.5796333144009, + "width": 262.2798881530762, + "height": 50, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bHr", + "roundness": null, + "seed": 1840065901, + "version": 537, + "versionNonce": 911465933, + "isDeleted": false, + "boundElements": [], + "updated": 1732648341389, + "link": null, + "locked": false, + "text": " Prometheus: [v1.4]\nSupports Data: [v3, v4] ", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "DcRd1dSvmo65Z_Z8cZCs5", + "originalText": " Prometheus: [v1.4]\nSupports Data: [v3, v4] ", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "Z5D7FnyVBlludU4ntRfj4", + "type": "rectangle", + "x": 1445.6710031508828, + "y": 514.8335724834312, + "width": 177.0941053134402, + "height": 47.39725214774762, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bHs", + "roundness": { + "type": 3 + }, + "seed": 467597261, + "version": 499, + "versionNonce": 1849525059, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "adiuVw-EOAoayRUyDp64Y" + }, + { + "id": "5AObf5g0iq2IJPuYOTS6a", + "type": "arrow" + }, + { + "id": "3_JkuuXLxQPDm2cPfj59k", + "type": "arrow" + } + ], + "updated": 1732647557188, + "link": null, + "locked": false + }, + { + "id": "adiuVw-EOAoayRUyDp64Y", + "type": "text", + "x": 1484.3480912079935, + "y": 526.032198557305, + "width": 99.73992919921875, + "height": 25, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bHt", + "roundness": null, + "seed": 170423853, + "version": 512, + "versionNonce": 1255285475, + "isDeleted": false, + "boundElements": [], + "updated": 1732647557188, + "link": null, + "locked": false, + "text": "Data [v3]", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "Z5D7FnyVBlludU4ntRfj4", + "originalText": "Data [v3]", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "5AObf5g0iq2IJPuYOTS6a", + "type": "arrow", + "x": 1623.991670964323, + "y": 541.022451602435, + "width": 41.597343938133235, + "height": 0, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bHu", + "roundness": { + "type": 2 + }, + "seed": 1131620493, + "version": 556, + "versionNonce": 1894191277, + "isDeleted": false, + "boundElements": [], + "updated": 1732647557445, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 41.597343938133235, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "Z5D7FnyVBlludU4ntRfj4", + "focus": 0.10508005980461947, + "gap": 1.2265625, + "fixedPoint": null + }, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "sVHQvQQUzcA34HD7p6Jwe", + "type": "rectangle", + "x": 1667.7138372457362, + "y": 515.0035130285612, + "width": 177.0941053134402, + "height": 47.39725214774762, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#b2f2bb", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bHv", + "roundness": { + "type": 3 + }, + "seed": 964202221, + "version": 529, + "versionNonce": 2019088291, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "LyNWCGrt9snteEmyeEeMH" + } + ], + "updated": 1732647592852, + "link": null, + "locked": false + }, + { + "id": "LyNWCGrt9snteEmyeEeMH", + "type": "text", + "x": 1706.620921030386, + "y": 526.202139102435, + "width": 99.27993774414062, + "height": 25, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bHw", + "roundness": null, + "seed": 1791109453, + "version": 546, + "versionNonce": 1123293539, + "isDeleted": false, + "boundElements": [], + "updated": 1732647557188, + "link": null, + "locked": false, + "text": "Data [v4]", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "sVHQvQQUzcA34HD7p6Jwe", + "originalText": "Data [v4]", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "64PLYwM4CBBJBc3ackPAV", + "type": "text", + "x": 1039.395738273859, + "y": 566.30859375, + "width": 254.41578418016434, + "height": 40, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bHz", + "roundness": null, + "seed": 868674659, + "version": 378, + "versionNonce": 192237101, + "isDeleted": false, + "boundElements": null, + "updated": 1732647545619, + "link": null, + "locked": false, + "text": "eventually e.g. \nnew data/compaction/truncation", + "fontSize": 16, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "top", + "containerId": null, + "originalText": "eventually e.g. \nnew data/compaction/truncation", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "m1jZatAG5CBFXT2YMotpn", + "type": "arrow", + "x": 1340.5780548127182, + "y": 419.2637554719222, + "width": 104.48046875, + "height": 0, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bIA", + "roundness": { + "type": 2 + }, + "seed": 345908589, + "version": 115, + "versionNonce": 167817293, + "isDeleted": false, + "boundElements": [], + "updated": 1732647548752, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 104.48046875, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "MHqWHiSs4RkOV0FWaFWGX", + "type": "arrow", + "x": 831.3944610627183, + "y": 425.17391172192214, + "width": 104.48046875, + "height": 0, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bIB", + "roundness": { + "type": 2 + }, + "seed": 518802275, + "version": 70, + "versionNonce": 467573933, + "isDeleted": false, + "boundElements": [], + "updated": 1732647437214, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 104.48046875, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "7K0W4lf1qFTP-85SfR7Ib", + "type": "arrow", + "x": 937.578125, + "y": 450.5234375, + "width": 103.62109375, + "height": 0, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bIF", + "roundness": { + "type": 2 + }, + "seed": 363025955, + "version": 25, + "versionNonce": 1959835373, + "isDeleted": false, + "boundElements": null, + "updated": 1732648271734, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -103.62109375, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "3K4-G43QltFZ-IsJEe0VV", + "focus": -0.25768254262109574, + "gap": 2.8537680533393655, + "fixedPoint": null + }, + "endBinding": { + "elementId": "bGi2QjYId7o04UPymwkew", + "focus": 0.28725311297759415, + "gap": 1.3311594008830525, + "fixedPoint": null + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "1dAsitEpIbWiJEAUu2fgo", + "type": "arrow", + "x": 1446.7185110138544, + "y": 446.3721308138221, + "width": 103.62109375, + "height": 0, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bIG", + "roundness": { + "type": 2 + }, + "seed": 2146251715, + "version": 108, + "versionNonce": 1188886019, + "isDeleted": false, + "boundElements": [], + "updated": 1732648273808, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -103.62109375, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "j0TTZ56XHXSFx5QGqDUtH", + "type": "rectangle", + "x": 946.1560723432799, + "y": 515.8169989261262, + "width": 177.0941053134402, + "height": 47.39725214774762, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bIH", + "roundness": { + "type": 3 + }, + "seed": 312912195, + "version": 540, + "versionNonce": 1092419, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "2hBXUniAJtuE2PiMKfkGO" + } + ], + "updated": 1732647538051, + "link": null, + "locked": false + }, + { + "id": "2hBXUniAJtuE2PiMKfkGO", + "type": "text", + "x": 985.0631561279297, + "y": 527.015625, + "width": 99.27993774414062, + "height": 25, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bII", + "roundness": null, + "seed": 321292515, + "version": 558, + "versionNonce": 134236899, + "isDeleted": false, + "boundElements": [], + "updated": 1732647538051, + "link": null, + "locked": false, + "text": "Data [v4]", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "j0TTZ56XHXSFx5QGqDUtH", + "originalText": "Data [v4]", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "JKJ94sTZ6RAZqBqpQ7kHl", + "type": "arrow", + "x": 1123.0079648151127, + "y": 537.104024821032, + "width": 41.597343938133235, + "height": 0, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bIJ", + "roundness": { + "type": 2 + }, + "seed": 132521219, + "version": 526, + "versionNonce": 573179277, + "isDeleted": false, + "boundElements": [], + "updated": 1732647541546, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 41.597343938133235, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "73QTXUY_wuGIxz6Gu70AB", + "type": "text", + "x": 1538.0147641599178, + "y": 568.53125, + "width": 254.41578418016434, + "height": 40, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bIK", + "roundness": null, + "seed": 1479706989, + "version": 407, + "versionNonce": 1537795779, + "isDeleted": false, + "boundElements": [ + { + "id": "BqdmvsPz9Jv-TI7ctGW_e", + "type": "arrow" + } + ], + "updated": 1732647645481, + "link": null, + "locked": false, + "text": "eventually e.g. \nnew data/compaction/truncation", + "fontSize": 16, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "top", + "containerId": null, + "originalText": "eventually e.g. \nnew data/compaction/truncation", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "BqdmvsPz9Jv-TI7ctGW_e", + "type": "arrow", + "x": 1438.6875, + "y": 486.937503898631, + "width": 593.703125, + "height": 260.515625, + "angle": 0, + "strokeColor": "#e03131", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bIL", + "roundness": { + "type": 2 + }, + "seed": 431048909, + "version": 276, + "versionNonce": 679243619, + "isDeleted": false, + "boundElements": null, + "updated": 1732648333568, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -272.70703125, + 250.667964851369 + ], + [ + -593.703125, + -9.847660148631007 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "DcRd1dSvmo65Z_Z8cZCs5", + "focus": 0.5551752285144688, + "gap": 11.614657955795678, + "fixedPoint": null + }, + "endBinding": { + "elementId": "bGi2QjYId7o04UPymwkew", + "focus": -0.5432781684260501, + "gap": 12.358503150883053, + "fixedPoint": null + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "eGSilqsO75CG8k-c0uXhc", + "type": "text", + "x": 1005.2718109488487, + "y": 766.171875, + "width": 318.97981560230255, + "height": 25, + "angle": 0, + "strokeColor": "#e03131", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bIM", + "roundness": null, + "seed": 822209667, + "version": 204, + "versionNonce": 32153133, + "isDeleted": false, + "boundElements": null, + "updated": 1732648269735, + "link": null, + "locked": false, + "text": "Will fail Prometheus or lose data", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "top", + "containerId": null, + "originalText": "Will fail Prometheus or lose data", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "1rhF_WszbkgyDRDRHKdHC", + "type": "arrow", + "x": 841.2512462152725, + "y": 377.2487263101487, + "width": 598.9805992405232, + "height": 183.1159138101487, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bIN", + "roundness": { + "type": 2 + }, + "seed": 853774659, + "version": 280, + "versionNonce": 162976675, + "isDeleted": false, + "boundElements": [], + "updated": 1732648379943, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 283.19797253472746, + -183.1159138101487 + ], + [ + 598.9805992405232, + -0.46111350534039275 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "bGi2QjYId7o04UPymwkew", + "focus": 0.4145490820241622, + "gap": 8.625374366155597, + "fixedPoint": null + }, + "endBinding": { + "elementId": "DcRd1dSvmo65Z_Z8cZCs5", + "focus": -0.3580560273877547, + "gap": 10.070312499999886, + "fixedPoint": null + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "EMLvskbLu4S0qoRl9qtzT", + "type": "text", + "x": 948.4244689941406, + "y": 153.07177734375, + "width": 372.61981201171875, + "height": 25, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bIO", + "roundness": null, + "seed": 1450292621, + "version": 336, + "versionNonce": 13617293, + "isDeleted": false, + "boundElements": [], + "updated": 1732648327035, + "link": null, + "locked": false, + "text": "OK if you ack to rollback through v1.3", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "top", + "containerId": null, + "originalText": "OK if you ack to rollback through v1.3", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "pajPOQM9-KqbkTUAl7e2T", + "type": "text", + "x": 827.7109375, + "y": 463.87255859375, + "width": 64.92750000000004, + "height": 67.63281250000004, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bIP", + "roundness": null, + "seed": 1620732451, + "version": 72, + "versionNonce": 1739416259, + "isDeleted": false, + "boundElements": null, + "updated": 1732648398737, + "link": null, + "locked": false, + "text": "💥", + "fontSize": 54.106250000000024, + "fontFamily": 5, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "💥", + "autoResize": true, + "lineHeight": 1.25 + } + ], + "appState": { + "gridSize": 20, + "gridStep": 5, + "gridModeEnabled": false, + "viewBackgroundColor": "#ffffff" + }, + "files": { + "10d7e8c7e5e589dcb2efe46bdfec7b3660948a26": { + "mimeType": "image/png", + "id": "10d7e8c7e5e589dcb2efe46bdfec7b3660948a26", + "dataURL": "data:image/png;base64,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", + "created": 1723672912084, + "lastRetrieved": 1732646743850 + } + } +} \ No newline at end of file diff --git a/proposals/2024-11-25_changing_wal_format.md b/proposals/2024-11-25_changing_wal_format.md new file mode 100644 index 0000000..d6950e7 --- /dev/null +++ b/proposals/2024-11-25_changing_wal_format.md @@ -0,0 +1,257 @@ +## Recommendations for WAL Format Changes + +* **Owners:** + * [@bwplotka](https://github.com/bwplotka) + +* **Contributors:** + * [@krajorama](https://github.com/krajorama) + * [@bboreham](https://github.com/bboreham) + +* **Implementation Status:** Not implemented + +* **Related Issues and PRs:** + * https://github.com/prometheus/prometheus/issues/15200 + * https://github.com/prometheus/prometheus/issues/14730 + * [WAL changes for NHCB](https://docs.google.com/document/d/1oYmvK7rrRFNrkM4Hrze8OsaK4z0GGj4pXl6VT6S_ef0/edit?tab=t.0#heading=h.545ogb8wlxze) + +* **Other docs or links:** + * [`#prometheus-wal-dev`](https://cloud-native.slack.com/archives/C082ALTBY4S) + * https://github.com/prometheus/prometheus/blob/main/tsdb/docs/format/wal.md + * [Ganesh's blog](https://ganeshvernekar.com/blog/prometheus-tsdb-the-head-block/) + +> TL;DR: We need to break forward compatibility of the WAL format. This proposal explores various data migration strategies for WAL and ways we can be more transparent about those in each Prometheus release. + +## Glossary + +For this document, I use the following compatibility wording, related to Prometheus compatibility towards the WAL format. + +* **Backward Compatibility**: When new Prometheus can read old WAL format. +* **Forward Compatibility**: When old Prometheus can read the new WAL format, it is required for potential reverts. + +In this document "compatibility" means not only a no crash, but 100% lossless e.g. reads between Prometheus and WAL versions. + +## Why + +Recently we discussed various improvements to Prometheus Write-Ahead-Log (WAL, also used in WBL) to: + +* Support new features (created timestamp (CT), native histograms with custom buckets (nhcb)). +* Efficiency improvements and tech debt cleanup (parallelization/sharding, combining records, different decoding formats). + +The current (https://github.com/prometheus/prometheus/blob/975d5d7357a220192fe1307b10ded9b35130ab1c/tsdb/docs/format/wal.md) WAL data is a handwritten variadic-encoding binary format. It's generally not versioned, and it does not support unknown fields or data except 3 specific places: + +* [record type](https://github.com/prometheus/prometheus/blob/e410a215fbe89b67f0e8edef9de25ede503ea4e0/tsdb/record/record.go#L38) +* [metric type in metadata record](https://github.com/prometheus/prometheus/blob/e410a215fbe89b67f0e8edef9de25ede503ea4e0/tsdb/record/record.go#L111) +* [metadata fields are arbitrary labels in metadata record](https://github.com/prometheus/prometheus/blob/e410a215fbe89b67f0e8edef9de25ede503ea4e0/tsdb/record/record.go#L608). + +Historically we didn't hit major problems because we were only adding new semantic data (e.g. exemplars, metadata, new native histograms) as new records. At this point, however, we need to add features to existing data (e.g. custom buckets that will replace classic histograms, or created timestamps to samples). Even if we create a new record for those and use it for new samples, any rollback will **lose that information as they appear unknown in the old version**. + +For TSDB changes (see the [context](#context--tsdb-format-changes)), we use ["2-fold" migration strategy](#two-fold-migration-strategy). However, WAL data is typically significantly smaller, around ~30m worth of samples (time to gather 120 samples for a chunk, for 15s intervals), plus 2h series records in WAL. + +### Pitfalls of the current solution + +* We don't have an officially documented migration strategy for WAL and TSDB in general (only tribal knowledge). +* Users don't know if version X of Prometheus works with version X-2 (except on some minor release that makes the change). +* No e2e testing for migration strategies, no consistent documentation when this happens on releases. + +As a result: + +* Reduced contribution and development velocity, prolonging bugs, important features and efficiency efforts. +* Increased operational cost and reduced trust for users who run highly durable Prometheus setups. + +### Context: TSDB format changes + +TSDB format, including chunk format (also used in the head with mmapped chunks), is also a handwritten variadic-encoding binary format. Compared to WAL it's generally versioned e.g. + +* [Chunk disk file format](https://github.com/prometheus/prometheus/blob/12c39d5421cc29a4bfc13fc57fd9ccd3dbc310f0/tsdb/docs/format/chunks.md#L14). +* [Head chunk disk format](https://github.com/prometheus/prometheus/blob/fd62dbc2918deea0ceae94758baf7a095b52dd5b/tsdb/docs/format/head_chunks.md#L13). +* [Index file](https://github.com/prometheus/prometheus/blob/d699dc3c7706944aafa56682ede765398f925ef0/tsdb/docs/format/index.md#L8). +* [Block meta file](https://github.com/prometheus/prometheus/blob/5e124cf4f2b9467e4ae1c679840005e727efd599/tsdb/block.go#L171). +* Chunks have its own ["encoding type"](https://github.com/prometheus/prometheus/blob/a693dd19f244f000da40bcbac85041846b78cfc1/tsdb/chunkenc/chunk.go#L29) that could be used for versioning. + +No docs or formal strategy was developed, but Prometheus generally follow the ["2-fold" migration strategy explained below](#two-fold-migration-strategy). + +## Goals + +* Agree on the official recommendations for **lossless WAL migrations** strategies for devs and users. +* Balancing development velocity with user data stability risks. + +## Non-Goals + +* TSDB format can but does not need to follow the same recommendations. We want to change the WAL format now, so prioritizing WAL. +* Mentioning Write-Before-Log, it uses WAL format so all apply to WBL too. +* To reduce scope we don't mention [memory snapshot format](https://github.com/prometheus/prometheus/blob/fd5ea4e0b590d57df1e2ef41d027f2a4f640a46c/tsdb/docs/format/memory_snapshot.md#L1) for now. + +## How + +We recommend the [Two-Fold Migration Strategy](#two-fold-migration-strategy) with two details: + +* A new flag that tells Prometheus what WAL version to write. +* There can be multiple "forward compatible" version, but the official minimum is one (see, the rejected [LTS idea](#require-lts-support)) + +We propose to add a string `--storage.tsdb.stateful.write-wal-version` flag, with the default to `v1` that has a "stateful" consequence -- once new version is used, users will be able to revert only to certain Prometheus versions. Help of this flag will explain clearly what's possible and what Prometheus version you will be able to revert to. + +In other words, we propose to add a TSDB flag `--storage.tsdb.stateful.write-wal-version=(v1 or v2)` that tells Prometheus to use a particular WAL format for both WAL and WBL. This kind of flag will change its default to a new version ONLY when (at least) one previous Prometheus version can read that version (while writing the old one). + +There are two reasons for this flag: + +* Allows users to get the new features sooner and skip the safety mechanism. +* It simplifies the process as the flag default mechanism guides users and devs in the rollout and revert procedures e.g: + * when we switch to writing v2, it's clearly visible in a flag default value. + * when we at some point remove support of WAL v1, it's clear when it happens (v1 flag value is removed). +* It allows users to set new version to write old format if needed (de-risking further). +* Gives devs quicker feedback, makes testing easier, and motivates further contributions. + +We propose to document that behaviour in: + +* dedicated guide for users +* flag help +* tsdb/docs for devs + +To achieve WAL versioning we also propose to start versioning the WAL, as [a whole format](https://github.com/prometheus/prometheus/blob/main/tsdb/docs/format/wal.md). This is necessary to communicate a breaking change and to tell Prometheus what WAL format to write in. + +We propose the addition of a `meta.json` file in the wal directory, similar to [block meta.json](https://github.com/prometheus/prometheus/blob/5e124cf4f2b9467e4ae1c679840005e727efd599/tsdb/block.go#L171), with Version field set to `1` for the current format and `2` for new changes e.g. when we start to write [new records](https://github.com/prometheus/prometheus/pull/15467/files). No `meta.json` is equivalent to `{"version":1} `meta.json` file. + +We propose to also store the new WALs in separate directories e.g. `wal.v2`. Thanks to that the rewrite from one version to another is eventual and can be done segment by segment. +The additional advantage of this way of versioning is that it's clear when your WAL fully migrated to a certain version. + +Finally, we propose that all Prometheus releases will contain the following table: + +| Data | Supported | Writes | +|-------------|-----------|--------| +| WAL | v1, v2 | v1 | +| Block index | v2 | v2 | + +``` +The last revertable Prometheus version: v3.0 +``` + +See [alternatives](#alternatives) for other ideas. + +### Two-Fold Migration Strategy + +Given the following example: + +![twofold.png](../assets/2024-11-25_changing_wal_format/twofold.png) + +1. We release Prometheus X+1 version that supports both Y and Y+1 data but still writes Y. +2. We release Prometheus X+2 version that supports both Y and Y+1 data, but now it writes new data as Y. + +While this example shows only one version where of forward compatibility (when Y and Y+1 are supported, but Y is still written), in practice there could be more "forward compatible releases" within this strategy. + +Pros: +* Users have a durable rollout path back and forth. +* Dev has clarity on how to develop "breaking revert" changes. +* In theory, it allows revert to X from X+2, by going through X+1 and ensuring all data was migrated (eventually) to Y version. In practice however that eventuality is long, or hard to discover. + +Cons: +* It can catch users by surprise + * **Mitigation**: We also plan guide and documentation. +* It takes time to rollout new changes if you want them fast. + * **Mitigation**: We plan to add a flag to opt-in sooner +* It is a breaking change which shouldn't be made in a major release. +* **Mitigation**: We accept that fact, given precedence and no other way to support both formats in the same time without major performance penalties. + +## Alternatives + +### Require LTS support + +We could add a variation to the [Two-Fold Migration Strategy](#two-fold-migration-strategy) (let's call it a "LTS migration strategy") where both X+1 and the last LTS (long time support version) before X+1, is able to read Y+1 version. Only then we are allowed to release X+2 that switches the default. + +For example: + +1. LTS 3.1 only supports WAL v1. +2. 3.3 adds WAL v2. +3. we wait unit next LTS so e.g. 3.24. +4. 3.25 can now switch to WAL v2. +5. 4.0 can remove WAL v1 support. + +Pros: +* Gives a bit more stability to users and less surprises. + +Cons: +* Extremely heavy process that will make us afraid/refuse to make improvements to WAL, because it's too much work. It might fails our goal of `Balancing development velocity with user data stability risks` + * One mitigation would be an LTS retroactive strategy e.g. LTS 3.1 only supports WALv1, 3.3 adds WALv2, we do 3.1.1 with WALv2 too, 3.4 can now switch to WALv2, 4.0 can remove WALv1 support. It gives us more flexibility, but it's not very realistic to do patch release of LTS with risky feature like a new WAL. +* We literally have no formal process for LTS versions and we don't do them regularly. + +### Add a CLI tool that rewrites WAL to a specific version + +We could add a `promtool` command that rewrites WAL segments to a given version. + +Users can then migrate their WAL with a single command either as an init process before reverting or manually on a disk. + +This should take ~minutes even for larger WAL files. + +Pros: +* Less need for a two-fold strategy? + +Cons: +* We need to write migration code and ensure it's efficient enough for bigger data +* A bit painful to use on scale and remotely (e.g. on Kubernetes) + +### Rewrite WAL before/during replay + +Instead of supporting multiple directories for WAL for various versions, we could rewrite WAL on the start. + +Pros: +* Simpler implementation + +Cons: +* We already suffer from replay problems, so I propose an eventual rewrite. +* Rewrite is more risking than read-only WAL (of previous version) + +### Don't version WAL, don't introduce a flag + +Cons: +* Takes more time for features to be available to users +* Demotivating for format changes (long feedback loop) +* Harder to communicate what exactly changed in each Prometheus version or even implement backward compatibility? + +### Record-based or segment based WAL versioning + +Given we usually change WAL by changing its records, the WAL version could be simply [max number of types](https://github.com/prometheus/prometheus/blob/5e124cf4f2b9467e4ae1c679840005e727efd599/tsdb/record/record.go#L54) we write to WAL. +Alternatively, it could be per segment e.g. introduce a special version record type that is only in the front of the segment file. + +Pros: +* Simpler to implement now. +* This would allow mixing Y and Y+1 segments/records in the same WAL, we would not need a new directory. + +Cons: +* Won't work for bigger changes e.g. + * changes that merge records + * sharding? + +### Maintain two WALs (well four, with WBL) + +Duplicating records would be too expensive for already painful latency and CPU/mem usage for e.g. replay. + +However, we could write an entirely new WAL with only a disk latency and space penalty. + +Cons: +* Disk space increased +* Inconsistent with the TSDB format strategy. +* Complex to implement. + +### Use feature flag instead + +Instead of `--storage.tsdb.stateful.write-wal-version` we could add a feature flag like logic. + +We could add a flag that is similar to the current feature flags `--enable-feature`, but it has a "stateful" consequence -- once used, users will be able to revert only to certain Prometheus versions. For example a new `--enable-stateful-feature` flag to signal that behaviour. + +Pros: +* No new flags for other storage pieces + +Cons: +* No clear logic for defaulting here +* No clear ability to force Prometheus to write to wal v1 here unless we add a "feature flag value" for v1, which is odd. + +## Action Plan + +The tasks to do in order to migrate to the new idea. + +* [ ] Introduce multi-directory WAL reading and v1 and v2 file, plus flag. +* [ ] Document WAL proposed recommendation for devs and users. +* [ ] Each release of Prometheus should mention either each version of the data format or what Prometheus version you can roll back it to. + +## Resources + +* https://stackoverflow.com/questions/13933275/use-wal-files-for-postgresql-record-version-control From 038e9a433d1e3b4498a65564dc570478082e5278 Mon Sep 17 00:00:00 2001 From: Bartlomiej Plotka Date: Mon, 2 Dec 2024 10:31:50 +0000 Subject: [PATCH 2/8] Update proposals/2024-11-25_changing_wal_format.md Co-authored-by: George Krajcsovits Signed-off-by: Bartlomiej Plotka --- proposals/2024-11-25_changing_wal_format.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proposals/2024-11-25_changing_wal_format.md b/proposals/2024-11-25_changing_wal_format.md index d6950e7..a51674c 100644 --- a/proposals/2024-11-25_changing_wal_format.md +++ b/proposals/2024-11-25_changing_wal_format.md @@ -90,7 +90,7 @@ We recommend the [Two-Fold Migration Strategy](#two-fold-migration-strategy) wit We propose to add a string `--storage.tsdb.stateful.write-wal-version` flag, with the default to `v1` that has a "stateful" consequence -- once new version is used, users will be able to revert only to certain Prometheus versions. Help of this flag will explain clearly what's possible and what Prometheus version you will be able to revert to. -In other words, we propose to add a TSDB flag `--storage.tsdb.stateful.write-wal-version=(v1 or v2)` that tells Prometheus to use a particular WAL format for both WAL and WBL. This kind of flag will change its default to a new version ONLY when (at least) one previous Prometheus version can read that version (while writing the old one). +In other words, we propose to add a TSDB flag `--storage.tsdb.stateful.write-wal-version=` that tells Prometheus to use a particular WAL format for both WAL and WBL. This kind of flag will change its default to a new version ONLY when (at least) one previous Prometheus version can read that version (while writing the old one). The initial version would be `v1`. There are two reasons for this flag: From ca31f30aa399954316d14449f552f161af713ddf Mon Sep 17 00:00:00 2001 From: bwplotka Date: Mon, 2 Dec 2024 10:44:16 +0000 Subject: [PATCH 3/8] Added a con for a flag; clarified deprecation policy. Signed-off-by: bwplotka --- proposals/2024-11-25_changing_wal_format.md | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/proposals/2024-11-25_changing_wal_format.md b/proposals/2024-11-25_changing_wal_format.md index a51674c..b399547 100644 --- a/proposals/2024-11-25_changing_wal_format.md +++ b/proposals/2024-11-25_changing_wal_format.md @@ -111,8 +111,7 @@ To achieve WAL versioning we also propose to start versioning the WAL, as [a who We propose the addition of a `meta.json` file in the wal directory, similar to [block meta.json](https://github.com/prometheus/prometheus/blob/5e124cf4f2b9467e4ae1c679840005e727efd599/tsdb/block.go#L171), with Version field set to `1` for the current format and `2` for new changes e.g. when we start to write [new records](https://github.com/prometheus/prometheus/pull/15467/files). No `meta.json` is equivalent to `{"version":1} `meta.json` file. -We propose to also store the new WALs in separate directories e.g. `wal.v2`. Thanks to that the rewrite from one version to another is eventual and can be done segment by segment. -The additional advantage of this way of versioning is that it's clear when your WAL fully migrated to a certain version. +We propose to also store the new WALs in separate directories e.g. `wal.v2`. Thanks to that the rewrite from one version to another is **eventual** and can be done segment by segment without any forcible rewrite. The WAL will be rewritten within the next 2h of a normal operation. The additional advantage of this way of versioning is that it's clear when your WAL fully migrated to a certain version. Finally, we propose that all Prometheus releases will contain the following table: @@ -138,18 +137,17 @@ Given the following example: While this example shows only one version where of forward compatibility (when Y and Y+1 are supported, but Y is still written), in practice there could be more "forward compatible releases" within this strategy. +Technically we have to keep old format read (and write) support until the next major release. Pros: * Users have a durable rollout path back and forth. * Dev has clarity on how to develop "breaking revert" changes. * In theory, it allows revert to X from X+2, by going through X+1 and ensuring all data was migrated (eventually) to Y version. In practice however that eventuality is long, or hard to discover. Cons: -* It can catch users by surprise +* It can catch users by surprise. * **Mitigation**: We also plan guide and documentation. * It takes time to rollout new changes if you want them fast. - * **Mitigation**: We plan to add a flag to opt-in sooner -* It is a breaking change which shouldn't be made in a major release. -* **Mitigation**: We accept that fact, given precedence and no other way to support both formats in the same time without major performance penalties. + * **Mitigation**: We plan to add a flag to opt-in sooner. ## Alternatives @@ -201,6 +199,9 @@ Cons: ### Don't version WAL, don't introduce a flag +Pro: +* One issue with a flag is that we lose "automatic" rollout for some users e.g. what if we will have another v3 WAL version, but users sets an explicit `--storage.tsdb.stateful.write-wal-version=v3` option? For those users they will need to make a manual choice and there might be not aware of benefits of a new WAL or do any work to test new WAL for their setup. With raw two-fold strategy format is forced, but also transparent (if without issues). + Cons: * Takes more time for features to be available to users * Demotivating for format changes (long feedback loop) @@ -244,6 +245,8 @@ Cons: * No clear logic for defaulting here * No clear ability to force Prometheus to write to wal v1 here unless we add a "feature flag value" for v1, which is odd. + + ## Action Plan The tasks to do in order to migrate to the new idea. From c66ddd416dc3483bcc757ebe6acb3167fecc4c4a Mon Sep 17 00:00:00 2001 From: bwplotka Date: Wed, 4 Dec 2024 12:16:30 +0000 Subject: [PATCH 4/8] Addressed initial comments. Signed-off-by: bwplotka --- 0000-00-00_template.md | 4 +++- proposals/2024-11-25_changing_wal_format.md | 26 ++++++++++----------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/0000-00-00_template.md b/0000-00-00_template.md index 7996364..a216cf3 100644 --- a/0000-00-00_template.md +++ b/0000-00-00_template.md @@ -63,7 +63,9 @@ Explain the full overview of the proposed solution. Some guidelines: The section stating potential alternatives. Highlight the objections reader should have towards your proposal as they read it. Tell them why you still think you should take this path [[ref](https://twitter.com/whereistanya/status/1353853753439490049)] -1. This is why not solution Z... +### Alternative: + +### Alternative: ## Action Plan diff --git a/proposals/2024-11-25_changing_wal_format.md b/proposals/2024-11-25_changing_wal_format.md index b399547..21e9fd5 100644 --- a/proposals/2024-11-25_changing_wal_format.md +++ b/proposals/2024-11-25_changing_wal_format.md @@ -86,7 +86,7 @@ No docs or formal strategy was developed, but Prometheus generally follow the [" We recommend the [Two-Fold Migration Strategy](#two-fold-migration-strategy) with two details: * A new flag that tells Prometheus what WAL version to write. -* There can be multiple "forward compatible" version, but the official minimum is one (see, the rejected [LTS idea](#require-lts-support)) +* There can be multiple "forward compatible" version, but the official minimum is one (see, the [LTS idea](#require-lts-support)) We propose to add a string `--storage.tsdb.stateful.write-wal-version` flag, with the default to `v1` that has a "stateful" consequence -- once new version is used, users will be able to revert only to certain Prometheus versions. Help of this flag will explain clearly what's possible and what Prometheus version you will be able to revert to. @@ -133,7 +133,7 @@ Given the following example: ![twofold.png](../assets/2024-11-25_changing_wal_format/twofold.png) 1. We release Prometheus X+1 version that supports both Y and Y+1 data but still writes Y. -2. We release Prometheus X+2 version that supports both Y and Y+1 data, but now it writes new data as Y. +2. We release Prometheus X+2 version that supports both Y and Y+1 data, but now it writes new data as Y+1. While this example shows only one version where of forward compatibility (when Y and Y+1 are supported, but Y is still written), in practice there could be more "forward compatible releases" within this strategy. @@ -151,7 +151,7 @@ Cons: ## Alternatives -### Require LTS support +### Extension: Require LTS support We could add a variation to the [Two-Fold Migration Strategy](#two-fold-migration-strategy) (let's call it a "LTS migration strategy") where both X+1 and the last LTS (long time support version) before X+1, is able to read Y+1 version. Only then we are allowed to release X+2 that switches the default. @@ -167,11 +167,11 @@ Pros: * Gives a bit more stability to users and less surprises. Cons: -* Extremely heavy process that will make us afraid/refuse to make improvements to WAL, because it's too much work. It might fails our goal of `Balancing development velocity with user data stability risks` +* Extremely heavy process that will make us afraid/refuse to make improvements to WAL, because it's too much work. It might fail our goal of `Balancing development velocity with user data stability risks` * One mitigation would be an LTS retroactive strategy e.g. LTS 3.1 only supports WALv1, 3.3 adds WALv2, we do 3.1.1 with WALv2 too, 3.4 can now switch to WALv2, 4.0 can remove WALv1 support. It gives us more flexibility, but it's not very realistic to do patch release of LTS with risky feature like a new WAL. -* We literally have no formal process for LTS versions and we don't do them regularly. +* We have no formal process for LTS versions, but we do this [typically yearly](https://prometheus.io/docs/introduction/release-cycle/). -### Add a CLI tool that rewrites WAL to a specific version +### Alternative: Add a CLI tool that rewrites WAL to a specific version We could add a `promtool` command that rewrites WAL segments to a given version. @@ -186,7 +186,7 @@ Cons: * We need to write migration code and ensure it's efficient enough for bigger data * A bit painful to use on scale and remotely (e.g. on Kubernetes) -### Rewrite WAL before/during replay +### Alternative: Rewrite WAL before/during replay Instead of supporting multiple directories for WAL for various versions, we could rewrite WAL on the start. @@ -197,7 +197,7 @@ Cons: * We already suffer from replay problems, so I propose an eventual rewrite. * Rewrite is more risking than read-only WAL (of previous version) -### Don't version WAL, don't introduce a flag +### Alternative: Don't version WAL, don't introduce a flag Pro: * One issue with a flag is that we lose "automatic" rollout for some users e.g. what if we will have another v3 WAL version, but users sets an explicit `--storage.tsdb.stateful.write-wal-version=v3` option? For those users they will need to make a manual choice and there might be not aware of benefits of a new WAL or do any work to test new WAL for their setup. With raw two-fold strategy format is forced, but also transparent (if without issues). @@ -207,7 +207,7 @@ Cons: * Demotivating for format changes (long feedback loop) * Harder to communicate what exactly changed in each Prometheus version or even implement backward compatibility? -### Record-based or segment based WAL versioning +### Alternative: Record-based or segment based WAL versioning Given we usually change WAL by changing its records, the WAL version could be simply [max number of types](https://github.com/prometheus/prometheus/blob/5e124cf4f2b9467e4ae1c679840005e727efd599/tsdb/record/record.go#L54) we write to WAL. Alternatively, it could be per segment e.g. introduce a special version record type that is only in the front of the segment file. @@ -221,18 +221,17 @@ Cons: * changes that merge records * sharding? -### Maintain two WALs (well four, with WBL) +### Alternative: Maintain two WALs (well four, with WBL) Duplicating records would be too expensive for already painful latency and CPU/mem usage for e.g. replay. - -However, we could write an entirely new WAL with only a disk latency and space penalty. +However, we could write an entirely new WAL with only a disk latency and space penalty, on top of writing old one, for compatibility. Cons: * Disk space increased * Inconsistent with the TSDB format strategy. * Complex to implement. -### Use feature flag instead +### Alternative: Use feature flag instead Instead of `--storage.tsdb.stateful.write-wal-version` we could add a feature flag like logic. @@ -246,7 +245,6 @@ Cons: * No clear ability to force Prometheus to write to wal v1 here unless we add a "feature flag value" for v1, which is odd. - ## Action Plan The tasks to do in order to migrate to the new idea. From 341baa1aa5479bd9953becc1df51d6e0642328b2 Mon Sep 17 00:00:00 2001 From: bwplotka Date: Tue, 10 Dec 2024 15:27:15 +0000 Subject: [PATCH 5/8] Switched to segment based versioning and LTS. Signed-off-by: bwplotka --- proposals/2024-11-25_changing_wal_format.md | 187 +++++++++++--------- 1 file changed, 105 insertions(+), 82 deletions(-) diff --git a/proposals/2024-11-25_changing_wal_format.md b/proposals/2024-11-25_changing_wal_format.md index 21e9fd5..8c722bb 100644 --- a/proposals/2024-11-25_changing_wal_format.md +++ b/proposals/2024-11-25_changing_wal_format.md @@ -6,46 +6,55 @@ * **Contributors:** * [@krajorama](https://github.com/krajorama) * [@bboreham](https://github.com/bboreham) + * [carrieedwards](https://github.com/carrieedwards) -* **Implementation Status:** Not implemented +* **Implementation Status:** Not implemented [prototype](https://github.com/prometheus/prometheus/pull/15565) * **Related Issues and PRs:** * https://github.com/prometheus/prometheus/issues/15200 * https://github.com/prometheus/prometheus/issues/14730 * [WAL changes for NHCB](https://docs.google.com/document/d/1oYmvK7rrRFNrkM4Hrze8OsaK4z0GGj4pXl6VT6S_ef0/edit?tab=t.0#heading=h.545ogb8wlxze) + * [Segment versioning prototype](https://github.com/prometheus/prometheus/pull/15565) * **Other docs or links:** * [`#prometheus-wal-dev`](https://cloud-native.slack.com/archives/C082ALTBY4S) * https://github.com/prometheus/prometheus/blob/main/tsdb/docs/format/wal.md * [Ganesh's blog](https://ganeshvernekar.com/blog/prometheus-tsdb-the-head-block/) -> TL;DR: We need to break forward compatibility of the WAL format. This proposal explores various data migration strategies for WAL and ways we can be more transparent about those in each Prometheus release. +> TL;DR: We need to break forward compatibility of the WAL format. This document proposes a data migration strategy for WAL and a lightweight ways we can be more transparent about those in each Prometheus release. +> +> We propose to version WAL by segments; with the version in the filename e.g.`00000002-v2`. For the migration, we propose the *LTS-enhanced [Two-Fold Migration Strategy](#how-two-fold-migration-strategy) with a `--storage.<...>.wal-version` flag for each Prometheus mode*. ## Glossary -For this document, I use the following compatibility wording, related to Prometheus compatibility towards the WAL format. +For this document, I use the following wording: -* **Backward Compatibility**: When new Prometheus can read old WAL format. -* **Forward Compatibility**: When old Prometheus can read the new WAL format, it is required for potential reverts. +* **Prometheus Backward Compatibility**: When new Prometheus can read old WAL format. +* **Prometheus Forward Compatibility**: When old Prometheus can read the new WAL format, which is required for the potential reverts. +* **WAL Breaking Change**: Change to the WAL that will break Prometheus backward or forward compatibility, e.g. adding a new format that will replace the existing one. -In this document "compatibility" means not only a no crash, but 100% lossless e.g. reads between Prometheus and WAL versions. +In this document, data "compatibility" means both: + +* Prometheus won't crash during compatible rollout or reverts. +* No data is lost during compatible rollouts or reverts. ## Why -Recently we discussed various improvements to Prometheus Write-Ahead-Log (WAL, also used in WBL) to: +Recently we discussed various improvements to Prometheus Write-Ahead-Log (WAL, also used as WBL for OOO) to: -* Support new features (created timestamp (CT), native histograms with custom buckets (nhcb)). -* Efficiency improvements and tech debt cleanup (parallelization/sharding, combining records, different decoding formats). +* Support new features (e.g. created timestamp (CT), native histograms with custom buckets (nhcb)). +* Efficiency improvements and tech debt cleanup (e.g. parallelization/sharding, combining records, different decoding formats). -The current (https://github.com/prometheus/prometheus/blob/975d5d7357a220192fe1307b10ded9b35130ab1c/tsdb/docs/format/wal.md) WAL data is a handwritten variadic-encoding binary format. It's generally not versioned, and it does not support unknown fields or data except 3 specific places: +The [current WAL data](https://github.com/prometheus/prometheus/blob/975d5d7357a220192fe1307b10ded9b35130ab1c/tsdb/docs/format/wal.md) is written into a handwritten variadic-encoding binary format. It's generally not versioned, and it does not support unknown fields or data except 3 specific places: * [record type](https://github.com/prometheus/prometheus/blob/e410a215fbe89b67f0e8edef9de25ede503ea4e0/tsdb/record/record.go#L38) * [metric type in metadata record](https://github.com/prometheus/prometheus/blob/e410a215fbe89b67f0e8edef9de25ede503ea4e0/tsdb/record/record.go#L111) * [metadata fields are arbitrary labels in metadata record](https://github.com/prometheus/prometheus/blob/e410a215fbe89b67f0e8edef9de25ede503ea4e0/tsdb/record/record.go#L608). -Historically we didn't hit major problems because we were only adding new semantic data (e.g. exemplars, metadata, new native histograms) as new records. At this point, however, we need to add features to existing data (e.g. custom buckets that will replace classic histograms, or created timestamps to samples). Even if we create a new record for those and use it for new samples, any rollback will **lose that information as they appear unknown in the old version**. +Historically, we didn't hit major problems because we were only adding new semantic data (e.g. exemplars, metadata, new native histograms) as new records. +However, these days, we need to add features to existing data (e.g. custom buckets that will replace classic histograms, cleanup of histogram records or created timestamps to samples). Even if we create a new record for those and use it for new samples, any rollback will **lose that information as they appear unknown in the old version**. -For TSDB changes (see the [context](#context--tsdb-format-changes)), we use ["2-fold" migration strategy](#two-fold-migration-strategy). However, WAL data is typically significantly smaller, around ~30m worth of samples (time to gather 120 samples for a chunk, for 15s intervals), plus 2h series records in WAL. +For the TSDB changes (see the [context](#context-tsdb-format-changes), tribally, we use an undocumented ["2-fold" migration strategy](#how-two-fold-migration-strategy). However, WAL data is typically significantly smaller, around ~30m worth of samples (time to gather 120 samples for a chunk, for 15s intervals), plus 2h series records in WAL. ### Pitfalls of the current solution @@ -68,38 +77,64 @@ TSDB format, including chunk format (also used in the head with mmapped chunks), * [Block meta file](https://github.com/prometheus/prometheus/blob/5e124cf4f2b9467e4ae1c679840005e727efd599/tsdb/block.go#L171). * Chunks have its own ["encoding type"](https://github.com/prometheus/prometheus/blob/a693dd19f244f000da40bcbac85041846b78cfc1/tsdb/chunkenc/chunk.go#L29) that could be used for versioning. -No docs or formal strategy was developed, but Prometheus generally follow the ["2-fold" migration strategy explained below](#two-fold-migration-strategy). +No docs or formal strategy was developed, but Prometheus generally follow the ["2-fold" migration strategy explained below](#how-two-fold-migration-strategy). ## Goals * Agree on the official recommendations for **lossless WAL migrations** strategies for devs and users. * Balancing development velocity with user data stability risks. +* Ability to develop new version across releases in `main` branch. ## Non-Goals -* TSDB format can but does not need to follow the same recommendations. We want to change the WAL format now, so prioritizing WAL. -* Mentioning Write-Before-Log, it uses WAL format so all apply to WBL too. -* To reduce scope we don't mention [memory snapshot format](https://github.com/prometheus/prometheus/blob/fd5ea4e0b590d57df1e2ef41d027f2a4f640a46c/tsdb/docs/format/memory_snapshot.md#L1) for now. +* TSDB format can, but does not need to follow the same recommendations. We want to change the WAL format now, so prioritizing WAL. +* Mentioning Write-Before-Log (WBL) or checkpoints, both uses WAL format internally. +* To reduce the scope we don't mention [memory snapshot format](https://github.com/prometheus/prometheus/blob/fd5ea4e0b590d57df1e2ef41d027f2a4f640a46c/tsdb/docs/format/memory_snapshot.md#L1) for now. ## How -We recommend the [Two-Fold Migration Strategy](#two-fold-migration-strategy) with two details: +We recommend the [Two-Fold Migration Strategy](#how-two-fold-migration-strategy) with the two important additions: * A new flag that tells Prometheus what WAL version to write. -* There can be multiple "forward compatible" version, but the official minimum is one (see, the [LTS idea](#require-lts-support)) +* There can be multiple "forward compatible" versions, but the official minimum is **the previous [Long-Term-Support (LTS) release](https://prometheus.io/docs/introduction/release-cycle/)**. The forward compatibility can be optionally backported to the LTS, instead of waiting up to a 1y, depending on the risk. + +An example flow could look as follows: + +1. Prometheus LTS 3.1 only supports WAL v1. +2. Prometheus 3.3 adds WAL v2. +3. We wait unit next LTS so e.g. 3.24. +4. Prometheus 3.25 can now switch to WAL v2. +5. Prometheus 4.0 can remove WAL v1 support. + +In terms of flag, we propose to add an integer `--storage..wal-version` flag, with the default to `1`. The flag tells Prometheus to write a particular WAL ve for both WAL and WBL. Similar to other flags like compression it has `stateful` consequence: once new version is used, users will be able to revert only to certain Prometheus versions. Help of this flag will explain clearly what's possible and what Prometheus version you will be able to revert to. We will change the default for this flag to a new version ONLY when (at least) one previous LTS Prometheus version can read that version (while writing the old one). The initial version would be `1`. Rationales for flag are [explained later](#how-why-flag). -We propose to add a string `--storage.tsdb.stateful.write-wal-version` flag, with the default to `v1` that has a "stateful" consequence -- once new version is used, users will be able to revert only to certain Prometheus versions. Help of this flag will explain clearly what's possible and what Prometheus version you will be able to revert to. +The proposed flag definitions: + +```go + serverOnlyFlag(a, "storage.tsdb.wal-version", fmt.Sprintf("Version for the new WAL segments. Supported versions: %v. Version 1 is supported since v2.40+", wlog.ReleasedSupportedSegmentVersions())). +Default(fmt.Sprintf("%v", wlog.DefaultSegmentVersion)).Uint32Var(&cfg.tsdb.WALSegmentVersion) + + agentOnlyFlag(a, "storage.agent.wal-version", fmt.Sprintf("Version for the new WAL segments. Supported versions: %v. Version 1 is supported since v2.40+", wlog.ReleasedSupportedSegmentVersions())). +Default(fmt.Sprintf("%v", wlog.DefaultSegmentVersion)).Uint32Var(&cfg.agent.WALSegmentVersion) +``` + +To achieve WAL versioning we also propose to start versioning the WAL. This is necessary to communicate a breaking change and to tell Prometheus what WAL format to write in. -In other words, we propose to add a TSDB flag `--storage.tsdb.stateful.write-wal-version=` that tells Prometheus to use a particular WAL format for both WAL and WBL. This kind of flag will change its default to a new version ONLY when (at least) one previous Prometheus version can read that version (while writing the old one). The initial version would be `v1`. +Given the WAL [format](https://github.com/prometheus/prometheus/blob/main/tsdb/docs/format/wal.md) is technically a "WAL Segment format" (WAL consists of list of segments), we propose to version WAL per segment. We propose capturing the version in the filename. This changes the segment filename format as follows: -There are two reasons for this flag: +```go +<8 digit sequence> => <8 digit sequence>[-v] +``` -* Allows users to get the new features sooner and skip the safety mechanism. -* It simplifies the process as the flag default mechanism guides users and devs in the rollout and revert procedures e.g: - * when we switch to writing v2, it's clearly visible in a flag default value. - * when we at some point remove support of WAL v1, it's clear when it happens (v1 flag value is removed). -* It allows users to set new version to write old format if needed (de-risking further). -* Gives devs quicker feedback, makes testing easier, and motivates further contributions. +For example, following filenames would be now valid: `00000010`, `00000010-v1`, `00000010-v2`, `00000010-v24`. The filename based segment versioning has the following benefits: + +* We can cleanly mix different versions of segments in Prometheus. +* It's relatively simple to implement (lots of LOC changed though, see [the prototype](https://github.com/prometheus/prometheus/pull/15565)). +* Current Prometheus code [will, generally, naturally skip segments with unknown version in the Prometheus versions prior to this change](https://github.com/prometheus/prometheus/blob/addaf419efba330c1e8bc7b2c7d59e878b8ac71a/tsdb/wlog/wlog.go#L931). In the worse places we will see ["not a valid filename" errors](https://github.com/prometheus/prometheus/blob/addaf419efba330c1e8bc7b2c7d59e878b8ac71a/tsdb/wlog/wlog.go#L163). +* Quick glance over `wal` or `wbl` directory tells if the migration to a next version happened or not. +* We can extend the filename format in future segment version, cleanly e.g. another suffix for sharding. + +See [the alternatives](#alternatives) the related, considered ideas. We propose to document that behaviour in: @@ -107,13 +142,7 @@ We propose to document that behaviour in: * flag help * tsdb/docs for devs -To achieve WAL versioning we also propose to start versioning the WAL, as [a whole format](https://github.com/prometheus/prometheus/blob/main/tsdb/docs/format/wal.md). This is necessary to communicate a breaking change and to tell Prometheus what WAL format to write in. - -We propose the addition of a `meta.json` file in the wal directory, similar to [block meta.json](https://github.com/prometheus/prometheus/blob/5e124cf4f2b9467e4ae1c679840005e727efd599/tsdb/block.go#L171), with Version field set to `1` for the current format and `2` for new changes e.g. when we start to write [new records](https://github.com/prometheus/prometheus/pull/15467/files). No `meta.json` is equivalent to `{"version":1} `meta.json` file. - -We propose to also store the new WALs in separate directories e.g. `wal.v2`. Thanks to that the rewrite from one version to another is **eventual** and can be done segment by segment without any forcible rewrite. The WAL will be rewritten within the next 2h of a normal operation. The additional advantage of this way of versioning is that it's clear when your WAL fully migrated to a certain version. - -Finally, we propose that all Prometheus releases will contain the following table: +Finally, we propose that all Prometheus releases will contain the content similar to the following one: | Data | Supported | Writes | |-------------|-----------|--------| @@ -121,12 +150,23 @@ Finally, we propose that all Prometheus releases will contain the following tabl | Block index | v2 | v2 | ``` -The last revertable Prometheus version: v3.0 +The last revertable Prometheus version: v3.0.0 ``` -See [alternatives](#alternatives) for other ideas. +See the [alternatives](#alternatives) for other ideas. + +### How: Why Flag? + +There are two reasons for the flag: + +* Allows users to get the new features sooner and skip the safety mechanism. +* It simplifies the compatibility guarantees as the flag default mechanism guides users and devs in the rollout and revert procedures e.g: + * when we switch to writing v2, it's clearly visible in a flag default value. + * when we at some point remove support of WAL v1, it's clear when it happens (`v1` flag value is removed). +* It allows users to set Prometheus to write the old format if needed (de-risking further). +* Gives devs quicker feedback, makes testing easier, and motivates further contributions. -### Two-Fold Migration Strategy +### How: Two-Fold Migration Strategy Given the following example: @@ -138,6 +178,7 @@ Given the following example: While this example shows only one version where of forward compatibility (when Y and Y+1 are supported, but Y is still written), in practice there could be more "forward compatible releases" within this strategy. Technically we have to keep old format read (and write) support until the next major release. + Pros: * Users have a durable rollout path back and forth. * Dev has clarity on how to develop "breaking revert" changes. @@ -145,31 +186,42 @@ Pros: Cons: * It can catch users by surprise. - * **Mitigation**: We also plan guide and documentation. + * **Mitigation**: We also plan guide and documentation and support LTS release. * It takes time to rollout new changes if you want them fast. * **Mitigation**: We plan to add a flag to opt-in sooner. ## Alternatives -### Extension: Require LTS support +### Alternative: Capture segment version in a special record -We could add a variation to the [Two-Fold Migration Strategy](#two-fold-migration-strategy) (let's call it a "LTS migration strategy") where both X+1 and the last LTS (long time support version) before X+1, is able to read Y+1 version. Only then we are allowed to release X+2 that switches the default. +TBD -For example: +### Alternative: Capture segment version in a segment header -1. LTS 3.1 only supports WAL v1. -2. 3.3 adds WAL v2. -3. we wait unit next LTS so e.g. 3.24. -4. 3.25 can now switch to WAL v2. -5. 4.0 can remove WAL v1 support. +TBD -Pros: -* Gives a bit more stability to users and less surprises. +### Alternative: Version WAL per directory. + +Instead of the segment versioning, we could propose the addition of a `meta.json` file in the wal directory, similar to [block meta.json](https://github.com/prometheus/prometheus/blob/5e124cf4f2b9467e4ae1c679840005e727efd599/tsdb/block.go#L171), with Version field set to `1` for the current format and `2` for new changes e.g. when we start to write [new records](https://github.com/prometheus/prometheus/pull/15467/files). No `meta.json` is equivalent to `{"version":1} `meta.json` file. + +We could propose to also store the new WALs in separate directories e.g. `wal.v2`. Thanks to that the rewrite from one version to another is **eventual** and can be done segment by segment without any forcible rewrite. The WAL will be rewritten within the next 2h of a normal operation. The additional advantage of this way of versioning is that it's clear when your WAL fully migrated to a certain version. + +Cons: +* Semantics on reading mixed WAL situation it's more complex to get right. + +### Alternative: Record-based WAL versioning + +Given we usually change WAL by changing its records, the WAL version could be simply [max number of types](https://github.com/prometheus/prometheus/blob/5e124cf4f2b9467e4ae1c679840005e727efd599/tsdb/record/record.go#L54) we write to WAL. + +### Alternative: Maintain two WALs (well four, with WBL) + +Duplicating records would be too expensive for already painful latency and CPU/mem usage for e.g. replay. +However, we could write an entirely new WAL with only a disk latency and space penalty, on top of writing old one, for compatibility. Cons: -* Extremely heavy process that will make us afraid/refuse to make improvements to WAL, because it's too much work. It might fail our goal of `Balancing development velocity with user data stability risks` - * One mitigation would be an LTS retroactive strategy e.g. LTS 3.1 only supports WALv1, 3.3 adds WALv2, we do 3.1.1 with WALv2 too, 3.4 can now switch to WALv2, 4.0 can remove WALv1 support. It gives us more flexibility, but it's not very realistic to do patch release of LTS with risky feature like a new WAL. -* We have no formal process for LTS versions, but we do this [typically yearly](https://prometheus.io/docs/introduction/release-cycle/). +* Disk space increased +* Inconsistent with the TSDB format strategy. +* Complex to implement. ### Alternative: Add a CLI tool that rewrites WAL to a specific version @@ -207,30 +259,6 @@ Cons: * Demotivating for format changes (long feedback loop) * Harder to communicate what exactly changed in each Prometheus version or even implement backward compatibility? -### Alternative: Record-based or segment based WAL versioning - -Given we usually change WAL by changing its records, the WAL version could be simply [max number of types](https://github.com/prometheus/prometheus/blob/5e124cf4f2b9467e4ae1c679840005e727efd599/tsdb/record/record.go#L54) we write to WAL. -Alternatively, it could be per segment e.g. introduce a special version record type that is only in the front of the segment file. - -Pros: -* Simpler to implement now. -* This would allow mixing Y and Y+1 segments/records in the same WAL, we would not need a new directory. - -Cons: -* Won't work for bigger changes e.g. - * changes that merge records - * sharding? - -### Alternative: Maintain two WALs (well four, with WBL) - -Duplicating records would be too expensive for already painful latency and CPU/mem usage for e.g. replay. -However, we could write an entirely new WAL with only a disk latency and space penalty, on top of writing old one, for compatibility. - -Cons: -* Disk space increased -* Inconsistent with the TSDB format strategy. -* Complex to implement. - ### Alternative: Use feature flag instead Instead of `--storage.tsdb.stateful.write-wal-version` we could add a feature flag like logic. @@ -244,15 +272,10 @@ Cons: * No clear logic for defaulting here * No clear ability to force Prometheus to write to wal v1 here unless we add a "feature flag value" for v1, which is odd. - ## Action Plan The tasks to do in order to migrate to the new idea. -* [ ] Introduce multi-directory WAL reading and v1 and v2 file, plus flag. +* [ ] Introduce segment based versioning; [pending PR](https://github.com/prometheus/prometheus/pull/15565). * [ ] Document WAL proposed recommendation for devs and users. -* [ ] Each release of Prometheus should mention either each version of the data format or what Prometheus version you can roll back it to. - -## Resources - -* https://stackoverflow.com/questions/13933275/use-wal-files-for-postgresql-record-version-control +* [ ] Ensure each release of Prometheus mention either each version of the data format or what Prometheus version you can roll back it to. From 5bd88f1437302e810aa78acd701d51038eeab291 Mon Sep 17 00:00:00 2001 From: Bartlomiej Plotka Date: Wed, 11 Dec 2024 13:32:23 +0000 Subject: [PATCH 6/8] Update proposals/2024-11-25_changing_wal_format.md Co-authored-by: Nicolas Takashi Signed-off-by: Bartlomiej Plotka --- proposals/2024-11-25_changing_wal_format.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proposals/2024-11-25_changing_wal_format.md b/proposals/2024-11-25_changing_wal_format.md index 8c722bb..550cc7f 100644 --- a/proposals/2024-11-25_changing_wal_format.md +++ b/proposals/2024-11-25_changing_wal_format.md @@ -6,7 +6,7 @@ * **Contributors:** * [@krajorama](https://github.com/krajorama) * [@bboreham](https://github.com/bboreham) - * [carrieedwards](https://github.com/carrieedwards) + * [@carrieedwards](https://github.com/carrieedwards) * **Implementation Status:** Not implemented [prototype](https://github.com/prometheus/prometheus/pull/15565) From 865b1490a44fcafbba08579f50b9576c2c79cb5d Mon Sep 17 00:00:00 2001 From: bwplotka Date: Wed, 11 Dec 2024 13:56:50 +0000 Subject: [PATCH 7/8] Adds more info about the alternatives. Signed-off-by: bwplotka --- proposals/2024-11-25_changing_wal_format.md | 36 ++++++++++++++++++--- 1 file changed, 32 insertions(+), 4 deletions(-) diff --git a/proposals/2024-11-25_changing_wal_format.md b/proposals/2024-11-25_changing_wal_format.md index 550cc7f..63a7469 100644 --- a/proposals/2024-11-25_changing_wal_format.md +++ b/proposals/2024-11-25_changing_wal_format.md @@ -122,7 +122,7 @@ To achieve WAL versioning we also propose to start versioning the WAL. This is n Given the WAL [format](https://github.com/prometheus/prometheus/blob/main/tsdb/docs/format/wal.md) is technically a "WAL Segment format" (WAL consists of list of segments), we propose to version WAL per segment. We propose capturing the version in the filename. This changes the segment filename format as follows: -```go +``` <8 digit sequence> => <8 digit sequence>[-v] ``` @@ -192,13 +192,41 @@ Cons: ## Alternatives -### Alternative: Capture segment version in a special record +### Alternative: Different separator than `-v` -TBD +We might want to use different format than + +``` +<8 digit sequence>[-v] +``` + +For example, `.` would be perhaps more visually appealing. + +Cons: +* `.` might be confused with the file extension. ### Alternative: Capture segment version in a segment header -TBD +Instead of the filename we could capture the segment version in the preamble or header in the binary format. +This would be more consistent with other files e.g. [`chunks`](https://github.com/prometheus/prometheus/blob/main/tsdb/docs/format/chunks.md#chunks-disk-format) or [`index`](https://github.com/prometheus/prometheus/blob/main/tsdb/docs/format/index.md). + +Header might be also easier to implement (less LOCs) and a bit more efficient. + +Cons: +* Breaks the design of WAL segment being and array of records with preamble, which was inspired by LevelDB. +* You have to parse each segment programmatically to know what it's version. This will make debugging much harder in case of errors. Additionally, it would be hard to tell when the migration fully completed in the user's directory. +* Accidental use of old Prometheus on new format would result in the corruption error, which is not ideal (it's hard to debug such errors in the future) + +### Alternative: Capture segment version in a special record + +Instead of special header or filename, we could specify a segment version in the special new record type that has to be first in the segment. + +This has a nice benefit of clean handling of new records for old Prometheus. + +Cons: +* Similar cons to [header](#alternative-capture-segment-version-in-a-segment-header) around debuggability. +* Introduces snowflake, special record, which is not technically a proper record (e.g. it has to be first) +* Perhaps failing fast is better (e.g. when parsing filename) vs treating new records as empty? ### Alternative: Version WAL per directory. From 4136c3c73238a718472de31fdb7296b020a17c30 Mon Sep 17 00:00:00 2001 From: bwplotka Date: Wed, 11 Dec 2024 15:43:11 +0000 Subject: [PATCH 8/8] Added another example. Signed-off-by: bwplotka --- proposals/2024-11-25_changing_wal_format.md | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/proposals/2024-11-25_changing_wal_format.md b/proposals/2024-11-25_changing_wal_format.md index 63a7469..c215cf8 100644 --- a/proposals/2024-11-25_changing_wal_format.md +++ b/proposals/2024-11-25_changing_wal_format.md @@ -134,7 +134,22 @@ For example, following filenames would be now valid: `00000010`, `00000010-v1`, * Quick glance over `wal` or `wbl` directory tells if the migration to a next version happened or not. * We can extend the filename format in future segment version, cleanly e.g. another suffix for sharding. -See [the alternatives](#alternatives) the related, considered ideas. +The mixed situation could look as follows: + +``` +wal/ +├── 00000000 +├── 00000001-v2 +├── 00000002-v2 +├── 00000003-v2 +├── 00000004 +├── checkpoint.00000001 +│ └── 00000000 +├── checkpoint.00000003 +│ └── 00000000-v2 +└── checkpoint.00000004 + └── 00000000 +``` We propose to document that behaviour in: