Skip to content

Commit

Permalink
Remove checking updatedAt is nil, and Fix test code to use time ticke…
Browse files Browse the repository at this point in the history
…t instead of nil
  • Loading branch information
justiceHui committed Jan 9, 2024
1 parent 7d0134e commit ff391e9
Show file tree
Hide file tree
Showing 2 changed files with 218 additions and 181 deletions.
4 changes: 2 additions & 2 deletions pkg/document/crdt/rht.go
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ func (rht *RHT) Has(key string) bool {

// Set sets the value of the given key.
func (rht *RHT) Set(k, v string, executedAt *time.Ticket) {
if node, ok := rht.nodeMapByKey[k]; !ok || node.updatedAt == nil || executedAt.After(node.updatedAt) {
if node, ok := rht.nodeMapByKey[k]; !ok || executedAt.After(node.updatedAt) {
if node != nil && node.isRemoved {
rht.numberOfRemovedElement--
}
Expand All @@ -106,7 +106,7 @@ func (rht *RHT) Set(k, v string, executedAt *time.Ticket) {

// Remove removes the Element of the given key.
func (rht *RHT) Remove(k string, executedAt *time.Ticket) string {
if node, ok := rht.nodeMapByKey[k]; ok && (node.updatedAt == nil || executedAt.After(node.updatedAt)) {
if node, ok := rht.nodeMapByKey[k]; ok && executedAt.After(node.updatedAt) {
alreadyRemoved := node.isRemoved
if !alreadyRemoved {
rht.numberOfRemovedElement++
Expand Down
Loading

1 comment on commit ff391e9

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Go Benchmark

Benchmark suite Current: ff391e9 Previous: 50b3c50 Ratio
BenchmarkDocument/constructor_test - ns/op 1420 ns/op 1542 ns/op 0.92
BenchmarkDocument/constructor_test - B/op 1208 B/op 1208 B/op 1
BenchmarkDocument/constructor_test - allocs/op 20 allocs/op 20 allocs/op 1
BenchmarkDocument/status_test - ns/op 793.6 ns/op 780 ns/op 1.02
BenchmarkDocument/status_test - B/op 1176 B/op 1176 B/op 1
BenchmarkDocument/status_test - allocs/op 18 allocs/op 18 allocs/op 1
BenchmarkDocument/equals_test - ns/op 7331 ns/op 7138 ns/op 1.03
BenchmarkDocument/equals_test - B/op 6913 B/op 6913 B/op 1
BenchmarkDocument/equals_test - allocs/op 120 allocs/op 120 allocs/op 1
BenchmarkDocument/nested_update_test - ns/op 17590 ns/op 16248 ns/op 1.08
BenchmarkDocument/nested_update_test - B/op 11963 B/op 11963 B/op 1
BenchmarkDocument/nested_update_test - allocs/op 254 allocs/op 254 allocs/op 1
BenchmarkDocument/delete_test - ns/op 25055 ns/op 22078 ns/op 1.13
BenchmarkDocument/delete_test - B/op 15189 B/op 15188 B/op 1.00
BenchmarkDocument/delete_test - allocs/op 333 allocs/op 333 allocs/op 1
BenchmarkDocument/object_test - ns/op 8661 ns/op 8387 ns/op 1.03
BenchmarkDocument/object_test - B/op 6721 B/op 6721 B/op 1
BenchmarkDocument/object_test - allocs/op 116 allocs/op 116 allocs/op 1
BenchmarkDocument/array_test - ns/op 29312 ns/op 28691 ns/op 1.02
BenchmarkDocument/array_test - B/op 11819 B/op 11819 B/op 1
BenchmarkDocument/array_test - allocs/op 270 allocs/op 270 allocs/op 1
BenchmarkDocument/text_test - ns/op 31347 ns/op 31234 ns/op 1.00
BenchmarkDocument/text_test - B/op 14884 B/op 15412 B/op 0.97
BenchmarkDocument/text_test - allocs/op 468 allocs/op 479 allocs/op 0.98
BenchmarkDocument/text_composition_test - ns/op 29264 ns/op 28838 ns/op 1.01
BenchmarkDocument/text_composition_test - B/op 18398 B/op 18590 B/op 0.99
BenchmarkDocument/text_composition_test - allocs/op 477 allocs/op 481 allocs/op 0.99
BenchmarkDocument/rich_text_test - ns/op 84040 ns/op 84725 ns/op 0.99
BenchmarkDocument/rich_text_test - B/op 38645 B/op 47959 B/op 0.81
BenchmarkDocument/rich_text_test - allocs/op 1147 allocs/op 1216 allocs/op 0.94
BenchmarkDocument/counter_test - ns/op 17346 ns/op 16633 ns/op 1.04
BenchmarkDocument/counter_test - B/op 10210 B/op 10210 B/op 1
BenchmarkDocument/counter_test - allocs/op 236 allocs/op 236 allocs/op 1
BenchmarkDocument/text_edit_gc_100 - ns/op 3024128 ns/op 2896824 ns/op 1.04
BenchmarkDocument/text_edit_gc_100 - B/op 1658574 B/op 1658595 B/op 1.00
BenchmarkDocument/text_edit_gc_100 - allocs/op 17093 allocs/op 17092 allocs/op 1.00
BenchmarkDocument/text_edit_gc_1000 - ns/op 237273477 ns/op 232593749 ns/op 1.02
BenchmarkDocument/text_edit_gc_1000 - B/op 144370476 B/op 144379059 B/op 1.00
BenchmarkDocument/text_edit_gc_1000 - allocs/op 200883 allocs/op 200906 allocs/op 1.00
BenchmarkDocument/text_split_gc_100 - ns/op 3498023 ns/op 3420377 ns/op 1.02
BenchmarkDocument/text_split_gc_100 - B/op 2316962 B/op 2316994 B/op 1.00
BenchmarkDocument/text_split_gc_100 - allocs/op 16194 allocs/op 16196 allocs/op 1.00
BenchmarkDocument/text_split_gc_1000 - ns/op 304436304 ns/op 291333302 ns/op 1.04
BenchmarkDocument/text_split_gc_1000 - B/op 228909428 B/op 228919328 B/op 1.00
BenchmarkDocument/text_split_gc_1000 - allocs/op 203869 allocs/op 203934 allocs/op 1.00
BenchmarkDocument/text_delete_all_10000 - ns/op 12215804 ns/op 11818492 ns/op 1.03
BenchmarkDocument/text_delete_all_10000 - B/op 5811670 B/op 5810678 B/op 1.00
BenchmarkDocument/text_delete_all_10000 - allocs/op 40680 allocs/op 40675 allocs/op 1.00
BenchmarkDocument/text_delete_all_100000 - ns/op 209575712 ns/op 201368223 ns/op 1.04
BenchmarkDocument/text_delete_all_100000 - B/op 81905107 B/op 81900570 B/op 1.00
BenchmarkDocument/text_delete_all_100000 - allocs/op 411637 allocs/op 411626 allocs/op 1.00
BenchmarkDocument/text_100 - ns/op 223928 ns/op 220270 ns/op 1.02
BenchmarkDocument/text_100 - B/op 120106 B/op 120107 B/op 1.00
BenchmarkDocument/text_100 - allocs/op 5080 allocs/op 5080 allocs/op 1
BenchmarkDocument/text_1000 - ns/op 2457555 ns/op 2429840 ns/op 1.01
BenchmarkDocument/text_1000 - B/op 1169094 B/op 1169078 B/op 1.00
BenchmarkDocument/text_1000 - allocs/op 50084 allocs/op 50084 allocs/op 1
BenchmarkDocument/array_1000 - ns/op 1207484 ns/op 1191138 ns/op 1.01
BenchmarkDocument/array_1000 - B/op 1091250 B/op 1091341 B/op 1.00
BenchmarkDocument/array_1000 - allocs/op 11825 allocs/op 11826 allocs/op 1.00
BenchmarkDocument/array_10000 - ns/op 13478800 ns/op 13214012 ns/op 1.02
BenchmarkDocument/array_10000 - B/op 9799478 B/op 9800667 B/op 1.00
BenchmarkDocument/array_10000 - allocs/op 120289 allocs/op 120294 allocs/op 1.00
BenchmarkDocument/array_gc_100 - ns/op 149178 ns/op 144166 ns/op 1.03
BenchmarkDocument/array_gc_100 - B/op 132488 B/op 132489 B/op 1.00
BenchmarkDocument/array_gc_100 - allocs/op 1248 allocs/op 1248 allocs/op 1
BenchmarkDocument/array_gc_1000 - ns/op 1452204 ns/op 1375392 ns/op 1.06
BenchmarkDocument/array_gc_1000 - B/op 1158831 B/op 1158914 B/op 1.00
BenchmarkDocument/array_gc_1000 - allocs/op 12864 allocs/op 12864 allocs/op 1
BenchmarkDocument/counter_1000 - ns/op 210358 ns/op 198354 ns/op 1.06
BenchmarkDocument/counter_1000 - B/op 192853 B/op 192853 B/op 1
BenchmarkDocument/counter_1000 - allocs/op 5765 allocs/op 5765 allocs/op 1
BenchmarkDocument/counter_10000 - ns/op 2228998 ns/op 2157794 ns/op 1.03
BenchmarkDocument/counter_10000 - B/op 2087770 B/op 2087766 B/op 1.00
BenchmarkDocument/counter_10000 - allocs/op 59772 allocs/op 59772 allocs/op 1
BenchmarkDocument/object_1000 - ns/op 1385539 ns/op 1354096 ns/op 1.02
BenchmarkDocument/object_1000 - B/op 1428003 B/op 1428036 B/op 1.00
BenchmarkDocument/object_1000 - allocs/op 9845 allocs/op 9845 allocs/op 1
BenchmarkDocument/object_10000 - ns/op 15520444 ns/op 15028111 ns/op 1.03
BenchmarkDocument/object_10000 - B/op 12167408 B/op 12166744 B/op 1.00
BenchmarkDocument/object_10000 - allocs/op 100564 allocs/op 100559 allocs/op 1.00
BenchmarkDocument/tree_100 - ns/op 1026742 ns/op 1049112 ns/op 0.98
BenchmarkDocument/tree_100 - B/op 943675 B/op 943678 B/op 1.00
BenchmarkDocument/tree_100 - allocs/op 6099 allocs/op 6099 allocs/op 1
BenchmarkDocument/tree_1000 - ns/op 75197018 ns/op 79782715 ns/op 0.94
BenchmarkDocument/tree_1000 - B/op 86460406 B/op 86460627 B/op 1.00
BenchmarkDocument/tree_1000 - allocs/op 60113 allocs/op 60114 allocs/op 1.00
BenchmarkDocument/tree_10000 - ns/op 10065805096 ns/op 9957562898 ns/op 1.01
BenchmarkDocument/tree_10000 - B/op 8580979928 B/op 8580990424 B/op 1.00
BenchmarkDocument/tree_10000 - allocs/op 600219 allocs/op 600232 allocs/op 1.00
BenchmarkDocument/tree_delete_all_1000 - ns/op 77199204 ns/op 77379744 ns/op 1.00
BenchmarkDocument/tree_delete_all_1000 - B/op 86990300 B/op 86990891 B/op 1.00
BenchmarkDocument/tree_delete_all_1000 - allocs/op 67749 allocs/op 67751 allocs/op 1.00
BenchmarkDocument/tree_edit_gc_100 - ns/op 3848317 ns/op 3743356 ns/op 1.03
BenchmarkDocument/tree_edit_gc_100 - B/op 4121006 B/op 4120983 B/op 1.00
BenchmarkDocument/tree_edit_gc_100 - allocs/op 14356 allocs/op 14356 allocs/op 1
BenchmarkDocument/tree_edit_gc_1000 - ns/op 315192871 ns/op 311312288 ns/op 1.01
BenchmarkDocument/tree_edit_gc_1000 - B/op 383465308 B/op 383465558 B/op 1.00
BenchmarkDocument/tree_edit_gc_1000 - allocs/op 145398 allocs/op 145406 allocs/op 1.00
BenchmarkDocument/tree_split_gc_100 - ns/op 2576397 ns/op 2564917 ns/op 1.00
BenchmarkDocument/tree_split_gc_100 - B/op 2386837 B/op 2386900 B/op 1.00
BenchmarkDocument/tree_split_gc_100 - allocs/op 10341 allocs/op 10341 allocs/op 1
BenchmarkDocument/tree_split_gc_1000 - ns/op 190452899 ns/op 194397785 ns/op 0.98
BenchmarkDocument/tree_split_gc_1000 - B/op 221989321 B/op 221990026 B/op 1.00
BenchmarkDocument/tree_split_gc_1000 - allocs/op 112242 allocs/op 112248 allocs/op 1.00
BenchmarkRPC/client_to_server - ns/op 375693855 ns/op 364396329 ns/op 1.03
BenchmarkRPC/client_to_server - B/op 17831237 B/op 18067424 B/op 0.99
BenchmarkRPC/client_to_server - allocs/op 166891 allocs/op 165863 allocs/op 1.01
BenchmarkRPC/client_to_client_via_server - ns/op 641023908 ns/op 625660123 ns/op 1.02
BenchmarkRPC/client_to_client_via_server - B/op 37951584 B/op 32815272 B/op 1.16
BenchmarkRPC/client_to_client_via_server - allocs/op 312220 allocs/op 310207 allocs/op 1.01
BenchmarkRPC/attach_large_document - ns/op 1471678629 ns/op 1355198048 ns/op 1.09
BenchmarkRPC/attach_large_document - B/op 1889230128 B/op 1868233624 B/op 1.01
BenchmarkRPC/attach_large_document - allocs/op 7565 allocs/op 7466 allocs/op 1.01
BenchmarkRPC/adminCli_to_server - ns/op 551785137 ns/op 549909416 ns/op 1.00
BenchmarkRPC/adminCli_to_server - B/op 37214272 B/op 36780108 B/op 1.01
BenchmarkRPC/adminCli_to_server - allocs/op 289716 allocs/op 288662 allocs/op 1.00
BenchmarkLocker - ns/op 66.45 ns/op 65.86 ns/op 1.01
BenchmarkLocker - B/op 16 B/op 16 B/op 1
BenchmarkLocker - allocs/op 1 allocs/op 1 allocs/op 1
BenchmarkLockerParallel - ns/op 38.48 ns/op 38.59 ns/op 1.00
BenchmarkLockerParallel - B/op 0 B/op 0 B/op NaN
BenchmarkLockerParallel - allocs/op 0 allocs/op 0 allocs/op NaN
BenchmarkLockerMoreKeys - ns/op 155.7 ns/op 148.9 ns/op 1.05
BenchmarkLockerMoreKeys - B/op 15 B/op 15 B/op 1
BenchmarkLockerMoreKeys - allocs/op 0 allocs/op 0 allocs/op NaN
BenchmarkChange/Push_10_Changes - ns/op 3913144 ns/op 3838436 ns/op 1.02
BenchmarkChange/Push_10_Changes - B/op 125536 B/op 125677 B/op 1.00
BenchmarkChange/Push_10_Changes - allocs/op 1254 allocs/op 1254 allocs/op 1
BenchmarkChange/Push_100_Changes - ns/op 14671257 ns/op 14440415 ns/op 1.02
BenchmarkChange/Push_100_Changes - B/op 636661 B/op 647975 B/op 0.98
BenchmarkChange/Push_100_Changes - allocs/op 6537 allocs/op 6540 allocs/op 1.00
BenchmarkChange/Push_1000_Changes - ns/op 115833937 ns/op 115497921 ns/op 1.00
BenchmarkChange/Push_1000_Changes - B/op 5991660 B/op 6151829 B/op 0.97
BenchmarkChange/Push_1000_Changes - allocs/op 62156 allocs/op 62159 allocs/op 1.00
BenchmarkChange/Pull_10_Changes - ns/op 2918970 ns/op 2909758 ns/op 1.00
BenchmarkChange/Pull_10_Changes - B/op 99694 B/op 100076 B/op 1.00
BenchmarkChange/Pull_10_Changes - allocs/op 952 allocs/op 952 allocs/op 1
BenchmarkChange/Pull_100_Changes - ns/op 4468011 ns/op 4414877 ns/op 1.01
BenchmarkChange/Pull_100_Changes - B/op 254981 B/op 256121 B/op 1.00
BenchmarkChange/Pull_100_Changes - allocs/op 3154 allocs/op 3154 allocs/op 1
BenchmarkChange/Pull_1000_Changes - ns/op 8925264 ns/op 8566513 ns/op 1.04
BenchmarkChange/Pull_1000_Changes - B/op 1391435 B/op 1392837 B/op 1.00
BenchmarkChange/Pull_1000_Changes - allocs/op 26860 allocs/op 26865 allocs/op 1.00
BenchmarkSnapshot/Push_3KB_snapshot - ns/op 17392450 ns/op 17384863 ns/op 1.00
BenchmarkSnapshot/Push_3KB_snapshot - B/op 806807 B/op 802328 B/op 1.01
BenchmarkSnapshot/Push_3KB_snapshot - allocs/op 6543 allocs/op 6549 allocs/op 1.00
BenchmarkSnapshot/Push_30KB_snapshot - ns/op 120076397 ns/op 118971166 ns/op 1.01
BenchmarkSnapshot/Push_30KB_snapshot - B/op 6338794 B/op 6156721 B/op 1.03
BenchmarkSnapshot/Push_30KB_snapshot - allocs/op 62165 allocs/op 62158 allocs/op 1.00
BenchmarkSnapshot/Pull_3KB_snapshot - ns/op 6769933 ns/op 6602183 ns/op 1.03
BenchmarkSnapshot/Pull_3KB_snapshot - B/op 900740 B/op 902235 B/op 1.00
BenchmarkSnapshot/Pull_3KB_snapshot - allocs/op 14878 allocs/op 14878 allocs/op 1
BenchmarkSnapshot/Pull_30KB_snapshot - ns/op 15330990 ns/op 14754933 ns/op 1.04
BenchmarkSnapshot/Pull_30KB_snapshot - B/op 6976165 B/op 6981411 B/op 1.00
BenchmarkSnapshot/Pull_30KB_snapshot - allocs/op 144140 allocs/op 144131 allocs/op 1.00
BenchmarkSync/memory_sync_10_test - ns/op 6989 ns/op 6984 ns/op 1.00
BenchmarkSync/memory_sync_10_test - B/op 1286 B/op 1286 B/op 1
BenchmarkSync/memory_sync_10_test - allocs/op 38 allocs/op 38 allocs/op 1
BenchmarkSync/memory_sync_100_test - ns/op 52644 ns/op 51752 ns/op 1.02
BenchmarkSync/memory_sync_100_test - B/op 8660 B/op 8655 B/op 1.00
BenchmarkSync/memory_sync_100_test - allocs/op 274 allocs/op 274 allocs/op 1
BenchmarkSync/memory_sync_1000_test - ns/op 599688 ns/op 593943 ns/op 1.01
BenchmarkSync/memory_sync_1000_test - B/op 74692 B/op 74410 B/op 1.00
BenchmarkSync/memory_sync_1000_test - allocs/op 2130 allocs/op 2113 allocs/op 1.01
BenchmarkSync/memory_sync_10000_test - ns/op 8420553 ns/op 7699568 ns/op 1.09
BenchmarkSync/memory_sync_10000_test - B/op 758168 B/op 761656 B/op 1.00
BenchmarkSync/memory_sync_10000_test - allocs/op 20460 allocs/op 20495 allocs/op 1.00
BenchmarkTextEditing - ns/op 20088120737 ns/op 19296651559 ns/op 1.04
BenchmarkTextEditing - B/op 9041660680 B/op 9041594456 B/op 1.00
BenchmarkTextEditing - allocs/op 19921092 allocs/op 19920775 allocs/op 1.00

This comment was automatically generated by workflow using github-action-benchmark.

Please sign in to comment.