Anonymous Coward (763) has posted comments on this change. ( http://gerrit.cloudera.org:8080/21127 )
Change subject: WIP [ARM] Concurrent binary tree memory fences fixed. ...................................................................... Patch Set 2: One think, that may help to understand the problem: https://github.com/Compute-Express-Link/CXLPapers/blob/main/Synchronization_Overview_and_Case_Study_on_Arm_Architecture_Whitepaper.pdf See the assembly example and explonation under "3.1.3.1 Corresponding litmus test" Example of a problematic tree: Log(CBTree::DebugPrint): https://github.com/martonka/cbtree_viz/blob/master/logs/wrong_tree_key_38 Image: https://github.com/martonka/cbtree_viz/blob/master/images/problematic_tree/fail_key_038.pdf I rendered one of the problematic graphs to pdf with graphviz. Open the pdf with chrome, and zoom to a readable size. Search for "Kkey_38". You can navigate up to its parent's parent N88. You can see that the spit keys are messed up (also wisible in the logs). The keys separated with | in the nodes are the split keys. If a node has n child, then it has n-1 split keys. The "lonely keys nodes" are inside the lowest layer of nodes (LEAF), not real nodes (e.g key_38 is inside N97 ( LeafNode::KeyInlineSlice ) ) I also rendered 100 consecutive inserts into an originaly empty graph. It might understanding how the tree works: https://github.com/martonka/cbtree_viz/tree/master/images/example_of_100_insert Node name are kept the same throught the files (I just assign one for each memory address that the DebugPrint dumps.) You can see the simplified unittest "TEST_F(TestCBTree, TestArmProblem)" and the one giving the examples "TEST_F(TestCBTree, TestPrint)" https://github.com/martonka/kudu_wd/blob/MZ_CBTREE_SEQ/src/kudu/tablet/cbtree-test.cc -- To view, visit http://gerrit.cloudera.org:8080/21127 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-Project: kudu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie7c02dc3b9444599ef680fa9b29ae7a4d39dd382 Gerrit-Change-Number: 21127 Gerrit-PatchSet: 2 Gerrit-Owner: Zoltan Martonka <[email protected]> Gerrit-Reviewer: Anonymous Coward (763) Gerrit-Reviewer: Kudu Jenkins (120) Gerrit-Comment-Date: Fri, 08 Mar 2024 17:59:42 +0000 Gerrit-HasComments: No
