Skip to content

Make tree file reading and writing faster and safer - #106

Merged
VEZY merged 13 commits into
masterfrom
streaming-mtg-write
Aug 28, 2026
Merged

Make tree file reading and writing faster and safer#106
VEZY merged 13 commits into
masterfrom
streaming-mtg-write

Conversation

@VEZY

@VEZY VEZY commented Aug 25, 2026

Copy link
Copy Markdown
Owner

Summary

  • Reduce temporary data when reading and writing tree files.
  • Keep tree lookups correct after edits.
  • Preserve original node IDs when trees are joined.
  • Add tests and a benchmark.

@github-actions

github-actions Bot commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

Benchmark Results (Julia v1)

Time benchmarks
master c152510... master / c152510...
mstg_linux/a1_row_mutation_topology/automatic_id/dense/1024 15.5 ± 7.8 ms 1.38 ± 0.11 ms 11.2 ± 5.8
mstg_linux/a1_row_mutation_topology/automatic_id/dense/256 0.852 ± 0.04 ms 0.315 ± 0.059 ms 2.7 ± 0.53
mstg_linux/a1_row_mutation_topology/automatic_id/dense/32 0.0478 ± 0.003 ms 0.0341 ± 0.046 ms 1.4 ± 1.9
mstg_linux/a1_row_mutation_topology/explicit_cold/dense/1024 1.95 ± 0.096 ms 1.38 ± 0.06 ms 1.41 ± 0.093
mstg_linux/a1_row_mutation_topology/explicit_cold/dense/256 0.427 ± 0.019 ms 0.314 ± 0.031 ms 1.36 ± 0.15
mstg_linux/a1_row_mutation_topology/explicit_cold/dense/32 0.0479 ± 0.011 ms 0.0333 ± 0.0024 ms 1.44 ± 0.34
mstg_linux/a1_row_mutation_topology/explicit_cold/sparse/1024 1.49 ± 0.052 ms 0.956 ± 0.12 ms 1.56 ± 0.2
mstg_linux/a1_row_mutation_topology/explicit_cold/sparse/256 0.301 ± 0.032 ms 0.22 ± 0.016 ms 1.37 ± 0.18
mstg_linux/a1_row_mutation_topology/explicit_cold/sparse/32 22.7 ± 4.7 μs 21.1 ± 3 μs 1.07 ± 0.27
mstg_linux/a1_row_mutation_topology/explicit_hot_append/dense/1024 1.73 ± 0.22 μs 1.64 ± 0.23 μs 1.06 ± 0.2
mstg_linux/a1_row_mutation_topology/explicit_hot_append/dense/256 1.27 ± 0.19 μs 1.53 ± 0.24 μs 0.829 ± 0.18
mstg_linux/a1_row_mutation_topology/explicit_hot_append/dense/32 1.08 ± 0.2 μs 0.967 ± 0.15 μs 1.11 ± 0.26
mstg_linux/a1_row_mutation_topology/write_mtg/dense/1024 4.98 ± 0.095 ms 0.865 ± 0.024 ms 5.76 ± 0.2
mstg_linux/a1_row_mutation_topology/write_mtg/dense/256 1.31 ± 0.04 ms 0.271 ± 0.022 ms 4.84 ± 0.42
mstg_linux/a1_row_mutation_topology/write_mtg/dense/32 0.232 ± 0.023 ms 0.0941 ± 0.0097 ms 2.47 ± 0.35
mstg_linux/a1_row_mutation_topology/write_mtg/sparse/1024 2.95 ± 0.052 ms 0.584 ± 0.018 ms 5.05 ± 0.18
mstg_linux/a1_row_mutation_topology/write_mtg/sparse/256 0.801 ± 0.031 ms 0.191 ± 0.01 ms 4.18 ± 0.27
mstg_linux/a1_row_mutation_topology/write_mtg/sparse/32 0.175 ± 0.022 ms 0.0767 ± 0.013 ms 2.28 ± 0.49
mstg_linux/large/descendants_query/many_attr_mixed_ignore_nothing 0.0949 ± 0.0044 s 0.101 ± 0.004 s 0.944 ± 0.058
mstg_linux/large/descendants_query/many_attr_mixed_keep_nothing 0.128 ± 0.0047 s 0.136 ± 0.0019 s 0.941 ± 0.037
mstg_linux/large/descendants_query/many_attr_one_symbol 0.173 ± 0.0033 s 0.181 ± 0.0038 s 0.952 ± 0.027
mstg_linux/large/descendants_query/one_attr_mixed_ignore_nothing 16.6 ± 2.3 ms 16.2 ± 2.2 ms 1.02 ± 0.2
mstg_linux/large/descendants_query/one_attr_mixed_keep_nothing 16 ± 2.2 ms 16.6 ± 2.3 ms 0.964 ± 0.19
mstg_linux/large/descendants_query/one_attr_one_symbol 3.85 ± 0.03 ms 4.08 ± 0.05 ms 0.944 ± 0.014
mstg_linux/large/descendants_query/one_attr_one_symbol_inplace 3.85 ± 0.029 ms 4.08 ± 0.029 ms 0.944 ± 0.0097
mstg_linux/large/many_queries/ancestors_repeated 0.041 ± 0.0018 s 0.0475 ± 0.0029 s 0.864 ± 0.065
mstg_linux/large/many_queries/ancestors_repeated_inplace 12.3 ± 0.92 ms 13.3 ± 0.67 ms 0.928 ± 0.083
mstg_linux/large/many_queries/children_repeated 2.07 ± 0.0028 ms 2.07 ± 0.0042 ms 0.999 ± 0.0025
mstg_linux/large/many_queries/descendants_repeated 0.448 ± 0.11 s 0.446 ± 0.11 s 1.01 ± 0.36
mstg_linux/large/many_queries/descendants_repeated_inplace 0.121 ± 0.00029 s 0.128 ± 0.00037 s 0.945 ± 0.0036
mstg_linux/large/many_queries/parent_repeated 5.83 ± 1 ms 6.05 ± 0.96 ms 0.964 ± 0.23
mstg_linux/large/traverse/full_tree_nodes 27 ± 0.3 ms 26.2 ± 0.36 ms 1.03 ± 0.018
mstg_linux/large/traverse_update/multi_attr_leaf_internode_explicit_api 0.125 ± 0.0012 s 0.127 ± 0.0012 s 0.987 ± 0.013
mstg_linux/large/traverse_update/multi_attr_leaf_internode_node_indexing 0.196 ± 0.0014 s 0.228 ± 0.002 s 0.858 ± 0.0097
mstg_linux/large/traverse_update/multi_attr_leaf_only_explicit_api 0.0775 ± 0.00082 s 0.0767 ± 0.00076 s 1.01 ± 0.015
mstg_linux/large/traverse_update/multi_attr_leaf_only_node_indexing 0.106 ± 0.0041 s 0.105 ± 0.0011 s 1.01 ± 0.04
mstg_linux/large/traverse_update/one_attr_all_nodes_explicit_api 0.104 ± 0.0011 s 0.0988 ± 0.0014 s 1.05 ± 0.019
mstg_linux/large/traverse_update/one_attr_all_nodes_node_indexing 0.138 ± 0.0014 s 0.14 ± 0.0023 s 0.987 ± 0.019
mstg_linux/medium/descendants_query/many_attr_mixed_ignore_nothing 31.2 ± 2.4 ms 0.0324 ± 0.0024 s 0.963 ± 0.1
mstg_linux/medium/descendants_query/many_attr_mixed_keep_nothing 0.0415 ± 0.0017 s 0.0439 ± 0.0016 s 0.947 ± 0.052
mstg_linux/medium/descendants_query/many_attr_one_symbol 0.0573 ± 0.0013 s 0.0592 ± 0.00085 s 0.968 ± 0.026
mstg_linux/medium/descendants_query/one_attr_mixed_ignore_nothing 5.56 ± 0.7 ms 5.2 ± 0.65 ms 1.07 ± 0.19
mstg_linux/medium/descendants_query/one_attr_mixed_keep_nothing 5.41 ± 0.79 ms 5.24 ± 0.77 ms 1.03 ± 0.21
mstg_linux/medium/descendants_query/one_attr_one_symbol 1.23 ± 0.016 ms 1.24 ± 0.017 ms 0.988 ± 0.019
mstg_linux/medium/descendants_query/one_attr_one_symbol_inplace 1.22 ± 0.016 ms 1.31 ± 0.017 ms 0.934 ± 0.017
mstg_linux/medium/many_queries/ancestors_repeated 0.0394 ± 0.0033 s 0.0474 ± 0.0036 s 0.83 ± 0.094
mstg_linux/medium/many_queries/ancestors_repeated_inplace 11.2 ± 0.86 ms 12.6 ± 0.98 ms 0.888 ± 0.097
mstg_linux/medium/many_queries/children_repeated 2.06 ± 0.0033 ms 2.06 ± 0.0024 ms 1 ± 0.002
mstg_linux/medium/many_queries/descendants_repeated 0.123 ± 0.025 s 0.128 ± 0.026 s 0.965 ± 0.28
mstg_linux/medium/many_queries/descendants_repeated_inplace 0.0386 ± 0.0001 s 0.0424 ± 0.00011 s 0.912 ± 0.0034
mstg_linux/medium/many_queries/parent_repeated 5.76 ± 0.99 ms 6.07 ± 0.8 ms 0.95 ± 0.21
mstg_linux/medium/traverse/full_tree_nodes 2.35 ± 0.041 ms 2.2 ± 0.027 ms 1.07 ± 0.023
mstg_linux/medium/traverse_update/multi_attr_leaf_internode_explicit_api 22.2 ± 0.42 ms 25 ± 0.54 ms 0.889 ± 0.025
mstg_linux/medium/traverse_update/multi_attr_leaf_internode_node_indexing 0.0474 ± 0.00074 s 0.0563 ± 0.00066 s 0.843 ± 0.016
mstg_linux/medium/traverse_update/multi_attr_leaf_only_explicit_api 11.1 ± 1.2 ms 12.1 ± 0.37 ms 0.918 ± 0.1
mstg_linux/medium/traverse_update/multi_attr_leaf_only_node_indexing 21.4 ± 0.51 ms 22.6 ± 1 ms 0.945 ± 0.048
mstg_linux/medium/traverse_update/one_attr_all_nodes_explicit_api 13.4 ± 0.76 ms 14.3 ± 0.35 ms 0.937 ± 0.058
mstg_linux/medium/traverse_update/one_attr_all_nodes_node_indexing 26.8 ± 0.69 ms 28.9 ± 1.2 ms 0.928 ± 0.045
mstg_linux/small/api_surface_small_only/delete_node 1.39 ± 0.51 μs 3.91 ± 1.6 μs 0.357 ± 0.19
mstg_linux/small/api_surface_small_only/insert_child 2.85 ± 1.2 μs 3.29 ± 1.2 μs 0.867 ± 0.48
mstg_linux/small/api_surface_small_only/prune_subtree 6.47 ± 0.37 ms 12.6 ± 1.1 ms 0.513 ± 0.054
mstg_linux/small/api_surface_small_only/select 1.2 ± 0.26 ms 4.97 ± 2.2 μs 241 ± 1.2e+02
mstg_linux/small/api_surface_small_only/tables_symbol 2.05 ± 0.3 μs 22.1 ± 0.35 μs 0.0931 ± 0.014
mstg_linux/small/api_surface_small_only/tables_unified 0.47 ± 0.024 ms 0.478 ± 0.025 ms 0.983 ± 0.072
mstg_linux/small/api_surface_small_only/transform 3.58 ± 0.3 ms 3.71 ± 0.31 ms 0.966 ± 0.12
mstg_linux/small/api_surface_small_only/write_mtg 15.2 ± 3.7 ms 4.25 ± 1.2 ms 3.58 ± 1.3
mstg_linux/small/descendants_query/many_attr_mixed_ignore_nothing 2.99 ± 0.26 ms 3.12 ± 0.26 ms 0.96 ± 0.12
mstg_linux/small/descendants_query/many_attr_mixed_keep_nothing 4.04 ± 0.25 ms 4.22 ± 0.28 ms 0.956 ± 0.087
mstg_linux/small/descendants_query/many_attr_one_symbol 5.66 ± 0.29 ms 5.84 ± 0.31 ms 0.969 ± 0.071
mstg_linux/small/descendants_query/one_attr_mixed_ignore_nothing 0.472 ± 0.024 ms 0.449 ± 0.022 ms 1.05 ± 0.073
mstg_linux/small/descendants_query/one_attr_mixed_keep_nothing 0.47 ± 0.068 ms 0.457 ± 0.078 ms 1.03 ± 0.23
mstg_linux/small/descendants_query/one_attr_one_symbol 0.0366 ± 0.023 ms 0.0416 ± 0.024 ms 0.88 ± 0.74
mstg_linux/small/descendants_query/one_attr_one_symbol_inplace 31.4 ± 21 μs 0.0365 ± 0.021 ms 0.861 ± 0.76
mstg_linux/small/many_queries/ancestors_repeated 0.0445 ± 0.0036 s 0.0523 ± 0.0037 s 0.85 ± 0.091
mstg_linux/small/many_queries/ancestors_repeated_inplace 8.62 ± 0.89 ms 10 ± 0.83 ms 0.859 ± 0.11
mstg_linux/small/many_queries/children_repeated 2.06 ± 0.0025 ms 2.06 ± 0.0028 ms 0.998 ± 0.0018
mstg_linux/small/many_queries/descendants_repeated 9.7 ± 0.83 ms 10 ± 0.79 ms 0.968 ± 0.11
mstg_linux/small/many_queries/descendants_repeated_inplace 1.11 ± 0.026 ms 1.26 ± 0.019 ms 0.881 ± 0.025
mstg_linux/small/many_queries/parent_repeated 5.76 ± 0.87 ms 6.09 ± 0.75 ms 0.945 ± 0.18
mstg_linux/small/traverse/full_tree_nodes 0.202 ± 0.0046 ms 0.205 ± 0.005 ms 0.982 ± 0.033
mstg_linux/small/traverse_update/multi_attr_leaf_internode_explicit_api 1.33 ± 0.012 ms 1.57 ± 0.012 ms 0.843 ± 0.01
mstg_linux/small/traverse_update/multi_attr_leaf_internode_node_indexing 4.04 ± 0.43 ms 4.51 ± 0.44 ms 0.894 ± 0.13
mstg_linux/small/traverse_update/multi_attr_leaf_only_explicit_api 0.71 ± 0.0096 ms 0.827 ± 0.0053 ms 0.858 ± 0.013
mstg_linux/small/traverse_update/multi_attr_leaf_only_node_indexing 1.54 ± 0.12 ms 1.68 ± 0.11 ms 0.921 ± 0.092
mstg_linux/small/traverse_update/one_attr_all_nodes_explicit_api 0.959 ± 0.0059 ms 1.05 ± 0.0044 ms 0.909 ± 0.0068
mstg_linux/small/traverse_update/one_attr_all_nodes_node_indexing 2.17 ± 0.18 ms 2.35 ± 0.17 ms 0.924 ± 0.1
mstg_linux/a1_row_mutation_topology/row_local/empty_restore/1024 0.93 ± 0.02 ms
mstg_linux/a1_row_mutation_topology/row_local/empty_restore/256 0.836 ± 0.02 ms
mstg_linux/a1_row_mutation_topology/row_local/sparse_toggle/1024 0.271 ± 0.005 ms
mstg_linux/a1_row_mutation_topology/row_local/pop_restore/32 0.242 ± 0.011 ms
mstg_linux/a1_row_mutation_topology/row_local/empty_restore/32 0.809 ± 0.016 ms
mstg_linux/a1_row_mutation_topology/row_local/sparse_toggle/32 0.24 ± 0.018 ms
mstg_linux/a1_row_mutation_topology/row_local/pop_restore/1024 0.304 ± 0.012 ms
mstg_linux/a1_row_mutation_topology/row_local/pop_restore/256 0.256 ± 0.015 ms
mstg_linux/a1_row_mutation_topology/row_local/sparse_toggle/256 0.257 ± 0.014 ms
time_to_load 0.84 ± 0.0013 s 0.839 ± 0.0048 s 1 ± 0.0059
Memory benchmarks
master c152510... master / c152510...
mstg_linux/a1_row_mutation_topology/automatic_id/dense/1024 0.0411 M allocs: 23.2 MB 18.6 k allocs: 1.4 MB 16.5
mstg_linux/a1_row_mutation_topology/automatic_id/dense/256 8 k allocs: 1.56 MB 4.24 k allocs: 0.348 MB 4.47
mstg_linux/a1_row_mutation_topology/automatic_id/dense/32 0.945 k allocs: 0.0791 MB 0.622 k allocs: 0.0463 MB 1.71
mstg_linux/a1_row_mutation_topology/explicit_cold/dense/1024 21.7 k allocs: 1.45 MB 18.6 k allocs: 1.4 MB 1.03
mstg_linux/a1_row_mutation_topology/explicit_cold/dense/256 4.48 k allocs: 0.352 MB 4.24 k allocs: 0.348 MB 1.01
mstg_linux/a1_row_mutation_topology/explicit_cold/dense/32 0.641 k allocs: 0.0463 MB 0.622 k allocs: 0.0463 MB 1
mstg_linux/a1_row_mutation_topology/explicit_cold/sparse/1024 15.8 k allocs: 1.32 MB 14.6 k allocs: 1.3 MB 1.01
mstg_linux/a1_row_mutation_topology/explicit_cold/sparse/256 3.44 k allocs: 0.33 MB 3.46 k allocs: 0.331 MB 0.999
mstg_linux/a1_row_mutation_topology/explicit_cold/sparse/32 0.504 k allocs: 0.0425 MB 0.513 k allocs: 0.0429 MB 0.992
mstg_linux/a1_row_mutation_topology/explicit_hot_append/dense/1024 25 allocs: 1.3 kB 23 allocs: 2.91 kB 0.446
mstg_linux/a1_row_mutation_topology/explicit_hot_append/dense/256 17 allocs: 1.17 kB 19 allocs: 1.62 kB 0.721
mstg_linux/a1_row_mutation_topology/explicit_hot_append/dense/32 17 allocs: 1.17 kB 16 allocs: 1.16 kB 1.01
mstg_linux/a1_row_mutation_topology/write_mtg/dense/1024 0.0548 M allocs: 2.6 MB 11.2 k allocs: 0.972 MB 2.68
mstg_linux/a1_row_mutation_topology/write_mtg/dense/256 12.8 k allocs: 0.645 MB 2.7 k allocs: 0.248 MB 2.6
mstg_linux/a1_row_mutation_topology/write_mtg/dense/32 1.98 k allocs: 0.0982 MB 0.652 k allocs: 0.0596 MB 1.65
mstg_linux/a1_row_mutation_topology/write_mtg/sparse/1024 0.0414 M allocs: 1.89 MB 7.85 k allocs: 0.549 MB 3.45
mstg_linux/a1_row_mutation_topology/write_mtg/sparse/256 9.45 k allocs: 0.468 MB 1.99 k allocs: 0.144 MB 3.26
mstg_linux/a1_row_mutation_topology/write_mtg/sparse/32 1.53 k allocs: 0.074 MB 0.554 k allocs: 0.046 MB 1.61
mstg_linux/large/descendants_query/many_attr_mixed_ignore_nothing 1.11 M allocs: 21.9 MB 1.11 M allocs: 21.9 MB 1
mstg_linux/large/descendants_query/many_attr_mixed_keep_nothing 1.21 M allocs: 23.5 MB 1.21 M allocs: 23.5 MB 1
mstg_linux/large/descendants_query/many_attr_one_symbol 1.62 M allocs: 29.7 MB 1.62 M allocs: 29.7 MB 1
mstg_linux/large/descendants_query/one_attr_mixed_ignore_nothing 0.359 M allocs: 7.77 MB 0.359 M allocs: 7.77 MB 1
mstg_linux/large/descendants_query/one_attr_mixed_keep_nothing 0.359 M allocs: 8.05 MB 0.359 M allocs: 8.05 MB 1
mstg_linux/large/descendants_query/one_attr_one_symbol 27 allocs: 2.29 MB 29 allocs: 2.29 MB 1
mstg_linux/large/descendants_query/one_attr_one_symbol_inplace 12 allocs: 2.29 MB 12 allocs: 2.29 MB 1
mstg_linux/large/many_queries/ancestors_repeated 0.477 M allocs: 12.6 MB 0.559 M allocs: 13.8 MB 0.91
mstg_linux/large/many_queries/ancestors_repeated_inplace 0.15 M allocs: 2.29 MB 0.15 M allocs: 2.29 MB 1
mstg_linux/large/many_queries/children_repeated 0 allocs: 0 B 0 allocs: 0 B
mstg_linux/large/many_queries/descendants_repeated 16.2 M allocs: 0.308 GB 16.2 M allocs: 0.308 GB 1
mstg_linux/large/many_queries/descendants_repeated_inplace 0.273 k allocs: 2.3 MB 0.273 k allocs: 2.3 MB 1
mstg_linux/large/many_queries/parent_repeated 0.152 M allocs: 2.32 MB 0.152 M allocs: 2.32 MB 1
mstg_linux/large/traverse/full_tree_nodes 14 allocs: 6.02 kB 14 allocs: 6.02 kB 1
mstg_linux/large/traverse_update/multi_attr_leaf_internode_explicit_api 0 allocs: 0 B 0 allocs: 0 B
mstg_linux/large/traverse_update/multi_attr_leaf_internode_node_indexing 1.42 M allocs: 21.7 MB 1.42 M allocs: 21.7 MB 1
mstg_linux/large/traverse_update/multi_attr_leaf_only_explicit_api 0 allocs: 0 B 0 allocs: 0 B
mstg_linux/large/traverse_update/multi_attr_leaf_only_node_indexing 0.63 M allocs: 9.61 MB 0.63 M allocs: 9.61 MB 1
mstg_linux/large/traverse_update/one_attr_all_nodes_explicit_api 14 allocs: 6.02 kB 14 allocs: 6.02 kB 1
mstg_linux/large/traverse_update/one_attr_all_nodes_node_indexing 0.898 M allocs: 13.7 MB 0.898 M allocs: 13.7 MB 1
mstg_linux/medium/descendants_query/many_attr_mixed_ignore_nothing 0.368 M allocs: 7.3 MB 0.368 M allocs: 7.3 MB 1
mstg_linux/medium/descendants_query/many_attr_mixed_keep_nothing 0.403 M allocs: 7.83 MB 0.403 M allocs: 7.83 MB 1
mstg_linux/medium/descendants_query/many_attr_one_symbol 0.538 M allocs: 9.89 MB 0.538 M allocs: 9.89 MB 1
mstg_linux/medium/descendants_query/one_attr_mixed_ignore_nothing 0.119 M allocs: 2.58 MB 0.119 M allocs: 2.58 MB 1
mstg_linux/medium/descendants_query/one_attr_mixed_keep_nothing 0.119 M allocs: 2.68 MB 0.119 M allocs: 2.68 MB 1
mstg_linux/medium/descendants_query/one_attr_one_symbol 27 allocs: 0.764 MB 29 allocs: 0.764 MB 1
mstg_linux/medium/descendants_query/one_attr_one_symbol_inplace 12 allocs: 0.763 MB 12 allocs: 0.763 MB 1
mstg_linux/medium/many_queries/ancestors_repeated 0.468 M allocs: 12.5 MB 0.55 M allocs: 13.7 MB 0.909
mstg_linux/medium/many_queries/ancestors_repeated_inplace 0.141 M allocs: 2.15 MB 0.141 M allocs: 2.15 MB 1
mstg_linux/medium/many_queries/children_repeated 0 allocs: 0 B 0 allocs: 0 B
mstg_linux/medium/many_queries/descendants_repeated 5.38 M allocs: 0.102 GB 5.38 M allocs: 0.102 GB 1
mstg_linux/medium/many_queries/descendants_repeated_inplace 0.273 k allocs: 0.772 MB 0.273 k allocs: 0.772 MB 1
mstg_linux/medium/many_queries/parent_repeated 0.15 M allocs: 2.28 MB 0.15 M allocs: 2.28 MB 1
mstg_linux/medium/traverse/full_tree_nodes 14 allocs: 6.02 kB 14 allocs: 6.02 kB 1
mstg_linux/medium/traverse_update/multi_attr_leaf_internode_explicit_api 0 allocs: 0 B 0 allocs: 0 B
mstg_linux/medium/traverse_update/multi_attr_leaf_internode_node_indexing 0.473 M allocs: 7.22 MB 0.473 M allocs: 7.22 MB 1
mstg_linux/medium/traverse_update/multi_attr_leaf_only_explicit_api 0 allocs: 0 B 0 allocs: 0 B
mstg_linux/medium/traverse_update/multi_attr_leaf_only_node_indexing 0.21 M allocs: 3.2 MB 0.21 M allocs: 3.2 MB 1
mstg_linux/medium/traverse_update/one_attr_all_nodes_explicit_api 14 allocs: 6.02 kB 14 allocs: 6.02 kB 1
mstg_linux/medium/traverse_update/one_attr_all_nodes_node_indexing 0.298 M allocs: 4.56 MB 0.298 M allocs: 4.56 MB 1
mstg_linux/small/api_surface_small_only/delete_node 10 allocs: 0.172 kB 25 allocs: 0.406 kB 0.423
mstg_linux/small/api_surface_small_only/insert_child 21 allocs: 1.58 kB 23 allocs: 1.98 kB 0.795
mstg_linux/small/api_surface_small_only/prune_subtree 0.0672 M allocs: 1.11 MB 0.172 M allocs: 2.71 MB 0.411
mstg_linux/small/api_surface_small_only/select 16 k allocs: 0.574 MB 0.032 k allocs: 1.11 kB 530
mstg_linux/small/api_surface_small_only/tables_symbol 20 allocs: 1.28 kB 0.108 k allocs: 4.53 kB 0.283
mstg_linux/small/api_surface_small_only/tables_unified 0.293 k allocs: 0.676 MB 0.313 k allocs: 0.677 MB 1
mstg_linux/small/api_surface_small_only/transform 0.0532 M allocs: 0.881 MB 0.0532 M allocs: 0.883 MB 0.998
mstg_linux/small/api_surface_small_only/write_mtg 0.201 M allocs: 11.6 MB 0.0446 M allocs: 4.63 MB 2.5
mstg_linux/small/descendants_query/many_attr_mixed_ignore_nothing 0.0356 M allocs: 0.711 MB 0.0356 M allocs: 0.711 MB 1
mstg_linux/small/descendants_query/many_attr_mixed_keep_nothing 0.039 M allocs: 0.764 MB 0.039 M allocs: 0.764 MB 1
mstg_linux/small/descendants_query/many_attr_one_symbol 0.0534 M allocs: 0.983 MB 0.0534 M allocs: 0.983 MB 1
mstg_linux/small/descendants_query/one_attr_mixed_ignore_nothing 11.6 k allocs: 0.254 MB 11.6 k allocs: 0.254 MB 1
mstg_linux/small/descendants_query/one_attr_mixed_keep_nothing 11.6 k allocs: 0.263 MB 11.6 k allocs: 0.263 MB 1
mstg_linux/small/descendants_query/one_attr_one_symbol 27 allocs: 0.0772 MB 29 allocs: 0.0772 MB 1
mstg_linux/small/descendants_query/one_attr_one_symbol_inplace 12 allocs: 0.0767 MB 12 allocs: 0.0767 MB 1
mstg_linux/small/many_queries/ancestors_repeated 0.434 M allocs: 11.9 MB 0.516 M allocs: 13.2 MB 0.905
mstg_linux/small/many_queries/ancestors_repeated_inplace 0.109 M allocs: 1.66 MB 0.109 M allocs: 1.66 MB 1
mstg_linux/small/many_queries/children_repeated 0 allocs: 0 B 0 allocs: 0 B
mstg_linux/small/many_queries/descendants_repeated 0.529 M allocs: 10.4 MB 0.529 M allocs: 10.4 MB 1
mstg_linux/small/many_queries/descendants_repeated_inplace 0.273 k allocs: 0.0851 MB 0.273 k allocs: 0.0851 MB 1
mstg_linux/small/many_queries/parent_repeated 0.125 M allocs: 1.91 MB 0.125 M allocs: 1.91 MB 1
mstg_linux/small/traverse/full_tree_nodes 14 allocs: 6.02 kB 14 allocs: 6.02 kB 1
mstg_linux/small/traverse_update/multi_attr_leaf_internode_explicit_api 0 allocs: 0 B 0 allocs: 0 B
mstg_linux/small/traverse_update/multi_attr_leaf_internode_node_indexing 0.0643 M allocs: 0.981 MB 0.0643 M allocs: 0.981 MB 1
mstg_linux/small/traverse_update/multi_attr_leaf_only_explicit_api 0 allocs: 0 B 0 allocs: 0 B
mstg_linux/small/traverse_update/multi_attr_leaf_only_node_indexing 19.6 k allocs: 0.299 MB 19.6 k allocs: 0.299 MB 1
mstg_linux/small/traverse_update/one_attr_all_nodes_explicit_api 14 allocs: 6.02 kB 14 allocs: 6.02 kB 1
mstg_linux/small/traverse_update/one_attr_all_nodes_node_indexing 28.5 k allocs: 0.44 MB 28.5 k allocs: 0.44 MB 1
mstg_linux/a1_row_mutation_topology/row_local/empty_restore/1024 12.3 k allocs: 0.188 MB
mstg_linux/a1_row_mutation_topology/row_local/empty_restore/256 2.04 k allocs: 31.9 kB
mstg_linux/a1_row_mutation_topology/row_local/sparse_toggle/1024 2.53 k allocs: 0.0386 MB
mstg_linux/a1_row_mutation_topology/row_local/pop_restore/32 0.993 k allocs: 15.5 kB
mstg_linux/a1_row_mutation_topology/row_local/empty_restore/32 2.02 k allocs: 31.5 kB
mstg_linux/a1_row_mutation_topology/row_local/sparse_toggle/32 1.51 k allocs: 23.5 kB
mstg_linux/a1_row_mutation_topology/row_local/pop_restore/1024 4.6 k allocs: 0.0703 MB
mstg_linux/a1_row_mutation_topology/row_local/pop_restore/256 1.02 k allocs: 15.9 kB
mstg_linux/a1_row_mutation_topology/row_local/sparse_toggle/256 1.51 k allocs: 23.5 kB
time_to_load 0.149 k allocs: 11.2 kB 0.149 k allocs: 11.2 kB 1

@VEZY
VEZY merged commit 4c3b3d0 into master Aug 28, 2026
8 checks passed
@VEZY
VEZY deleted the streaming-mtg-write branch August 28, 2026 12:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant