@harperfast/harper 5.1.27 → 5.1.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/resources/RocksTransactionLogStore.d.ts +4 -2
- package/dist/resources/RocksTransactionLogStore.js +12 -6
- package/dist/resources/RocksTransactionLogStore.js.map +1 -1
- package/dist/resources/Table.js +66 -16
- package/dist/resources/Table.js.map +1 -1
- package/dist/resources/replayLogs.js +25 -21
- package/dist/resources/replayLogs.js.map +1 -1
- package/dist/resources/transactionBroadcast.js +4 -6
- package/dist/resources/transactionBroadcast.js.map +1 -1
- package/dist/security/user.js +5 -1
- package/dist/security/user.js.map +1 -1
- package/dist/utility/coalesceRefresh.d.ts +6 -0
- package/dist/utility/coalesceRefresh.js +42 -0
- package/dist/utility/coalesceRefresh.js.map +1 -0
- package/npm-shrinkwrap.json +2 -2
- package/package.json +1 -1
- package/resources/DESIGN.md +5 -0
- package/resources/RocksTransactionLogStore.ts +12 -6
- package/resources/Table.ts +65 -19
- package/resources/replayLogs.ts +25 -22
- package/resources/transactionBroadcast.ts +4 -4
- package/security/user.ts +6 -1
- package/studio/web/404.html +79 -0
- package/studio/web/assets/Chat-CSSJ_LuP.js +2294 -0
- package/studio/web/assets/FloatingChat-C-5i9pB-.js +23 -0
- package/studio/web/assets/_basePickBy-QJXUw_pr.js +1 -0
- package/studio/web/assets/_baseUniq-DR4vVjyC.js +1 -0
- package/studio/web/assets/{abnfDiagram-VCTEODGH-C0_BAZyO.js → abnfDiagram-O67JEVCF-DpPZWMOf.js} +1 -1
- package/studio/web/assets/{alertDialog-DIHt7Z0r.js → alertDialog-UrbiMgQt.js} +1 -1
- package/studio/web/assets/{apiToken-BnjVwGyX.js → apiToken-_BwddeaY.js} +1 -1
- package/studio/web/assets/applications-EoXf0cg8.js +296 -0
- package/studio/web/assets/architecture-7GRP2DOG-11l4Ny1l.js +1 -0
- package/studio/web/assets/architectureDiagram-NJMV4G6O-OmgLraID.js +36 -0
- package/studio/web/assets/authStore-5jSS5pTW.js +3 -0
- package/studio/web/assets/{blockDiagram-NRAW4CY4-BdJX9Khj.js → blockDiagram-BEXU5L5S-Cv7CD3Ai.js} +16 -5
- package/studio/web/assets/{button-DhiX-njv.js → button-MFP9n8Ck.js} +2 -2
- package/studio/web/assets/c4Diagram-YGBWAQC7-Ds1vKYnN.js +38 -0
- package/studio/web/assets/channel-BDtouPd6.js +1 -0
- package/studio/web/assets/chevron-up-CFe8x5Bp.js +1 -0
- package/studio/web/assets/chunk-3FUC2YCW-DpnBPH8B.js +2 -0
- package/studio/web/assets/{chunk-OBVCFTLP-D4wWOqDQ.js → chunk-5DYCD2WN-LLLCQSzg.js} +1 -1
- package/studio/web/assets/{chunk-PWAF6VOD-2zB6IW9i.js → chunk-742MDFTN-BL8J_pIO.js} +1 -1
- package/studio/web/assets/chunk-7INBJB4K-C-hJHiiK.js +62 -0
- package/studio/web/assets/chunk-7M6MHVWA-C6ZqkFbA.js +213 -0
- package/studio/web/assets/chunk-7PRAP22T-CUXM8BG6.js +1 -0
- package/studio/web/assets/chunk-DUW6YSOI-Dgx8z5s3.js +1 -0
- package/studio/web/assets/{chunk-FOHPRMQF-DHwB1DNv.js → chunk-FOHPRMQF-DzxwRta7.js} +9 -9
- package/studio/web/assets/{chunk-SVP7TREG-FwtbH2QC.js → chunk-GTNCS2PH-DJ2BFvS1.js} +1 -1
- package/studio/web/assets/{chunk-F27PBJKO-BW7ao8AY.js → chunk-GWA4HPMP-C42bSqLL.js} +1 -1
- package/studio/web/assets/chunk-J5ZVWO5B-oDCd-gWO.js +1 -0
- package/studio/web/assets/chunk-MBY4JIJT-C-5jz6Lo.js +72 -0
- package/studio/web/assets/chunk-NETBCI7D-D-bzlN4r.js +1 -0
- package/studio/web/assets/chunk-O7XYJQB3-ep14zA23.js +128 -0
- package/studio/web/assets/chunk-UA2S7LBM-BMRWRHED.js +1 -0
- package/studio/web/assets/{chunk-POPQ4Y6H-BPrvMyKz.js → chunk-WEXAMYUT-DdLYVdX1.js} +1 -1
- package/studio/web/assets/{chunk-XXDRQBXY-BoGZu3HH.js → chunk-XXDRQBXY-CbPh2l8S.js} +1 -1
- package/studio/web/assets/chunk-Z7XXMR3K-BmKEDjcP.js +10 -0
- package/studio/web/assets/{chunk-75Z2AOVW-BT8tVmks.js → chunk-ZIGJFQKS-DLZgdNxA.js} +2 -2
- package/studio/web/assets/classDiagram-v2-NBCMYWYE-DOI5vgKT.js +217 -0
- package/studio/web/assets/cose-bilkent-JH36ORCC-BSOszL11.js +1 -0
- package/studio/web/assets/createLucideIcon-bziYxJli.js +1 -0
- package/studio/web/assets/{css.worker-BD9HbRGW.js → css.worker-l1psR_wG.js} +13 -10
- package/studio/web/assets/{cssMode-BcnWGrZ7.js → cssMode-lBlR-7LH.js} +1 -1
- package/studio/web/assets/cynefin-OW5HDTMX-BSW-DB7S.js +1 -0
- package/studio/web/assets/cynefinDiagram-VND7K2PF-CbAHEwxt.js +62 -0
- package/studio/web/assets/cytoscape.esm-BZkf-uXn.js +321 -0
- package/studio/web/assets/dagre-6A5THRUB-Csxewgs4.js +4 -0
- package/studio/web/assets/diagram-22UHCM2B-a0rt8tY4.js +200 -0
- package/studio/web/assets/{diagram-VX7I27RA-BpOqCFca.js → diagram-3UASUU5V-lEj2SVNh.js} +2 -2
- package/studio/web/assets/{diagram-VSXAHHWV-CoCAg3M9.js → diagram-ATOU4E4O-HcrAeB-q.js} +3 -3
- package/studio/web/assets/{diagram-S7CK7UJ4-BuymVFZT.js → diagram-CDSNMT55-CYxiuyEx.js} +3 -3
- package/studio/web/assets/{diagram-Z3DM3KII-Bfpw7Vbj.js → diagram-MLGK6HIB-ChbCJTgJ.js} +1 -1
- package/studio/web/assets/diagram-MPIPVDR6-DaX9Y-N3.js +41 -0
- package/studio/web/assets/dialog-DTepachC.js +1 -0
- package/studio/web/assets/{dist-kYfyPZP9.js → dist-BRuBKNNy.js} +1 -1
- package/studio/web/assets/{dist-lkA3O3eM.js → dist-Cz2Y6-6G.js} +2 -2
- package/studio/web/assets/download-CtostjYn.js +1 -0
- package/studio/web/assets/{ebnfDiagram-PWID7BFC-DS_6aWqL.js → ebnfDiagram-ZINNZB2B-CwAsENB1.js} +1 -1
- package/studio/web/assets/{editor-BpwT7NMH.js → editor-DD13jWk4.js} +1 -1
- package/studio/web/assets/editor.worker-CkkvdXvO.js +33 -0
- package/studio/web/assets/elk-276RUBZZ-Hexg9E4D.js +27 -0
- package/studio/web/assets/{erDiagram-SSCWMZ5O-DJNk6Fgw.js → erDiagram-OPXOYQCR-CeC-wwO1.js} +15 -15
- package/studio/web/assets/eventmodeling-NTZA5JFV-CFb03e0o.js +1 -0
- package/studio/web/assets/flowDiagram-KWPJA3E3-Cidi00_Y.js +1 -0
- package/studio/web/assets/{ganttDiagram-EL5Y4UJY-2pOExxMY.js → ganttDiagram-FUAMR5RP-C2_Hhl1-.js} +2 -2
- package/studio/web/assets/{getAnalytics-D4LKGeVy.js → getAnalytics-CjthMQqF.js} +1 -1
- package/studio/web/assets/gitGraph-4MIJSDKK-xIk5Vuew.js +1 -0
- package/studio/web/assets/{gitGraphDiagram-WWUBYQGX-DVIsIhbO.js → gitGraphDiagram-X574FWY7-CMxJ34up.js} +4 -4
- package/studio/web/assets/graphlib-C9Tl7QrK.js +1 -0
- package/studio/web/assets/{html-BrgdgRGR.js → html-D-yZFVDJ.js} +1 -1
- package/studio/web/assets/{html.worker-DsMmVtuG.js → html.worker-DdwM4IrA.js} +12 -9
- package/studio/web/assets/{htmlMode-JHLbSnTh.js → htmlMode-CcX-hDcn.js} +1 -1
- package/studio/web/assets/index-BiEuS38J.js +824 -0
- package/studio/web/assets/index-CPoDzQTe.css +1 -0
- package/studio/web/assets/index.lazy-BmFnCdF7.js +2 -0
- package/studio/web/assets/info-A6RAGUB7-o49TEbj-.js +1 -0
- package/studio/web/assets/infoDiagram-VRGFBTTK-Cjhh7yzZ.js +2 -0
- package/studio/web/assets/{ishikawaDiagram-5VMMS53U-BRXRp29U.js → ishikawaDiagram-OU5B5YK6-C63aXRmh.js} +2 -2
- package/studio/web/assets/{javascript-DdiFlcph.js → javascript-C_Qb7VgS.js} +1 -1
- package/studio/web/assets/{journeyDiagram-EYS64GPL-B0ou8k0n.js → journeyDiagram-ZHPQQLJL-D_o0P5Mu.js} +4 -4
- package/studio/web/assets/json.worker-CSi2hF-a.js +65 -0
- package/studio/web/assets/{jsonMode-y-tjAvy2.js → jsonMode-Bu06LimW.js} +1 -1
- package/studio/web/assets/{kanban-definition-3QL26DDD-uYg7iYzp.js → kanban-definition-PNTS6WVX-CTI9SSxY.js} +7 -7
- package/studio/web/assets/{katex-CXMH3UgJ.js → katex-ZlcWpGUi.js} +2 -2
- package/studio/web/assets/languageServices-Ca1R1u3j.js +1 -0
- package/studio/web/assets/linear-Ds1AeO4V.js +1 -0
- package/studio/web/assets/{lspLanguageFeatures-BLONDcH7.js → lspLanguageFeatures-DlK675B0.js} +2 -2
- package/studio/web/assets/{mermaid-parser.core-Ck-fC8b7.js → mermaid-parser.core-C2lcH_jP.js} +3 -3
- package/studio/web/assets/mermaid.core-BG5bjfIG.js +44 -0
- package/studio/web/assets/{mindmap-definition-FBJOCRG2-CgTZ-rit.js → mindmap-definition-NLK3R4M7-BK7ho6JD.js} +24 -24
- package/studio/web/assets/{notifications-CD-AioQq.js → notifications-ByFMWGKr.js} +1 -1
- package/studio/web/assets/notifications-Dlp-DUlc.js +1 -0
- package/studio/web/assets/packet-AYTQ26CC-BHPy6KBV.js +1 -0
- package/studio/web/assets/{pegDiagram-XKGWAZYB-DrD-7sD9.js → pegDiagram-GJSIUBJH-DzjwG3jO.js} +1 -1
- package/studio/web/assets/pie-WAS4IAKB-D0cP-DTU.js +1 -0
- package/studio/web/assets/{pieDiagram-E7YTZNPT-GntqDCzv.js → pieDiagram-5QR66LMP-C_hOP9Lv.js} +2 -2
- package/studio/web/assets/profile-CGlJ4T3_.js +1 -0
- package/studio/web/assets/{quadrantDiagram-AXDQQJYC-0UeqXQGd.js → quadrantDiagram-O4NWA36T-CZW8PbV1.js} +3 -3
- package/studio/web/assets/radar-RG4KPBEZ-C8fk0U81.js +1 -0
- package/studio/web/assets/railroad-74A4TZTK-B60FWm17.js +1 -0
- package/studio/web/assets/railroad-abnf-HS5TGJTU-CLMVZvH0.js +1 -0
- package/studio/web/assets/railroad-ebnf-LZEXJU2U--tlwFoVB.js +1 -0
- package/studio/web/assets/railroad-peg-WCYAUIDC-Dpuslblm.js +1 -0
- package/studio/web/assets/{railroadDiagram-O6MQD6OU-yHUELZaV.js → railroadDiagram-XR7U4H2S-DyyNmgbU.js} +1 -1
- package/studio/web/assets/regions-DTTjgYbw.js +1 -0
- package/studio/web/assets/{register-aPXx7u_R.js → register-BEBUrRqE.js} +39 -39
- package/studio/web/assets/{requirementDiagram-EFPCY7ZU-DNEGFjuW.js → requirementDiagram-PLB6GJNP-C4H-mLKu.js} +11 -11
- package/studio/web/assets/{rolldown-runtime-hePW80VL.js → rolldown-runtime-Dd_uD5pT.js} +1 -1
- package/studio/web/assets/sankeyDiagram-IPEJSGJF-DHDyga4c.js +40 -0
- package/studio/web/assets/sequenceDiagram-PO4LG4MO-CdNcHXRI.js +169 -0
- package/studio/web/assets/setComponentFile-C28rPBf4.js +1 -0
- package/studio/web/assets/{setup-flP_i7Na.js → setup-6gEOddyI.js} +2 -2
- package/studio/web/assets/sizeCapture-INFHLROL-3uHXrFqA.js +1 -0
- package/studio/web/assets/{src-CMc7m_Ut.js → src-D0vMJQRr.js} +1 -1
- package/studio/web/assets/stateDiagram-v2-GCMORJYK-CpKuXq15.js +291 -0
- package/studio/web/assets/status-1KvBgL5x.js +61 -0
- package/studio/web/assets/swimlanes-2SLR337P-NRHa2D8I.js +1 -0
- package/studio/web/assets/swimlanesDiagram-TC7HE7FX-BBk4t4hO.js +8 -0
- package/studio/web/assets/{tabs-B_G5zscN.js → tabs-CnQ_zenf.js} +1 -1
- package/studio/web/assets/{time-Cclkb7kQ.js → time-Ci1v4fvT.js} +1 -1
- package/studio/web/assets/timeline-definition-EJHVYXUP-D39Y-xpq.js +120 -0
- package/studio/web/assets/toggleHighContrast-CXlv5tpg.js +49 -0
- package/studio/web/assets/treeView-Q6P3EWNA-CRWR9OqD.js +1 -0
- package/studio/web/assets/treemap-WGGIJYW6-ZfXyJgLO.js +1 -0
- package/studio/web/assets/{ts.worker-DpaaFKhy.js → ts.worker-DDMUrpqh.js} +118 -115
- package/studio/web/assets/{tsMode-MuMR2idI.js → tsMode-BHepKavV.js} +5 -5
- package/studio/web/assets/{typescript-oRqW34s_.js → typescript-C9CHPLmr.js} +1 -1
- package/studio/web/assets/{useEntityRestURL-CL8txIs9.js → useEntityRestURL-BNUVRoP4.js} +1 -1
- package/studio/web/assets/useLocalStorage-BYoZF60G.js +1 -0
- package/studio/web/assets/usecaseDiagram-POWQR4AR-jf-zIDZ_.js +328 -0
- package/studio/web/assets/vendor-core-BdkdbUek.js +63 -0
- package/studio/web/assets/vendor-datadog-fCQhBHGk.js +6 -0
- package/studio/web/assets/vendor-react-izWchTRL.js +9 -0
- package/studio/web/assets/vendor-tanstack-CQ1aRjVa.js +2 -0
- package/studio/web/assets/vendor-ui-aE1tHcW7.js +41 -0
- package/studio/web/assets/vennDiagram-UO4OBE2U-BKYAZUh_.js +34 -0
- package/studio/web/assets/wardley-WFR3VGLG-BO7f36ci.js +1 -0
- package/studio/web/assets/{wardleyDiagram-VM6X3IG4-BylmIGSg.js → wardleyDiagram-VNRHLVJA-Djb0JDQc.js} +3 -3
- package/studio/web/assets/{workers-DLjwoG6x.js → workers-B0sIl4Uq.js} +1 -1
- package/studio/web/assets/x-vYntCxm4.js +1 -0
- package/studio/web/assets/{xml-3AYuspMz.js → xml-BX3ACYE-.js} +1 -1
- package/studio/web/assets/{xychartDiagram-S5SC5T6Z-CoKALMXr.js → xychartDiagram-PMCCYNJV-BQh9ubvb.js} +3 -3
- package/studio/web/assets/{yaml-UbiHrEpT.js → yaml-CTtQqCZf.js} +1 -1
- package/studio/web/assets/yaml.worker-DAK2o_H1.js +479 -0
- package/studio/web/auth/fabric-globe-dark.png +0 -0
- package/studio/web/auth/fabric-globe-light.png +0 -0
- package/studio/web/auth/fabric-platform-dark.png +0 -0
- package/studio/web/auth/fabric-platform-light.png +0 -0
- package/studio/web/index.html +15 -15
- package/utility/coalesceRefresh.ts +37 -0
- package/studio/web/assets/Chat-BkQZUW_u.js +0 -2067
- package/studio/web/assets/FloatingChat-CgzPnxV-.js +0 -23
- package/studio/web/assets/applications-V4u8yfT1.js +0 -296
- package/studio/web/assets/architecture-7GRP2DOG-DNdx5tEU.js +0 -1
- package/studio/web/assets/architectureDiagram-5GKGNRK7-BWzrASgm.js +0 -36
- package/studio/web/assets/authStore-qKmCZcaf.js +0 -3
- package/studio/web/assets/c4Diagram-UCG6FXSJ-CI6MzGmQ.js +0 -38
- package/studio/web/assets/channel-DtCV8PTL.js +0 -1
- package/studio/web/assets/chevron-up-Df2c8uoU.js +0 -1
- package/studio/web/assets/chunk-DU6HZSFF-9kAOOmI6.js +0 -127
- package/studio/web/assets/chunk-G27WJ6UU-COyLMcgK.js +0 -231
- package/studio/web/assets/chunk-GMAD6QVW-BNyXpoQO.js +0 -72
- package/studio/web/assets/chunk-JQ64N6SF-Cyz1IeLf.js +0 -1
- package/studio/web/assets/chunk-LCL6LL3I-HOzK_ppE.js +0 -206
- package/studio/web/assets/chunk-P2QGCYS3-DmIFY4d7.js +0 -1
- package/studio/web/assets/chunk-R7TYR2AO-Irip67yr.js +0 -10
- package/studio/web/assets/chunk-RHFEMEQ7-2FgyI8YU.js +0 -168
- package/studio/web/assets/chunk-TEH6E4GO-P87k5mNi.js +0 -62
- package/studio/web/assets/classDiagram-DTDB5LWJ-DbO_dCNE.js +0 -1
- package/studio/web/assets/classDiagram-v2-JRS7N3AN-DbO_dCNE.js +0 -1
- package/studio/web/assets/cose-bilkent-JH36ORCC-Cuuf67Bh.js +0 -1
- package/studio/web/assets/createLucideIcon-BKGPfjm2.js +0 -1
- package/studio/web/assets/cynefin-OW5HDTMX-BRkpLFQV.js +0 -1
- package/studio/web/assets/cynefinDiagram-5FMLGOSQ-CHT1DaX6.js +0 -62
- package/studio/web/assets/cytoscape.esm-C2x7inlt.js +0 -321
- package/studio/web/assets/dagre-3AP2YEHR-DpUXBh63.js +0 -4
- package/studio/web/assets/dagre-PrKaheQc.js +0 -1
- package/studio/web/assets/diagram-UQ7AKVKN-CyP148RM.js +0 -41
- package/studio/web/assets/dialog-CBf0Mr1d.js +0 -1
- package/studio/web/assets/download-BtTOBem-.js +0 -1
- package/studio/web/assets/editor.worker-DwcOiOeP.js +0 -30
- package/studio/web/assets/eventmodeling-NTZA5JFV-5jbe4A5P.js +0 -1
- package/studio/web/assets/flowDiagram-A5DVABFB-Dp9Ezlow.js +0 -1
- package/studio/web/assets/gitGraph-4MIJSDKK-CH5ZxwzF.js +0 -1
- package/studio/web/assets/graphlib-DS17s2tU.js +0 -1
- package/studio/web/assets/index-Cxj2_wsl.css +0 -1
- package/studio/web/assets/index-nvKFTYif.js +0 -824
- package/studio/web/assets/index.lazy-BvCjZaOM.js +0 -2
- package/studio/web/assets/info-A6RAGUB7-CPQfTnaG.js +0 -1
- package/studio/web/assets/infoDiagram-RXCK75RN-DlwLYlwm.js +0 -2
- package/studio/web/assets/json.worker-fO_hOLCP.js +0 -62
- package/studio/web/assets/languageServices-BpWu4JeF.js +0 -1
- package/studio/web/assets/linear-Cnt8506Q.js +0 -1
- package/studio/web/assets/mermaid.core-CP8aNNYm.js +0 -44
- package/studio/web/assets/notifications-Drk24Aro.js +0 -1
- package/studio/web/assets/packet-AYTQ26CC-DEyoPtPb.js +0 -1
- package/studio/web/assets/pie-WAS4IAKB-wjj-EI1d.js +0 -1
- package/studio/web/assets/profile-D2UPY_7W.js +0 -1
- package/studio/web/assets/radar-RG4KPBEZ-DFSA5h7k.js +0 -1
- package/studio/web/assets/railroad-74A4TZTK-CaOUG9wR.js +0 -1
- package/studio/web/assets/railroad-abnf-HS5TGJTU-Bc0Qi0WH.js +0 -1
- package/studio/web/assets/railroad-ebnf-LZEXJU2U-G8rVVZ2C.js +0 -1
- package/studio/web/assets/railroad-peg-WCYAUIDC-CrehKBhC.js +0 -1
- package/studio/web/assets/regions-CRxU70wx.js +0 -1
- package/studio/web/assets/sankeyDiagram-P5KCCOFB-DpyAmSVR.js +0 -40
- package/studio/web/assets/sequenceDiagram-WJ2MYXX4-TyaT7xNk.js +0 -162
- package/studio/web/assets/setComponentFile-DhSuHoa4.js +0 -1
- package/studio/web/assets/sizeCapture-X5ZJPWSS-B0uUizjq.js +0 -1
- package/studio/web/assets/stateDiagram-HBIQ2CUA-CeEdTArZ.js +0 -1
- package/studio/web/assets/stateDiagram-v2-4QOOHH4V-D4tuw9Su.js +0 -1
- package/studio/web/assets/status-CPJlcpUL.js +0 -61
- package/studio/web/assets/swimlanes-XN3QIQJK-B54FmF46.js +0 -1
- package/studio/web/assets/swimlanesDiagram-VK2B7HYN-XOhmNEvq.js +0 -8
- package/studio/web/assets/timeline-definition-24CTP7MA-D-a9ujbo.js +0 -120
- package/studio/web/assets/toggleHighContrast-hzY5eJz1.js +0 -49
- package/studio/web/assets/treeView-Q6P3EWNA-CrW_6JnS.js +0 -1
- package/studio/web/assets/treemap-WGGIJYW6-BxyYLdP_.js +0 -1
- package/studio/web/assets/useLocalStorage-Dtj1QS8_.js +0 -1
- package/studio/web/assets/vendor-core-RCcadM3e.js +0 -73
- package/studio/web/assets/vendor-datadog-BRv-mOv1.js +0 -6
- package/studio/web/assets/vendor-react-Dyj4O3HE.js +0 -9
- package/studio/web/assets/vendor-tanstack-BiFWSB3W.js +0 -1
- package/studio/web/assets/vendor-ui-vhu-UHhF.js +0 -41
- package/studio/web/assets/vennDiagram-4TSXK5OY-Cy7s7Mpy.js +0 -34
- package/studio/web/assets/wardley-WFR3VGLG-BeBL35g2.js +0 -1
- package/studio/web/assets/x-B9o9hsep.js +0 -1
- package/studio/web/assets/yaml.worker-BDL8_iuk.js +0 -454
|
@@ -98,6 +98,7 @@ function replayLogs(rootStore, tables) {
|
|
|
98
98
|
// replay all the logs
|
|
99
99
|
let transaction;
|
|
100
100
|
let lastTimestamp = 0;
|
|
101
|
+
let openCommitEnded = false;
|
|
101
102
|
let writes = 0;
|
|
102
103
|
let skipped = 0;
|
|
103
104
|
// Track forward progress so a backlog of unwritable entries can't grind the boot thread
|
|
@@ -118,8 +119,25 @@ function replayLogs(rootStore, tables) {
|
|
|
118
119
|
logger.fatal(`Aborting transaction-log replay in ${rootStore.databaseName} database: ${noProgressRun} consecutive audit entries with no successful write (${skipped} skipped as unrecoverable, ${writes} replayed so far). This backlog is making no forward progress and was blocking startup (harper#1266) — typically a peer transaction log whose values reference unresolvable shared structures (harper#1163), or a backlog for a dropped table. Continuing boot without replaying the remainder; shed or relocate the oversized/undecodable peer transaction log(s), or re-clone this node, to recover the unreplayed data.`);
|
|
119
120
|
break;
|
|
120
121
|
}
|
|
121
|
-
const { type, tableId, nodeId, recordId, version, residencyId, expiresAt, originatingOperation, username, extendedType, } = auditRecord;
|
|
122
|
+
const { type, tableId, nodeId, recordId, version, residencyId, expiresAt, originatingOperation, username, extendedType, endTxn, } = auditRecord;
|
|
122
123
|
try {
|
|
124
|
+
// A replay transaction is one native commit ("Boot replay transactions" in DESIGN.md).
|
|
125
|
+
if (transaction && (openCommitEnded || lastTimestamp !== version)) {
|
|
126
|
+
const ending = transaction;
|
|
127
|
+
transaction = undefined;
|
|
128
|
+
try {
|
|
129
|
+
ending.directCommitSync();
|
|
130
|
+
}
|
|
131
|
+
catch (error) {
|
|
132
|
+
logger.error('Error committing replay transaction', error);
|
|
133
|
+
}
|
|
134
|
+
// The wall-clock budget (harper#1316) is checked only here, between native commits with
|
|
135
|
+
// nothing staged, so aborting never tears a commit in half.
|
|
136
|
+
if ((0, replayLogsGuards_ts_1.shouldAbortSlowReplay)(performance.now() - replayStartTime, replayTimeoutMs)) {
|
|
137
|
+
logger.fatal(`Aborting transaction-log replay in ${rootStore.databaseName} database: replay has exceeded the wall-clock time limit (${writes} written, ${skipped} skipped). The transaction log contains a pathologically deep out-of-order write history that is too expensive to reconcile during boot (harper#1316). Re-clone this node from a healthy leader to recover the unreplayed data.`);
|
|
138
|
+
break;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
123
141
|
if ((0, replayLogsGuards_ts_1.classifyAuditEntryForReplay)(extendedType, tableId, true) === 'corrupt-header') {
|
|
124
142
|
skipped++;
|
|
125
143
|
noProgressRun++;
|
|
@@ -172,27 +190,9 @@ function replayLogs(rootStore, tables) {
|
|
|
172
190
|
warnedReplayHappening = true;
|
|
173
191
|
console.warn('Harper was not properly shutdown, replaying transaction logs to synchronize database');
|
|
174
192
|
}
|
|
175
|
-
if (
|
|
193
|
+
if (!transaction) {
|
|
176
194
|
lastTimestamp = version;
|
|
177
|
-
|
|
178
|
-
// commit the last transaction since we are starting a new one
|
|
179
|
-
transaction?.directCommitSync();
|
|
180
|
-
}
|
|
181
|
-
catch (error) {
|
|
182
|
-
logger.error('Error committing replay transaction', error);
|
|
183
|
-
}
|
|
184
|
-
// Abort if replay has exceeded the total wall-clock budget even while making progress
|
|
185
|
-
// (harper#1316, facet a). shouldAbortStalledReplay resets its counters on every write,
|
|
186
|
-
// so a slow-but-progressing replay (deep out-of-order audit chain walk per entry) can
|
|
187
|
-
// peg the boot thread indefinitely without tripping it. Checked only here, at a version
|
|
188
|
-
// boundary: the prior version's transaction was just committed in full and the new one
|
|
189
|
-
// is not yet staged, so aborting never tears a same-version (same source-transaction)
|
|
190
|
-
// write batch in half. Re-clone to recover the unreplayed remainder.
|
|
191
|
-
if ((0, replayLogsGuards_ts_1.shouldAbortSlowReplay)(performance.now() - replayStartTime, replayTimeoutMs)) {
|
|
192
|
-
logger.fatal(`Aborting transaction-log replay in ${rootStore.databaseName} database: replay has exceeded the wall-clock time limit (${writes} written, ${skipped} skipped). The transaction log contains a pathologically deep out-of-order write history that is too expensive to reconcile during boot (harper#1316). Re-clone this node from a healthy leader to recover the unreplayed data.`);
|
|
193
|
-
transaction = undefined; // already committed above; nothing staged for the new version
|
|
194
|
-
break;
|
|
195
|
-
}
|
|
195
|
+
openCommitEnded = false;
|
|
196
196
|
transaction = new DatabaseTransaction_ts_1.DatabaseTransaction();
|
|
197
197
|
transaction.db = primaryStore;
|
|
198
198
|
transaction.timestamp = version;
|
|
@@ -281,6 +281,10 @@ function replayLogs(rootStore, tables) {
|
|
|
281
281
|
version,
|
|
282
282
|
});
|
|
283
283
|
}
|
|
284
|
+
finally {
|
|
285
|
+
if (endTxn)
|
|
286
|
+
openCommitEnded = true;
|
|
287
|
+
}
|
|
284
288
|
}
|
|
285
289
|
try {
|
|
286
290
|
transaction?.directCommitSync();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"replayLogs.js","sourceRoot":"","sources":["../../resources/replayLogs.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BA,sDAYC;AAED,
|
|
1
|
+
{"version":3,"file":"replayLogs.js","sourceRoot":"","sources":["../../resources/replayLogs.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BA,sDAYC;AAED,gCAkQC;AAzSD,4EAA8D;AAC9D,qEAA+D;AAE/D,6DAAmD;AACnD,yDAAmD;AACnD,+DAM+B;AAC/B,mDAAgD;AAChD,wFAA6E;AAC7E,wDAAuD;AAEvD,IAAI,qBAAqB,GAAG,KAAK,CAAC;AAElC,mGAAmG;AACnG,2FAA2F;AAC3F,gGAAgG;AAChG,oGAAoG;AACpG,kGAAkG;AAClG,mGAAmG;AACnG,uFAAuF;AACvF,SAAgB,qBAAqB,CAAC,QAAa,EAAE,OAAY;IAChE,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IACpE,CAAC;IACD,IAAI,QAAQ,IAAI,OAAO,QAAQ,CAAC,GAAG,KAAK,UAAU,EAAE,CAAC;QACpD,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,UAAU;YAAE,OAAO,IAAI,CAAC;QAC/D,OAAO,CACN,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC;YAC1E,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,CAC1E,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAgB,UAAU,CAAC,SAAwB,EAAE,MAAW;IAC/D,IAAI,CAAC,kCAAY;QAAE,OAAO,CAAC,oEAAoE;IAC/F,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC9B,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE;YAC3D,OAAO,EAAE,CAAC;QACX,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ;YAAE,OAAO;QACtB,kFAAkF;QAClF,oFAAoF;QACpF,yFAAyF;QACzF,uFAAuF;QACvF,kEAAkE;QAClE,2FAA2F;QAC3F,0FAA0F;QAC1F,4CAA4C;QAC5C,IAAI,UAAU,GAAa,EAAE,CAAC;QAC9B,IAAI,CAAC;YACJ,UAAU,GAAG,IAAA,6BAAa,EAAC,SAAS,CAAC,CAAC;QACvC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,CAAC,IAAI,CACV,0DAA2D,SAAiB,CAAC,YAAY,WAAW,EACpG,KAAK,CACL,CAAC;QACH,CAAC;QACD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CACV,UAAU,UAAU,CAAC,MAAM,kDAAmD,SAAiB,CAAC,YAAY,WAAW,CACvH,CAAC;QACH,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,GAAG,EAA2B,CAAC;QACrD,KAAK,MAAM,SAAS,IAAI,MAAM,EAAE,CAAC;YAChC,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;YAChC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACrC,CAAC;QACD,sBAAsB;QACtB,IAAI,WAA4C,CAAC;QACjD,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,eAAe,GAAG,KAAK,CAAC;QAC5B,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,wFAAwF;QACxF,2FAA2F;QAC3F,6FAA6F;QAC7F,0FAA0F;QAC1F,kBAAkB;QAClB,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAC1C,IAAI,gBAAgB,GAAG,eAAe,CAAC;QACvC,yFAAyF;QACzF,qDAAqD;QACrD,MAAM,uBAAuB,GAAG,MAAM,CAAC,IAAA,2BAAM,EAAC,2BAAa,CAAC,yBAAyB,CAAC,CAAC,CAAC;QACxF,MAAM,eAAe,GAAG,uBAAuB,GAAG,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,gDAA0B,CAAC;QAC3G,MAAM,MAAM,GAA8B,SAAiB,CAAC,UAAU,CAAC;QACvE,KAAK,MAAM,WAAW,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,oBAAoB,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,CAAQ,EAAE,CAAC;YACzG,IAAI,aAAa,GAAG,CAAC,IAAI,IAAA,8CAAwB,EAAC,aAAa,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,gBAAgB,CAAC,EAAE,CAAC;gBACxG,MAAM,CAAC,KAAK,CACX,sCAAuC,SAAiB,CAAC,YAAY,cAAc,aAAa,wDAAwD,OAAO,8BAA8B,MAAM,4ZAA4Z,CAC/lB,CAAC;gBACF,MAAM;YACP,CAAC;YACD,MAAM,EACL,IAAI,EACJ,OAAO,EACP,MAAM,EACN,QAAQ,EACR,OAAO,EACP,WAAW,EACX,SAAS,EACT,oBAAoB,EACpB,QAAQ,EACR,YAAY,EACZ,MAAM,GACN,GAAG,WAAW,CAAC;YAChB,IAAI,CAAC;gBACJ,uFAAuF;gBACvF,IAAI,WAAW,IAAI,CAAC,eAAe,IAAI,aAAa,KAAK,OAAO,CAAC,EAAE,CAAC;oBACnE,MAAM,MAAM,GAAG,WAAW,CAAC;oBAC3B,WAAW,GAAG,SAAS,CAAC;oBACxB,IAAI,CAAC;wBACJ,MAAM,CAAC,gBAAgB,EAAE,CAAC;oBAC3B,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBAChB,MAAM,CAAC,KAAK,CAAC,qCAAqC,EAAE,KAAK,CAAC,CAAC;oBAC5D,CAAC;oBACD,wFAAwF;oBACxF,4DAA4D;oBAC5D,IAAI,IAAA,2CAAqB,EAAC,WAAW,CAAC,GAAG,EAAE,GAAG,eAAe,EAAE,eAAe,CAAC,EAAE,CAAC;wBACjF,MAAM,CAAC,KAAK,CACX,sCAAuC,SAAiB,CAAC,YAAY,6DAA6D,MAAM,aAAa,OAAO,iOAAiO,CAC7X,CAAC;wBACF,MAAM;oBACP,CAAC;gBACF,CAAC;gBACD,IAAI,IAAA,iDAA2B,EAAC,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,gBAAgB,EAAE,CAAC;oBACnF,OAAO,EAAE,CAAC;oBACV,aAAa,EAAE,CAAC;oBAChB,SAAS;gBACV,CAAC;gBACD,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACrC,IAAI,CAAC,KAAK,EAAE,CAAC;oBACZ,sEAAsE;oBACtE,8EAA8E;oBAC9E,+DAA+D;oBAC/D,aAAa,EAAE,CAAC;oBAChB,SAAS;gBACV,CAAC;gBACD,MAAM,EAAE,YAAY,EAAE,GAAG,KAAY,CAAC;gBACtC,IAAI,MAAW,CAAC;gBAChB,IAAI,CAAC;oBACJ,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;gBAC7C,CAAC;gBAAC,MAAM,CAAC;oBACR,2EAA2E;oBAC3E,4EAA4E;oBAC5E,6EAA6E;oBAC7E,4EAA4E;oBAC5E,6BAA6B;oBAC7B,OAAO,EAAE,CAAC;oBACV,aAAa,EAAE,CAAC;oBAChB,SAAS;gBACV,CAAC;gBACD,IACC,IAAA,iDAA2B,EAAC,YAAY,EAAE,OAAO,EAAE,MAAM,KAAK,SAAS,CAAC,KAAK,gBAAgB;oBAC7F,IAAA,iDAA2B,EAAC,IAAI,EAAE,MAAM,CAAC,EACxC,CAAC;oBACF,OAAO,EAAE,CAAC;oBACV,aAAa,EAAE,CAAC;oBAChB,SAAS;gBACV,CAAC;gBACD,mFAAmF;gBACnF,4EAA4E;gBAC5E,MAAM,OAAO,GAAY;oBACxB,MAAM;oBACN,aAAa,EAAE,IAAI;oBACnB,OAAO;oBACP,SAAS;oBACT,IAAI,EAAE,EAAE,QAAQ,EAAE;iBACX,CAAC;gBACT,MAAM,MAAM,GAAG,IAAI,gCAAa,EAAE,CAAC;gBACnC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC;gBACjB,MAAM,aAAa,GAAQ,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;gBAClE,qGAAqG;gBACrG,6FAA6F;gBAC7F,IAAI,CAAC,qBAAqB,EAAE,CAAC;oBAC5B,qBAAqB,GAAG,IAAI,CAAC;oBAC7B,OAAO,CAAC,IAAI,CAAC,sFAAsF,CAAC,CAAC;gBACtG,CAAC;gBACD,IAAI,CAAC,WAAW,EAAE,CAAC;oBAClB,aAAa,GAAG,OAAO,CAAC;oBACxB,eAAe,GAAG,KAAK,CAAC;oBACxB,WAAW,GAAG,IAAI,4CAAmB,EAAE,CAAC;oBACxC,WAAW,CAAC,EAAE,GAAG,YAAY,CAAC;oBAC9B,WAAW,CAAC,SAAS,GAAG,OAAO,CAAC;oBAChC,+FAA+F;oBAC/F,WAAW,CAAC,OAAO,GAAG,CAAC,CAAC;oBACxB,wFAAwF;oBACxF,oFAAoF;oBACpF,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC;gBAC7B,CAAC;gBACD,OAAO,CAAC,WAAW,GAAG,WAAW,CAAC;gBAClC,MAAM,OAAO,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC;gBACvE,MAAM,EAAE,CAAC;gBACT,QAAQ,IAAI,EAAE,CAAC;oBACd,KAAK,KAAK;wBACT,aAAa,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;wBAC5D,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,4BAA4B;wBAClD,MAAM;oBACP,KAAK,OAAO;wBACX,aAAa,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;wBAC7D,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,4BAA4B;wBAClD,MAAM;oBACP,KAAK,SAAS;wBACb,aAAa,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;wBACvD,MAAM;oBACP,KAAK,UAAU;wBACd,aAAa,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;wBAChD,MAAM;oBACP,KAAK,QAAQ;wBACZ,aAAa,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;wBAC9C,MAAM;oBACP,KAAK,YAAY;wBAChB,aAAa,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;wBAC1D,MAAM;oBACP,KAAK,YAAY,CAAC,CAAC,CAAC;wBACnB,MAAM,kBAAkB,GAAG,WAAW,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;wBACpE,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;wBAC3G,wFAAwF;wBACxF,4EAA4E;wBAC5E,2FAA2F;wBAC3F,sFAAsF;wBACtF,2FAA2F;wBAC3F,4FAA4F;wBAC5F,6FAA6F;wBAC7F,8FAA8F;wBAC9F,oFAAoF;wBACpF,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;wBACrC,MAAM,mBAAmB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;wBACrE,OAAO,CAAC,SAAS,CAAC,eAAe,CAChC,CAAC,GAAG,EAAE,EAAE;4BACP,qFAAqF;4BACrF,iFAAiF;4BACjF,IAAI,CAAC,iBAAiB,EAAE,CAAC;gCACxB,MAAM,CAAC,IAAI,CACV,8FAA8F,OAAO,CAAC,IAAI,IAAI,CAC9G,CAAC;gCACF,OAAO;4BACR,CAAC;4BACD,MAAM,wBAAwB,GAAG,GAAG,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;4BACxE,MAAM,kBAAkB,GAAG,wBAAwB;gCAClD,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,wBAAwB,CAAC;gCAC1C,CAAC,CAAC,SAAS,CAAC;4BACb,mFAAmF;4BACnF,mFAAmF;4BACnF,oFAAoF;4BACpF,IAAI,kBAAkB,IAAI,qBAAqB,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,EAAE,CAAC;gCACxF,MAAM,CAAC,IAAI,CACV,mCAAmC,OAAO,CAAC,IAAI,qEAAqE,CACpH,CAAC;gCACF,OAAO;4BACR,CAAC;4BACD,GAAG,CAAC,OAAO,CAAC,mBAAmB,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC;wBAChE,CAAC,EACD,EAAE,WAAW,EAAE,IAAI,EAAE,CACrB,CAAC;wBACF,iFAAiF;wBACjF,2FAA2F;wBAC3F,wFAAwF;wBACxF,0FAA0F;oBAC3F,CAAC;gBACF,CAAC;gBACD,8EAA8E;gBAC9E,8EAA8E;gBAC9E,qFAAqF;gBACrF,aAAa,GAAG,CAAC,CAAC;gBAClB,gBAAgB,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;YACtC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACd,iFAAiF;gBACjF,8EAA8E;gBAC9E,uFAAuF;gBACvF,aAAa,EAAE,CAAC;gBAChB,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE,GAAG,EAAE;oBACrD,OAAO;iBACP,CAAC,CAAC;YACJ,CAAC;oBAAS,CAAC;gBACV,IAAI,MAAM;oBAAE,eAAe,GAAG,IAAI,CAAC;YACpC,CAAC;QACF,CAAC;QACD,IAAI,CAAC;YACJ,WAAW,EAAE,gBAAgB,EAAE,CAAC;QACjC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,CAAC,KAAK,CAAC,qCAAqC,EAAE,KAAK,CAAC,CAAC;QAC5D,CAAC;QACD,IAAI,MAAM,GAAG,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,YAAY,MAAM,eAAgB,SAAiB,CAAC,YAAY,WAAW,CAAC,CAAC;QACzG,IAAI,OAAO,GAAG,CAAC;YACd,MAAM,CAAC,IAAI,CACV,WAAW,OAAO,mCAAoC,SAAiB,CAAC,YAAY,yBAAyB,CAC7G,CAAC;QACH,+EAA+E;QAC/E,kCAAkC;IACnC,CAAC,CAAC,CAAC;AACJ,CAAC;AACD,SAAS,QAAQ,CAAC,MAAM;IACvB,OAAO,EAAE,CAAC,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;AAC5C,CAAC"}
|
|
@@ -197,7 +197,7 @@ function notifyFromTransactionData(subscriptions, auditLogIterable, allowYield =
|
|
|
197
197
|
let ancestorLevel = 0;
|
|
198
198
|
do {
|
|
199
199
|
// we iterate through the key hierarchy, notifying all subscribers for each key,
|
|
200
|
-
// so for an id like resource/foo/bar, we notify subscribers for resource/foo/bar, resource/foo/, resource
|
|
200
|
+
// so for an id like resource/foo/bar, we notify subscribers for resource/foo/bar, resource/foo/, resource/, and the root (null)
|
|
201
201
|
// this allows for efficient subscriptions to children ids/topics
|
|
202
202
|
const keySubscriptions = tableSubscriptions.get(matchingKey);
|
|
203
203
|
if (keySubscriptions) {
|
|
@@ -240,11 +240,9 @@ function notifyFromTransactionData(subscriptions, auditLogIterable, allowYield =
|
|
|
240
240
|
if (lastSlash !== matchingKey.length - 1) {
|
|
241
241
|
ancestorLevel++; // don't increase the ancestor level for this going from resource/ to resource
|
|
242
242
|
}
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
else
|
|
247
|
-
matchingKey = null;
|
|
243
|
+
// lastIndexOf clamps a negative fromIndex to 0, so '/' would otherwise yield itself forever
|
|
244
|
+
const parentKey = lastSlash > -1 ? matchingKey.slice(0, lastSlash + 1) : null;
|
|
245
|
+
matchingKey = parentKey === matchingKey ? null : parentKey;
|
|
248
246
|
} while (true);
|
|
249
247
|
}
|
|
250
248
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transactionBroadcast.js","sourceRoot":"","sources":["../../resources/transactionBroadcast.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"transactionBroadcast.js","sourceRoot":"","sources":["../../resources/transactionBroadcast.ts"],"names":[],"mappings":"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"}
|
package/dist/security/user.js
CHANGED
|
@@ -80,6 +80,7 @@ const password = __importStar(require("../utility/password.js"));
|
|
|
80
80
|
const Server_ts_1 = require("../server/Server.js");
|
|
81
81
|
const terms = __importStar(require("../utility/hdbTerms.js"));
|
|
82
82
|
const operationPermissions_ts_1 = require("../utility/operationPermissions.js");
|
|
83
|
+
const coalesceRefresh_ts_1 = require("../utility/coalesceRefresh.js");
|
|
83
84
|
Server_ts_1.server.getUser = (username, password) => {
|
|
84
85
|
return findAndValidateUser(username, password, password != null);
|
|
85
86
|
};
|
|
@@ -302,11 +303,14 @@ function cacheExpandedOperationsPerms(userRole) {
|
|
|
302
303
|
return;
|
|
303
304
|
userRole.permission._expandedOperations = (0, operationPermissions_ts_1.expandOperationsPerms)(userRole.permission.operations);
|
|
304
305
|
}
|
|
306
|
+
const refreshUsersWithRolesCache = (0, coalesceRefresh_ts_1.coalesceRefresh)(async () => {
|
|
307
|
+
usersWithRolesMap = await listUsers();
|
|
308
|
+
});
|
|
305
309
|
async function setUsersWithRolesCache(cache = undefined) {
|
|
306
310
|
if (cache)
|
|
307
311
|
usersWithRolesMap = cache;
|
|
308
312
|
else
|
|
309
|
-
|
|
313
|
+
await refreshUsersWithRolesCache();
|
|
310
314
|
}
|
|
311
315
|
async function getUsersWithRolesCache() {
|
|
312
316
|
if (!usersWithRolesMap)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.js","sourceRoot":"","sources":["../../security/user.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"user.js","sourceRoot":"","sources":["../../security/user.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wraps `refresh` so at most one run is in flight. Calls made while one runs share a single trailing
|
|
3
|
+
* run that starts once it settles, so each caller resolves after a run that started after its call.
|
|
4
|
+
* Joining the in-flight run instead could resolve a caller with state read before its own write.
|
|
5
|
+
*/
|
|
6
|
+
export declare function coalesceRefresh(refresh: () => Promise<void>): () => Promise<void>;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.coalesceRefresh = coalesceRefresh;
|
|
4
|
+
/**
|
|
5
|
+
* Wraps `refresh` so at most one run is in flight. Calls made while one runs share a single trailing
|
|
6
|
+
* run that starts once it settles, so each caller resolves after a run that started after its call.
|
|
7
|
+
* Joining the in-flight run instead could resolve a caller with state read before its own write.
|
|
8
|
+
*/
|
|
9
|
+
function coalesceRefresh(refresh) {
|
|
10
|
+
let running;
|
|
11
|
+
let queued;
|
|
12
|
+
const start = () => {
|
|
13
|
+
// Deferred so `running` is set before `refresh` runs: a call from inside it must queue, not overlap
|
|
14
|
+
const run = (running = Promise.resolve().then(refresh));
|
|
15
|
+
run.then(settle, settle);
|
|
16
|
+
return run;
|
|
17
|
+
};
|
|
18
|
+
// Hands off to the queued run in the same step that clears `running`, so no caller can start a
|
|
19
|
+
// second concurrent run in between.
|
|
20
|
+
const settle = () => {
|
|
21
|
+
running = undefined;
|
|
22
|
+
const next = queued;
|
|
23
|
+
if (next) {
|
|
24
|
+
queued = undefined;
|
|
25
|
+
start().then(next.resolve, next.reject);
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
return () => {
|
|
29
|
+
if (!running)
|
|
30
|
+
return start();
|
|
31
|
+
if (!queued) {
|
|
32
|
+
let resolve, reject;
|
|
33
|
+
const promise = new Promise((yes, no) => {
|
|
34
|
+
resolve = yes;
|
|
35
|
+
reject = no;
|
|
36
|
+
});
|
|
37
|
+
queued = { promise, resolve, reject };
|
|
38
|
+
}
|
|
39
|
+
return queued.promise;
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=coalesceRefresh.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coalesceRefresh.js","sourceRoot":"","sources":["../../utility/coalesceRefresh.ts"],"names":[],"mappings":";;AAKA,0CA+BC;AApCD;;;;GAIG;AACH,SAAgB,eAAe,CAAC,OAA4B;IAC3D,IAAI,OAAkC,CAAC;IACvC,IAAI,MAAqG,CAAC;IAC1G,MAAM,KAAK,GAAG,GAAkB,EAAE;QACjC,oGAAoG;QACpG,MAAM,GAAG,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QACxD,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACzB,OAAO,GAAG,CAAC;IACZ,CAAC,CAAC;IACF,+FAA+F;IAC/F,oCAAoC;IACpC,MAAM,MAAM,GAAG,GAAG,EAAE;QACnB,OAAO,GAAG,SAAS,CAAC;QACpB,MAAM,IAAI,GAAG,MAAM,CAAC;QACpB,IAAI,IAAI,EAAE,CAAC;YACV,MAAM,GAAG,SAAS,CAAC;YACnB,KAAK,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACzC,CAAC;IACF,CAAC,CAAC;IACF,OAAO,GAAG,EAAE;QACX,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,IAAI,OAAmB,EAAE,MAAgC,CAAC;YAC1D,MAAM,OAAO,GAAG,IAAI,OAAO,CAAO,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE;gBAC7C,OAAO,GAAG,GAAG,CAAC;gBACd,MAAM,GAAG,EAAE,CAAC;YACb,CAAC,CAAC,CAAC;YACH,MAAM,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QACvC,CAAC;QACD,OAAO,MAAM,CAAC,OAAO,CAAC;IACvB,CAAC,CAAC;AACH,CAAC"}
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "harper",
|
|
3
|
-
"version": "5.1.
|
|
3
|
+
"version": "5.1.29",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "harper",
|
|
9
|
-
"version": "5.1.
|
|
9
|
+
"version": "5.1.29",
|
|
10
10
|
"license": "Apache-2.0",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@aws-sdk/client-s3": "^3.1012.0",
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@harperfast/harper",
|
|
3
3
|
"description": "Harper is an open-source Node.js performance platform that unifies database, cache, application, and messaging layers into one in-memory process.",
|
|
4
|
-
"version": "5.1.
|
|
4
|
+
"version": "5.1.29",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"homepage": "https://harper.fast",
|
|
7
7
|
"bugs": {
|
package/resources/DESIGN.md
CHANGED
|
@@ -86,6 +86,7 @@ One giant `makeTable()` factory that returns a `TableResource extends Resource`
|
|
|
86
86
|
| How are residencies enforced (replication)? | `Table.ts → #section: lifecycle-admin` (residency block: `getResidencyRecord`, `setResidency`, `setResidencyById`, `getResidency`) |
|
|
87
87
|
| How is the RecordObject prototype applied? | `RecordEncoder.ts` (see `../DESIGN.md`) |
|
|
88
88
|
| Where is the per-request transaction stored? | `transaction.ts` + `contextStorage` (AsyncLocalStorage) |
|
|
89
|
+
| How does boot replay delimit its transactions? | `replayLogs.ts` (see "Boot replay transactions" below) |
|
|
89
90
|
| How does a URL path map to a Resource? | `Resources.ts → getMatch` (exact/prefix fast path) then `matchParamRoute` (parameterised routes); see "Path routing" below |
|
|
90
91
|
|
|
91
92
|
---
|
|
@@ -125,6 +126,10 @@ Tests: `../unitTests/resources/paramRoutes.test.js` (unit) and `../integrationTe
|
|
|
125
126
|
|
|
126
127
|
---
|
|
127
128
|
|
|
129
|
+
## Boot replay transactions (`replayLogs.ts`)
|
|
130
|
+
|
|
131
|
+
After an unclean shutdown `replayLogs` re-applies the unflushed transaction log inside `DatabaseTransaction`s marked `isReplay` (never re-logged). **A replay transaction is one native commit, never more**: it ends at the commit's last entry (the `endTxn` flag `RocksTransactionLogStore.getRange` sets on every yielded audit record) or at a change of log key, and the marker is recorded even for an entry replay skips, so a commit whose last entry is unrecoverable still closes. A log key alone is not a commit: a replication receiver commits every re-delivery of a source transaction under the origin's key, and grouping by key once staged millions of same-key commits into one transaction until the main thread ran out of heap (harper#2161). Memory during replay is bounded by the largest single native commit. The wall-clock abort (harper#1316) runs only at that boundary, with nothing staged. Accepted limits on this line: a torn tail (a final commit with no `endTxn`) is still committed as before, and an entry without the flag falls back to the log-key rule. `unitTests/resources/replayCommitBoundaries.test.js` pins the boundaries.
|
|
132
|
+
|
|
128
133
|
## Conventions
|
|
129
134
|
|
|
130
135
|
- **Never** remove `transactional()` from a static method on `Resource` — it owns transaction context lifetime.
|
|
@@ -67,7 +67,7 @@ export class RocksTransactionLogStore extends EventEmitter {
|
|
|
67
67
|
// do not record transaction entries on retry
|
|
68
68
|
return;
|
|
69
69
|
}
|
|
70
|
-
const log = this.
|
|
70
|
+
const log = this.logFor(options.nodeId, options.viaNodeId);
|
|
71
71
|
let entryBinary: Uint8Array;
|
|
72
72
|
if (auditRecord instanceof Uint8Array) entryBinary = auditRecord;
|
|
73
73
|
else {
|
|
@@ -140,6 +140,10 @@ export class RocksTransactionLogStore extends EventEmitter {
|
|
|
140
140
|
log.addEntry(entryBinary, options.transaction.id);
|
|
141
141
|
}
|
|
142
142
|
|
|
143
|
+
/** A lookup of a write's entry must read the log its write was filed in. */
|
|
144
|
+
logFor(nodeId?: number, viaNodeId?: number) {
|
|
145
|
+
return this.logById(nodeId) ?? this.logById(viaNodeId) ?? this.log;
|
|
146
|
+
}
|
|
143
147
|
logById(nodeId: number) {
|
|
144
148
|
return nodeId > -1 ? (this.nodeLogs?.[nodeId] ?? this.loadLogs()[nodeId]) : undefined;
|
|
145
149
|
}
|
|
@@ -151,18 +155,20 @@ export class RocksTransactionLogStore extends EventEmitter {
|
|
|
151
155
|
this.put(suggestedKey, value, options);
|
|
152
156
|
}
|
|
153
157
|
}
|
|
154
|
-
get(key: any, tableId: number, recordId: any, nodeId
|
|
155
|
-
return this.getSync(key, tableId, recordId, nodeId);
|
|
158
|
+
get(key: any, tableId: number, recordId: any, nodeId?: number, viaNodeId?: number) {
|
|
159
|
+
return this.getSync(key, tableId, recordId, nodeId, viaNodeId);
|
|
156
160
|
}
|
|
157
|
-
getSync(key: any, tableId: number, recordId: any, nodeId
|
|
161
|
+
getSync(key: any, tableId: number, recordId: any, nodeId?: number, viaNodeId?: number) {
|
|
158
162
|
if (typeof key === 'number') {
|
|
159
163
|
if (typeof tableId !== 'number') throw new Error('tableId must be a number');
|
|
160
164
|
if (recordId === undefined) {
|
|
161
165
|
throw new Error('recordId must be provided');
|
|
162
166
|
}
|
|
163
167
|
// this a request for a transaction log entry by a timestamp
|
|
164
|
-
|
|
165
|
-
|
|
168
|
+
const log = nodeId === undefined ? undefined : this.logFor(nodeId, viaNodeId ?? nodeId).name;
|
|
169
|
+
for (const entry of this.getRange({ start: key, exactStart: true, log })) {
|
|
170
|
+
// a relay log holds several origins' entries, and (version, nodeId) identifies one
|
|
171
|
+
if (entry.recordId === recordId && entry.tableId === tableId && !(nodeId > 0 && entry.nodeId !== nodeId)) {
|
|
166
172
|
return entry;
|
|
167
173
|
}
|
|
168
174
|
if (entry.version !== key) return; // no longer in this transaction
|
package/resources/Table.ts
CHANGED
|
@@ -105,6 +105,8 @@ type MaybePromise<T> = T | Promise<T>;
|
|
|
105
105
|
|
|
106
106
|
const NULL_WITH_TIMESTAMP = new Uint8Array(9);
|
|
107
107
|
NULL_WITH_TIMESTAMP[8] = 0xc0; // null
|
|
108
|
+
const sourceWriteTypes = new Set(['put', 'patch', 'delete', 'publish', 'message', 'invalidate', 'relocate']);
|
|
109
|
+
const USER_ROLE_WRITE = Symbol('userRoleWrite');
|
|
108
110
|
const UNCACHEABLE_TIMESTAMP = Infinity; // we use this when dynamic content is accessed that we can't safely cache, and this prevents earlier timestamps from change the "last" modification
|
|
109
111
|
const RECORD_PRUNING_INTERVAL = 60000; // one minute
|
|
110
112
|
// RocksDB-only: number of eviction/tombstone removals coalesced into a single transaction commit.
|
|
@@ -141,6 +143,7 @@ function isFrozenRecordObject(value: any): boolean {
|
|
|
141
143
|
);
|
|
142
144
|
}
|
|
143
145
|
export const INVALIDATED = 1;
|
|
146
|
+
const MIXED_WRITES = Symbol('mixed writes');
|
|
144
147
|
export const EVICTED = 8; // note that 2 is reserved for timestamps
|
|
145
148
|
const TEST_WRITE_KEY_BUFFER = Buffer.allocUnsafeSlow(8192);
|
|
146
149
|
const MAX_KEY_BYTES = 1978;
|
|
@@ -380,18 +383,14 @@ export function makeTable(options) {
|
|
|
380
383
|
// as they come in, and directly writing them to this table. We use the notification option to ensure
|
|
381
384
|
// that we don't re-broadcast these as "requested" changes back to the source.
|
|
382
385
|
(async () => {
|
|
383
|
-
let userRoleUpdate = false;
|
|
384
386
|
let lastSequenceId;
|
|
387
|
+
// A failed commit is reported by the apply loop, which awaits it
|
|
388
|
+
const signalUserChangeOnCommit = (committed: Promise<unknown>) =>
|
|
389
|
+
committed.then(() => signalling.signalUserChange(new UserEventMsg(process.pid)), noop);
|
|
385
390
|
// perform the write of an individual write event
|
|
386
391
|
const writeUpdate = async (event, context) => {
|
|
387
392
|
const value = event.value;
|
|
388
393
|
const Table = event.table ? databases[databaseName][event.table] : TableResource;
|
|
389
|
-
if (
|
|
390
|
-
databaseName === SYSTEM_SCHEMA_NAME &&
|
|
391
|
-
(event.table === SYSTEM_TABLE_NAMES.ROLE_TABLE_NAME || event.table === SYSTEM_TABLE_NAMES.USER_TABLE_NAME)
|
|
392
|
-
) {
|
|
393
|
-
userRoleUpdate = true;
|
|
394
|
-
}
|
|
395
394
|
if (event.id === undefined) {
|
|
396
395
|
event.id = value[Table.primaryKey];
|
|
397
396
|
if (event.id === undefined) throw new Error('Replication message without an id ' + JSON.stringify(event));
|
|
@@ -412,6 +411,17 @@ export function makeTable(options) {
|
|
|
412
411
|
async: true,
|
|
413
412
|
};
|
|
414
413
|
const id = event.id;
|
|
414
|
+
// Marked before any await, so a transaction's first write is seen where transaction() returns
|
|
415
|
+
if (
|
|
416
|
+
databaseName === SYSTEM_SCHEMA_NAME &&
|
|
417
|
+
(event.table === SYSTEM_TABLE_NAMES.ROLE_TABLE_NAME ||
|
|
418
|
+
event.table === SYSTEM_TABLE_NAMES.USER_TABLE_NAME) &&
|
|
419
|
+
sourceWriteTypes.has(event.type) &&
|
|
420
|
+
!context[USER_ROLE_WRITE]
|
|
421
|
+
) {
|
|
422
|
+
context[USER_ROLE_WRITE] = true;
|
|
423
|
+
if (context.committed) signalUserChangeOnCommit(context.committed);
|
|
424
|
+
}
|
|
415
425
|
const resource: TableResource = await Table.getResource(id, context, options);
|
|
416
426
|
if (event.finished) await event.finished;
|
|
417
427
|
switch (event.type) {
|
|
@@ -638,11 +648,7 @@ export function makeTable(options) {
|
|
|
638
648
|
}
|
|
639
649
|
});
|
|
640
650
|
if (txnInProgress) txnInProgress.committed = commitResolution;
|
|
641
|
-
if (
|
|
642
|
-
// if the user role changed, asynchronously signal the user change (but don't block this function)
|
|
643
|
-
commitResolution.then(() => signalling.signalUserChange(new UserEventMsg(process.pid)));
|
|
644
|
-
(commitResolution as any).waitingForUserChange = true; // only need to send one signal per transaction
|
|
645
|
-
}
|
|
651
|
+
if (commitResolution && event[USER_ROLE_WRITE]) signalUserChangeOnCommit(commitResolution);
|
|
646
652
|
|
|
647
653
|
if (event.onCommit) {
|
|
648
654
|
if (txnInProgress) {
|
|
@@ -2058,7 +2064,10 @@ export function makeTable(options) {
|
|
|
2058
2064
|
// getRange yields ascending by audit-log key, so the first entry is the oldest retained.
|
|
2059
2065
|
// Mirror replicationConnection's retention check and the cleanup key basis (localTime ??
|
|
2060
2066
|
// version). Fall back to the nominal time-based purge floor when the log is empty/unavailable.
|
|
2061
|
-
for (const entry of auditStore.getRange({
|
|
2067
|
+
for (const entry of auditStore.getRange({
|
|
2068
|
+
start: 1,
|
|
2069
|
+
log: auditStore.logFor(options?.nodeId, options?.viaNodeId).name,
|
|
2070
|
+
})) {
|
|
2062
2071
|
oldestRetainedAuditTime = entry.localTime ?? entry.version;
|
|
2063
2072
|
break;
|
|
2064
2073
|
}
|
|
@@ -2082,7 +2091,7 @@ export function makeTable(options) {
|
|
|
2082
2091
|
// A recommit of the same transaction survived that skip only because the old write batch
|
|
2083
2092
|
// still carried the put; a fresh-transaction replay (ERR_TRY_AGAIN) would drop the write.
|
|
2084
2093
|
if (isRocksDB && !stagedOwnAuditEntry && dedupVersionCouldBeRetained(txnTime)) {
|
|
2085
|
-
const priorAudit = auditStore.get(txnTime, tableId, id, options?.nodeId);
|
|
2094
|
+
const priorAudit = auditStore.get(txnTime, tableId, id, options?.nodeId, options?.viaNodeId);
|
|
2086
2095
|
if (
|
|
2087
2096
|
priorAudit &&
|
|
2088
2097
|
priorAudit.version === txnTime &&
|
|
@@ -2146,7 +2155,7 @@ export function makeTable(options) {
|
|
|
2146
2155
|
const isReDeliveredDuplicate = () => {
|
|
2147
2156
|
if (stagedOwnAuditEntry) return false;
|
|
2148
2157
|
if (!dedupVersionCouldBeRetained(txnTime)) return false; // pre-retention version — skip the end-of-log scan (best-effort; see above)
|
|
2149
|
-
const duplicate = auditStore.get(txnTime, tableId, id, options?.nodeId);
|
|
2158
|
+
const duplicate = auditStore.get(txnTime, tableId, id, options?.nodeId, options?.viaNodeId);
|
|
2150
2159
|
return (
|
|
2151
2160
|
duplicate &&
|
|
2152
2161
|
duplicate.version === txnTime &&
|
|
@@ -2536,11 +2545,13 @@ export function makeTable(options) {
|
|
|
2536
2545
|
const transaction = txnForContext(context);
|
|
2537
2546
|
checkValidId(id);
|
|
2538
2547
|
const entry = this.#entry ?? primaryStore.getEntry(id, { transaction: transaction.getReadTxn() });
|
|
2539
|
-
|
|
2540
|
-
|
|
2548
|
+
const sourceTransaction = transaction;
|
|
2549
|
+
const write = {
|
|
2541
2550
|
key: id,
|
|
2542
2551
|
store: primaryStore,
|
|
2543
2552
|
entry,
|
|
2553
|
+
deleteNodeId: options?.nodeId ?? null,
|
|
2554
|
+
redelivered: false,
|
|
2544
2555
|
nodeName: (context as any)?.nodeName,
|
|
2545
2556
|
before:
|
|
2546
2557
|
(this.constructor as any).source?.delete && !(context as any)?.source
|
|
@@ -2553,9 +2564,25 @@ export function makeTable(options) {
|
|
|
2553
2564
|
context.lastModified = existingEntry.version;
|
|
2554
2565
|
TableResource._updateResource(this, existingEntry);
|
|
2555
2566
|
}
|
|
2556
|
-
|
|
2567
|
+
const precedesExisting = precedesExistingVersion(txnTime, existingEntry, options?.nodeId);
|
|
2568
|
+
if (precedesExisting < 0) {
|
|
2557
2569
|
return;
|
|
2558
2570
|
} // a newer record exists locally
|
|
2571
|
+
// A delete re-delivered onto the removal it already made (same version and origin) must not write
|
|
2572
|
+
// again: the audit entry it would append is forwarded and re-logged by every peer. Each write sees
|
|
2573
|
+
// the entry from before the transaction, so this holds only when every write to the key in the
|
|
2574
|
+
// transaction is this origin's delete. A retry round reads back this write's own staged removal, so
|
|
2575
|
+
// it repeats the first round's decision instead.
|
|
2576
|
+
const redelivered = retry
|
|
2577
|
+
? write.redelivered
|
|
2578
|
+
: precedesExisting === 0 &&
|
|
2579
|
+
existingEntry?.version === txnTime &&
|
|
2580
|
+
(existingEntry.nodeId ?? 0) === (options?.nodeId ?? getThisNodeId(auditStore) ?? 0) &&
|
|
2581
|
+
existingRecord == null &&
|
|
2582
|
+
!(existingEntry.metadataFlags & INVALIDATED) &&
|
|
2583
|
+
onlyDeletesFrom(sourceTransaction, id, write.deleteNodeId);
|
|
2584
|
+
write.redelivered = redelivered;
|
|
2585
|
+
if (redelivered) return;
|
|
2559
2586
|
updateIndices(id, existingRecord, null, transaction && { transaction });
|
|
2560
2587
|
if (audit || trackDeletes) {
|
|
2561
2588
|
updateRecord(
|
|
@@ -2579,7 +2606,8 @@ export function makeTable(options) {
|
|
|
2579
2606
|
removeEntry(primaryStore, existingEntry);
|
|
2580
2607
|
}
|
|
2581
2608
|
},
|
|
2582
|
-
} as any
|
|
2609
|
+
} as any;
|
|
2610
|
+
transaction.addWrite(write);
|
|
2583
2611
|
return true;
|
|
2584
2612
|
}
|
|
2585
2613
|
|
|
@@ -4747,6 +4775,24 @@ export function makeTable(options) {
|
|
|
4747
4775
|
return ids;
|
|
4748
4776
|
}
|
|
4749
4777
|
|
|
4778
|
+
/**
|
|
4779
|
+
* Whether every write to `key` in the transaction is a delete from origin `deleteNodeId`. The index of
|
|
4780
|
+
* the transaction's writes is extended as writes are added, so a transaction's checks cost O(writes).
|
|
4781
|
+
*/
|
|
4782
|
+
function onlyDeletesFrom(transaction: any, key: Id, deleteNodeId: number | null): boolean {
|
|
4783
|
+
const writes = transaction.writes;
|
|
4784
|
+
let index = transaction.deleteOriginsByKey;
|
|
4785
|
+
if (index?.writes !== writes) transaction.deleteOriginsByKey = index = { writes, scanned: 0, origins: new Map() };
|
|
4786
|
+
for (; index.scanned < writes.length; index.scanned++) {
|
|
4787
|
+
const other = writes[index.scanned];
|
|
4788
|
+
if (!other || other.store !== primaryStore) continue;
|
|
4789
|
+
const origin = other.deleteNodeId === undefined ? MIXED_WRITES : other.deleteNodeId;
|
|
4790
|
+
const prior = index.origins.get(other.key);
|
|
4791
|
+
index.origins.set(other.key, prior === undefined || prior === origin ? origin : MIXED_WRITES);
|
|
4792
|
+
}
|
|
4793
|
+
return index.origins.get(key) === deleteNodeId;
|
|
4794
|
+
}
|
|
4795
|
+
|
|
4750
4796
|
function precedesExistingVersion(txnTime: number, existingEntry: Partial<Entry>, nodeId?: number): number {
|
|
4751
4797
|
if (nodeId === undefined) {
|
|
4752
4798
|
nodeId = getThisNodeId(auditStore);
|