-
-
Notifications
You must be signed in to change notification settings - Fork 147
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Optimize Minimum VersionVector Computation for Performance #1153
Conversation
Caution Review failedThe pull request is closed. WalkthroughThis pull request introduces new test files and functions to validate the behavior of the Changes
Sequence Diagram(s)sequenceDiagram
participant Caller as Client/Caller
participant DB as Database (Memory/Mongo)
participant FV as FindMinVersionVector
Caller->>DB: Call UpdateAndFindMinSyncedVersionVector(...)
DB->>DB: Gather version vector infos
DB->>FV: Delegate computation of minimum version vector
FV-->>DB: Return computed minimum vector
DB->>DB: Compare with current client vector (update if needed)
DB->>Caller: Return the final minimum version vector
Possibly related PRs
Suggested reviewers
📜 Recent review detailsConfiguration used: CodeRabbit UI 📒 Files selected for processing (3)
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (1)
server/backend/database/version_vector.go (1)
35-64
: Consider pre-allocating the map for better performance.The implementation is correct and aligns with the PR's performance optimization goals. However, since we're dealing with version vectors in a performance-critical context, we could further optimize by pre-allocating the map with an estimated capacity.
Apply this diff to pre-allocate the map:
func FindMinVersionVector(vvInfos []VersionVectorInfo, excludeClientID types.ID) time.VersionVector { var minVV time.VersionVector for _, vvi := range vvInfos { if vvi.ClientID == excludeClientID { continue } if minVV == nil { - minVV = vvi.VersionVector.DeepCopy() + // Pre-allocate with the size of the first vector + minVV = make(time.VersionVector, len(vvi.VersionVector)) + for k, v := range vvi.VersionVector { + minVV[k] = v + } continue }
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (6)
pkg/document/time/version_vector_test.go
(1 hunks)server/backend/database/database_test.go
(2 hunks)server/backend/database/memory/database.go
(1 hunks)server/backend/database/mongo/client.go
(1 hunks)server/backend/database/version_vector.go
(1 hunks)test/helper/helper.go
(1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms (3)
- GitHub Check: build
- GitHub Check: bench
- GitHub Check: complex-test
🔇 Additional comments (6)
server/backend/database/version_vector.go (1)
33-35
: LGTM! Clear and concise function documentation.The documentation clearly describes the function's purpose and behavior.
pkg/document/time/version_vector_test.go (1)
12-92
: LGTM! Comprehensive test coverage.The test cases are well-structured and cover essential scenarios including edge cases:
- Empty vectors
- One-sided vectors
- Same keys with different values
- Different keys
server/backend/database/database_test.go (1)
46-181
: LGTM! Thorough test coverage with edge cases.The test cases provide excellent coverage of the
FindMinVersionVector
function, including:
- Empty inputs
- Single client scenarios
- Client exclusion logic
- Different actor combinations
- Edge cases like excluding all clients
test/helper/helper.go (1)
159-166
: LGTM! Clean and focused helper function.The function provides a convenient way to create version vectors for testing purposes.
server/backend/database/memory/database.go (1)
1363-1376
: Great refactoring of the minimum version vector computation!The changes improve both performance and code clarity by:
- Using a dedicated helper function
FindMinVersionVector
for computing the minimum version vector.- Simplifying the logic for combining the minimum version vector with the current client's version vector.
These changes contribute to the impressive performance improvements shown in the benchmarks.
server/backend/database/mongo/client.go (1)
1261-1268
: Excellent consistency in the MongoDB implementation!The changes mirror the memory database implementation, ensuring consistent behavior across storage backends. The use of
FindMinVersionVector
helper maintains code uniformity while contributing to the performance improvements.
There was a problem hiding this comment.
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: 3d12610 | Previous: d3b6652 | Ratio |
---|---|---|---|
BenchmarkDocument/constructor_test |
1440 ns/op 1385 B/op 24 allocs/op |
1508 ns/op 1385 B/op 24 allocs/op |
0.95 |
BenchmarkDocument/constructor_test - ns/op |
1440 ns/op |
1508 ns/op |
0.95 |
BenchmarkDocument/constructor_test - B/op |
1385 B/op |
1385 B/op |
1 |
BenchmarkDocument/constructor_test - allocs/op |
24 allocs/op |
24 allocs/op |
1 |
BenchmarkDocument/status_test |
1067 ns/op 1353 B/op 22 allocs/op |
1029 ns/op 1353 B/op 22 allocs/op |
1.04 |
BenchmarkDocument/status_test - ns/op |
1067 ns/op |
1029 ns/op |
1.04 |
BenchmarkDocument/status_test - B/op |
1353 B/op |
1353 B/op |
1 |
BenchmarkDocument/status_test - allocs/op |
22 allocs/op |
22 allocs/op |
1 |
BenchmarkDocument/equals_test |
7830 ns/op 7562 B/op 129 allocs/op |
7760 ns/op 7562 B/op 129 allocs/op |
1.01 |
BenchmarkDocument/equals_test - ns/op |
7830 ns/op |
7760 ns/op |
1.01 |
BenchmarkDocument/equals_test - B/op |
7562 B/op |
7562 B/op |
1 |
BenchmarkDocument/equals_test - allocs/op |
129 allocs/op |
129 allocs/op |
1 |
BenchmarkDocument/nested_update_test |
17059 ns/op 12307 B/op 258 allocs/op |
16856 ns/op 12307 B/op 258 allocs/op |
1.01 |
BenchmarkDocument/nested_update_test - ns/op |
17059 ns/op |
16856 ns/op |
1.01 |
BenchmarkDocument/nested_update_test - B/op |
12307 B/op |
12307 B/op |
1 |
BenchmarkDocument/nested_update_test - allocs/op |
258 allocs/op |
258 allocs/op |
1 |
BenchmarkDocument/delete_test |
22771 ns/op 15788 B/op 339 allocs/op |
22832 ns/op 15788 B/op 339 allocs/op |
1.00 |
BenchmarkDocument/delete_test - ns/op |
22771 ns/op |
22832 ns/op |
1.00 |
BenchmarkDocument/delete_test - B/op |
15788 B/op |
15788 B/op |
1 |
BenchmarkDocument/delete_test - allocs/op |
339 allocs/op |
339 allocs/op |
1 |
BenchmarkDocument/object_test |
8548 ns/op 7033 B/op 118 allocs/op |
8576 ns/op 7033 B/op 118 allocs/op |
1.00 |
BenchmarkDocument/object_test - ns/op |
8548 ns/op |
8576 ns/op |
1.00 |
BenchmarkDocument/object_test - B/op |
7033 B/op |
7033 B/op |
1 |
BenchmarkDocument/object_test - allocs/op |
118 allocs/op |
118 allocs/op |
1 |
BenchmarkDocument/array_test |
30258 ns/op 12139 B/op 273 allocs/op |
33291 ns/op 12139 B/op 273 allocs/op |
0.91 |
BenchmarkDocument/array_test - ns/op |
30258 ns/op |
33291 ns/op |
0.91 |
BenchmarkDocument/array_test - B/op |
12139 B/op |
12139 B/op |
1 |
BenchmarkDocument/array_test - allocs/op |
273 allocs/op |
273 allocs/op |
1 |
BenchmarkDocument/text_test |
33943 ns/op 15188 B/op 484 allocs/op |
32087 ns/op 15188 B/op 484 allocs/op |
1.06 |
BenchmarkDocument/text_test - ns/op |
33943 ns/op |
32087 ns/op |
1.06 |
BenchmarkDocument/text_test - B/op |
15188 B/op |
15188 B/op |
1 |
BenchmarkDocument/text_test - allocs/op |
484 allocs/op |
484 allocs/op |
1 |
BenchmarkDocument/text_composition_test |
31638 ns/op 18701 B/op 501 allocs/op |
31523 ns/op 18701 B/op 501 allocs/op |
1.00 |
BenchmarkDocument/text_composition_test - ns/op |
31638 ns/op |
31523 ns/op |
1.00 |
BenchmarkDocument/text_composition_test - B/op |
18701 B/op |
18701 B/op |
1 |
BenchmarkDocument/text_composition_test - allocs/op |
501 allocs/op |
501 allocs/op |
1 |
BenchmarkDocument/rich_text_test |
85810 ns/op 39357 B/op 1146 allocs/op |
88200 ns/op 39356 B/op 1146 allocs/op |
0.97 |
BenchmarkDocument/rich_text_test - ns/op |
85810 ns/op |
88200 ns/op |
0.97 |
BenchmarkDocument/rich_text_test - B/op |
39357 B/op |
39356 B/op |
1.00 |
BenchmarkDocument/rich_text_test - allocs/op |
1146 allocs/op |
1146 allocs/op |
1 |
BenchmarkDocument/counter_test |
18261 ns/op 11811 B/op 253 allocs/op |
18087 ns/op 11810 B/op 253 allocs/op |
1.01 |
BenchmarkDocument/counter_test - ns/op |
18261 ns/op |
18087 ns/op |
1.01 |
BenchmarkDocument/counter_test - B/op |
11811 B/op |
11810 B/op |
1.00 |
BenchmarkDocument/counter_test - allocs/op |
253 allocs/op |
253 allocs/op |
1 |
BenchmarkDocument/text_edit_gc_100 |
1392021 ns/op 864918 B/op 17282 allocs/op |
1385979 ns/op 864862 B/op 17281 allocs/op |
1.00 |
BenchmarkDocument/text_edit_gc_100 - ns/op |
1392021 ns/op |
1385979 ns/op |
1.00 |
BenchmarkDocument/text_edit_gc_100 - B/op |
864918 B/op |
864862 B/op |
1.00 |
BenchmarkDocument/text_edit_gc_100 - allocs/op |
17282 allocs/op |
17281 allocs/op |
1.00 |
BenchmarkDocument/text_edit_gc_1000 |
52419001 ns/op 46837956 B/op 185589 allocs/op |
52998071 ns/op 46839657 B/op 185597 allocs/op |
0.99 |
BenchmarkDocument/text_edit_gc_1000 - ns/op |
52419001 ns/op |
52998071 ns/op |
0.99 |
BenchmarkDocument/text_edit_gc_1000 - B/op |
46837956 B/op |
46839657 B/op |
1.00 |
BenchmarkDocument/text_edit_gc_1000 - allocs/op |
185589 allocs/op |
185597 allocs/op |
1.00 |
BenchmarkDocument/text_split_gc_100 |
2111490 ns/op 1581023 B/op 15951 allocs/op |
2103673 ns/op 1581009 B/op 15951 allocs/op |
1.00 |
BenchmarkDocument/text_split_gc_100 - ns/op |
2111490 ns/op |
2103673 ns/op |
1.00 |
BenchmarkDocument/text_split_gc_100 - B/op |
1581023 B/op |
1581009 B/op |
1.00 |
BenchmarkDocument/text_split_gc_100 - allocs/op |
15951 allocs/op |
15951 allocs/op |
1 |
BenchmarkDocument/text_split_gc_1000 |
129382919 ns/op 137788758 B/op 184999 allocs/op |
127632997 ns/op 137789162 B/op 184994 allocs/op |
1.01 |
BenchmarkDocument/text_split_gc_1000 - ns/op |
129382919 ns/op |
127632997 ns/op |
1.01 |
BenchmarkDocument/text_split_gc_1000 - B/op |
137788758 B/op |
137789162 B/op |
1.00 |
BenchmarkDocument/text_split_gc_1000 - allocs/op |
184999 allocs/op |
184994 allocs/op |
1.00 |
BenchmarkDocument/text_delete_all_10000 |
16978694 ns/op 10577352 B/op 56137 allocs/op |
16934522 ns/op 10575875 B/op 56133 allocs/op |
1.00 |
BenchmarkDocument/text_delete_all_10000 - ns/op |
16978694 ns/op |
16934522 ns/op |
1.00 |
BenchmarkDocument/text_delete_all_10000 - B/op |
10577352 B/op |
10575875 B/op |
1.00 |
BenchmarkDocument/text_delete_all_10000 - allocs/op |
56137 allocs/op |
56133 allocs/op |
1.00 |
BenchmarkDocument/text_delete_all_100000 |
296716280 ns/op 105540408 B/op 565993 allocs/op |
257265365 ns/op 105532240 B/op 566059 allocs/op |
1.15 |
BenchmarkDocument/text_delete_all_100000 - ns/op |
296716280 ns/op |
257265365 ns/op |
1.15 |
BenchmarkDocument/text_delete_all_100000 - B/op |
105540408 B/op |
105532240 B/op |
1.00 |
BenchmarkDocument/text_delete_all_100000 - allocs/op |
565993 allocs/op |
566059 allocs/op |
1.00 |
BenchmarkDocument/text_100 |
231939 ns/op 120906 B/op 5181 allocs/op |
244866 ns/op 120906 B/op 5181 allocs/op |
0.95 |
BenchmarkDocument/text_100 - ns/op |
231939 ns/op |
244866 ns/op |
0.95 |
BenchmarkDocument/text_100 - B/op |
120906 B/op |
120906 B/op |
1 |
BenchmarkDocument/text_100 - allocs/op |
5181 allocs/op |
5181 allocs/op |
1 |
BenchmarkDocument/text_1000 |
2487599 ns/op 1156078 B/op 51084 allocs/op |
2544670 ns/op 1156064 B/op 51084 allocs/op |
0.98 |
BenchmarkDocument/text_1000 - ns/op |
2487599 ns/op |
2544670 ns/op |
0.98 |
BenchmarkDocument/text_1000 - B/op |
1156078 B/op |
1156064 B/op |
1.00 |
BenchmarkDocument/text_1000 - allocs/op |
51084 allocs/op |
51084 allocs/op |
1 |
BenchmarkDocument/array_1000 |
1253867 ns/op 1088066 B/op 11879 allocs/op |
1283484 ns/op 1088363 B/op 11880 allocs/op |
0.98 |
BenchmarkDocument/array_1000 - ns/op |
1253867 ns/op |
1283484 ns/op |
0.98 |
BenchmarkDocument/array_1000 - B/op |
1088066 B/op |
1088363 B/op |
1.00 |
BenchmarkDocument/array_1000 - allocs/op |
11879 allocs/op |
11880 allocs/op |
1.00 |
BenchmarkDocument/array_10000 |
13447866 ns/op 9887983 B/op 120730 allocs/op |
13338688 ns/op 9886809 B/op 120725 allocs/op |
1.01 |
BenchmarkDocument/array_10000 - ns/op |
13447866 ns/op |
13338688 ns/op |
1.01 |
BenchmarkDocument/array_10000 - B/op |
9887983 B/op |
9886809 B/op |
1.00 |
BenchmarkDocument/array_10000 - allocs/op |
120730 allocs/op |
120725 allocs/op |
1.00 |
BenchmarkDocument/array_gc_100 |
134200 ns/op 99897 B/op 1266 allocs/op |
138029 ns/op 99890 B/op 1266 allocs/op |
0.97 |
BenchmarkDocument/array_gc_100 - ns/op |
134200 ns/op |
138029 ns/op |
0.97 |
BenchmarkDocument/array_gc_100 - B/op |
99897 B/op |
99890 B/op |
1.00 |
BenchmarkDocument/array_gc_100 - allocs/op |
1266 allocs/op |
1266 allocs/op |
1 |
BenchmarkDocument/array_gc_1000 |
1454434 ns/op 1140791 B/op 12926 allocs/op |
1469874 ns/op 1140898 B/op 12926 allocs/op |
0.99 |
BenchmarkDocument/array_gc_1000 - ns/op |
1454434 ns/op |
1469874 ns/op |
0.99 |
BenchmarkDocument/array_gc_1000 - B/op |
1140791 B/op |
1140898 B/op |
1.00 |
BenchmarkDocument/array_gc_1000 - allocs/op |
12926 allocs/op |
12926 allocs/op |
1 |
BenchmarkDocument/counter_1000 |
206452 ns/op 178137 B/op 5771 allocs/op |
209646 ns/op 178135 B/op 5771 allocs/op |
0.98 |
BenchmarkDocument/counter_1000 - ns/op |
206452 ns/op |
209646 ns/op |
0.98 |
BenchmarkDocument/counter_1000 - B/op |
178137 B/op |
178135 B/op |
1.00 |
BenchmarkDocument/counter_1000 - allocs/op |
5771 allocs/op |
5771 allocs/op |
1 |
BenchmarkDocument/counter_10000 |
2163604 ns/op 2068954 B/op 59778 allocs/op |
2189075 ns/op 2068968 B/op 59778 allocs/op |
0.99 |
BenchmarkDocument/counter_10000 - ns/op |
2163604 ns/op |
2189075 ns/op |
0.99 |
BenchmarkDocument/counter_10000 - B/op |
2068954 B/op |
2068968 B/op |
1.00 |
BenchmarkDocument/counter_10000 - allocs/op |
59778 allocs/op |
59778 allocs/op |
1 |
BenchmarkDocument/object_1000 |
1438494 ns/op 1437085 B/op 9925 allocs/op |
1464426 ns/op 1437302 B/op 9925 allocs/op |
0.98 |
BenchmarkDocument/object_1000 - ns/op |
1438494 ns/op |
1464426 ns/op |
0.98 |
BenchmarkDocument/object_1000 - B/op |
1437085 B/op |
1437302 B/op |
1.00 |
BenchmarkDocument/object_1000 - allocs/op |
9925 allocs/op |
9925 allocs/op |
1 |
BenchmarkDocument/object_10000 |
14997540 ns/op 12348337 B/op 101220 allocs/op |
14832648 ns/op 12349861 B/op 101227 allocs/op |
1.01 |
BenchmarkDocument/object_10000 - ns/op |
14997540 ns/op |
14832648 ns/op |
1.01 |
BenchmarkDocument/object_10000 - B/op |
12348337 B/op |
12349861 B/op |
1.00 |
BenchmarkDocument/object_10000 - allocs/op |
101220 allocs/op |
101227 allocs/op |
1.00 |
BenchmarkDocument/tree_100 |
1082151 ns/op 951028 B/op 6102 allocs/op |
1077993 ns/op 951036 B/op 6102 allocs/op |
1.00 |
BenchmarkDocument/tree_100 - ns/op |
1082151 ns/op |
1077993 ns/op |
1.00 |
BenchmarkDocument/tree_100 - B/op |
951028 B/op |
951036 B/op |
1.00 |
BenchmarkDocument/tree_100 - allocs/op |
6102 allocs/op |
6102 allocs/op |
1 |
BenchmarkDocument/tree_1000 |
79260790 ns/op 86582426 B/op 60112 allocs/op |
79586739 ns/op 86581797 B/op 60111 allocs/op |
1.00 |
BenchmarkDocument/tree_1000 - ns/op |
79260790 ns/op |
79586739 ns/op |
1.00 |
BenchmarkDocument/tree_1000 - B/op |
86582426 B/op |
86581797 B/op |
1.00 |
BenchmarkDocument/tree_1000 - allocs/op |
60112 allocs/op |
60111 allocs/op |
1.00 |
BenchmarkDocument/tree_10000 |
9617221968 ns/op 8581182080 B/op 600194 allocs/op |
9567637461 ns/op 8581198384 B/op 600193 allocs/op |
1.01 |
BenchmarkDocument/tree_10000 - ns/op |
9617221968 ns/op |
9567637461 ns/op |
1.01 |
BenchmarkDocument/tree_10000 - B/op |
8581182080 B/op |
8581198384 B/op |
1.00 |
BenchmarkDocument/tree_10000 - allocs/op |
600194 allocs/op |
600193 allocs/op |
1.00 |
BenchmarkDocument/tree_delete_all_1000 |
77080637 ns/op 87568340 B/op 75293 allocs/op |
80585404 ns/op 87568568 B/op 75293 allocs/op |
0.96 |
BenchmarkDocument/tree_delete_all_1000 - ns/op |
77080637 ns/op |
80585404 ns/op |
0.96 |
BenchmarkDocument/tree_delete_all_1000 - B/op |
87568340 B/op |
87568568 B/op |
1.00 |
BenchmarkDocument/tree_delete_all_1000 - allocs/op |
75293 allocs/op |
75293 allocs/op |
1 |
BenchmarkDocument/tree_edit_gc_100 |
3885051 ns/op 4147870 B/op 15146 allocs/op |
3972947 ns/op 4147778 B/op 15146 allocs/op |
0.98 |
BenchmarkDocument/tree_edit_gc_100 - ns/op |
3885051 ns/op |
3972947 ns/op |
0.98 |
BenchmarkDocument/tree_edit_gc_100 - B/op |
4147870 B/op |
4147778 B/op |
1.00 |
BenchmarkDocument/tree_edit_gc_100 - allocs/op |
15146 allocs/op |
15146 allocs/op |
1 |
BenchmarkDocument/tree_edit_gc_1000 |
317849245 ns/op 384038702 B/op 154925 allocs/op |
331904057 ns/op 384045086 B/op 154953 allocs/op |
0.96 |
BenchmarkDocument/tree_edit_gc_1000 - ns/op |
317849245 ns/op |
331904057 ns/op |
0.96 |
BenchmarkDocument/tree_edit_gc_1000 - B/op |
384038702 B/op |
384045086 B/op |
1.00 |
BenchmarkDocument/tree_edit_gc_1000 - allocs/op |
154925 allocs/op |
154953 allocs/op |
1.00 |
BenchmarkDocument/tree_split_gc_100 |
2613530 ns/op 2407268 B/op 11131 allocs/op |
2761053 ns/op 2407209 B/op 11131 allocs/op |
0.95 |
BenchmarkDocument/tree_split_gc_100 - ns/op |
2613530 ns/op |
2761053 ns/op |
0.95 |
BenchmarkDocument/tree_split_gc_100 - B/op |
2407268 B/op |
2407209 B/op |
1.00 |
BenchmarkDocument/tree_split_gc_100 - allocs/op |
11131 allocs/op |
11131 allocs/op |
1 |
BenchmarkDocument/tree_split_gc_1000 |
192904636 ns/op 222497770 B/op 122065 allocs/op |
203133011 ns/op 222500027 B/op 122069 allocs/op |
0.95 |
BenchmarkDocument/tree_split_gc_1000 - ns/op |
192904636 ns/op |
203133011 ns/op |
0.95 |
BenchmarkDocument/tree_split_gc_1000 - B/op |
222497770 B/op |
222500027 B/op |
1.00 |
BenchmarkDocument/tree_split_gc_1000 - allocs/op |
122065 allocs/op |
122069 allocs/op |
1.00 |
BenchmarkRPC/client_to_server |
417510755 ns/op 16141552 B/op 223576 allocs/op |
424329839 ns/op 17588093 B/op 223668 allocs/op |
0.98 |
BenchmarkRPC/client_to_server - ns/op |
417510755 ns/op |
424329839 ns/op |
0.98 |
BenchmarkRPC/client_to_server - B/op |
16141552 B/op |
17588093 B/op |
0.92 |
BenchmarkRPC/client_to_server - allocs/op |
223576 allocs/op |
223668 allocs/op |
1.00 |
BenchmarkRPC/client_to_client_via_server |
781426194 ns/op 34827604 B/op 477035 allocs/op |
800401766 ns/op 38735904 B/op 481548 allocs/op |
0.98 |
BenchmarkRPC/client_to_client_via_server - ns/op |
781426194 ns/op |
800401766 ns/op |
0.98 |
BenchmarkRPC/client_to_client_via_server - B/op |
34827604 B/op |
38735904 B/op |
0.90 |
BenchmarkRPC/client_to_client_via_server - allocs/op |
477035 allocs/op |
481548 allocs/op |
0.99 |
BenchmarkRPC/attach_large_document |
1283776184 ns/op 1894075648 B/op 12452 allocs/op |
1180007817 ns/op 1897647776 B/op 12256 allocs/op |
1.09 |
BenchmarkRPC/attach_large_document - ns/op |
1283776184 ns/op |
1180007817 ns/op |
1.09 |
BenchmarkRPC/attach_large_document - B/op |
1894075648 B/op |
1897647776 B/op |
1.00 |
BenchmarkRPC/attach_large_document - allocs/op |
12452 allocs/op |
12256 allocs/op |
1.02 |
BenchmarkRPC/adminCli_to_server |
540702907 ns/op 22026520 B/op 292002 allocs/op |
538418497 ns/op 21207404 B/op 291990 allocs/op |
1.00 |
BenchmarkRPC/adminCli_to_server - ns/op |
540702907 ns/op |
538418497 ns/op |
1.00 |
BenchmarkRPC/adminCli_to_server - B/op |
22026520 B/op |
21207404 B/op |
1.04 |
BenchmarkRPC/adminCli_to_server - allocs/op |
292002 allocs/op |
291990 allocs/op |
1.00 |
BenchmarkLocker |
81.39 ns/op 32 B/op 1 allocs/op |
81.02 ns/op 32 B/op 1 allocs/op |
1.00 |
BenchmarkLocker - ns/op |
81.39 ns/op |
81.02 ns/op |
1.00 |
BenchmarkLocker - B/op |
32 B/op |
32 B/op |
1 |
BenchmarkLocker - allocs/op |
1 allocs/op |
1 allocs/op |
1 |
BenchmarkLockerParallel |
45.54 ns/op 0 B/op 0 allocs/op |
45.83 ns/op 0 B/op 0 allocs/op |
0.99 |
BenchmarkLockerParallel - ns/op |
45.54 ns/op |
45.83 ns/op |
0.99 |
BenchmarkLockerParallel - B/op |
0 B/op |
0 B/op |
1 |
BenchmarkLockerParallel - allocs/op |
0 allocs/op |
0 allocs/op |
1 |
BenchmarkLockerMoreKeys |
181.3 ns/op 31 B/op 0 allocs/op |
176.5 ns/op 31 B/op 0 allocs/op |
1.03 |
BenchmarkLockerMoreKeys - ns/op |
181.3 ns/op |
176.5 ns/op |
1.03 |
BenchmarkLockerMoreKeys - B/op |
31 B/op |
31 B/op |
1 |
BenchmarkLockerMoreKeys - allocs/op |
0 allocs/op |
0 allocs/op |
1 |
BenchmarkRWLocker/RWLock_rate_2 |
50.63 ns/op 0 B/op 0 allocs/op |
50.38 ns/op 0 B/op 0 allocs/op |
1.00 |
BenchmarkRWLocker/RWLock_rate_2 - ns/op |
50.63 ns/op |
50.38 ns/op |
1.00 |
BenchmarkRWLocker/RWLock_rate_2 - B/op |
0 B/op |
0 B/op |
1 |
BenchmarkRWLocker/RWLock_rate_2 - allocs/op |
0 allocs/op |
0 allocs/op |
1 |
BenchmarkRWLocker/RWLock_rate_10 |
51.79 ns/op 0 B/op 0 allocs/op |
44.44 ns/op 0 B/op 0 allocs/op |
1.17 |
BenchmarkRWLocker/RWLock_rate_10 - ns/op |
51.79 ns/op |
44.44 ns/op |
1.17 |
BenchmarkRWLocker/RWLock_rate_10 - B/op |
0 B/op |
0 B/op |
1 |
BenchmarkRWLocker/RWLock_rate_10 - allocs/op |
0 allocs/op |
0 allocs/op |
1 |
BenchmarkRWLocker/RWLock_rate_100 |
61.11 ns/op 2 B/op 0 allocs/op |
60.37 ns/op 2 B/op 0 allocs/op |
1.01 |
BenchmarkRWLocker/RWLock_rate_100 - ns/op |
61.11 ns/op |
60.37 ns/op |
1.01 |
BenchmarkRWLocker/RWLock_rate_100 - B/op |
2 B/op |
2 B/op |
1 |
BenchmarkRWLocker/RWLock_rate_100 - allocs/op |
0 allocs/op |
0 allocs/op |
1 |
BenchmarkRWLocker/RWLock_rate_1000 |
90.17 ns/op 8 B/op 0 allocs/op |
89.75 ns/op 8 B/op 0 allocs/op |
1.00 |
BenchmarkRWLocker/RWLock_rate_1000 - ns/op |
90.17 ns/op |
89.75 ns/op |
1.00 |
BenchmarkRWLocker/RWLock_rate_1000 - B/op |
8 B/op |
8 B/op |
1 |
BenchmarkRWLocker/RWLock_rate_1000 - allocs/op |
0 allocs/op |
0 allocs/op |
1 |
BenchmarkChange/Push_10_Changes |
4513953 ns/op 150238 B/op 1624 allocs/op |
4558452 ns/op 150083 B/op 1622 allocs/op |
0.99 |
BenchmarkChange/Push_10_Changes - ns/op |
4513953 ns/op |
4558452 ns/op |
0.99 |
BenchmarkChange/Push_10_Changes - B/op |
150238 B/op |
150083 B/op |
1.00 |
BenchmarkChange/Push_10_Changes - allocs/op |
1624 allocs/op |
1622 allocs/op |
1.00 |
BenchmarkChange/Push_100_Changes |
16520394 ns/op 782156 B/op 8511 allocs/op |
16495920 ns/op 770910 B/op 8511 allocs/op |
1.00 |
BenchmarkChange/Push_100_Changes - ns/op |
16520394 ns/op |
16495920 ns/op |
1.00 |
BenchmarkChange/Push_100_Changes - B/op |
782156 B/op |
770910 B/op |
1.01 |
BenchmarkChange/Push_100_Changes - allocs/op |
8511 allocs/op |
8511 allocs/op |
1 |
BenchmarkChange/Push_1000_Changes |
133009926 ns/op 7151078 B/op 79321 allocs/op |
132621172 ns/op 7150779 B/op 79323 allocs/op |
1.00 |
BenchmarkChange/Push_1000_Changes - ns/op |
133009926 ns/op |
132621172 ns/op |
1.00 |
BenchmarkChange/Push_1000_Changes - B/op |
7151078 B/op |
7150779 B/op |
1.00 |
BenchmarkChange/Push_1000_Changes - allocs/op |
79321 allocs/op |
79323 allocs/op |
1.00 |
BenchmarkChange/Pull_10_Changes |
3677562 ns/op 124635 B/op 1456 allocs/op |
3700660 ns/op 124664 B/op 1456 allocs/op |
0.99 |
BenchmarkChange/Pull_10_Changes - ns/op |
3677562 ns/op |
3700660 ns/op |
0.99 |
BenchmarkChange/Pull_10_Changes - B/op |
124635 B/op |
124664 B/op |
1.00 |
BenchmarkChange/Pull_10_Changes - allocs/op |
1456 allocs/op |
1456 allocs/op |
1 |
BenchmarkChange/Pull_100_Changes |
5281288 ns/op 354420 B/op 5181 allocs/op |
5320008 ns/op 354527 B/op 5182 allocs/op |
0.99 |
BenchmarkChange/Pull_100_Changes - ns/op |
5281288 ns/op |
5320008 ns/op |
0.99 |
BenchmarkChange/Pull_100_Changes - B/op |
354420 B/op |
354527 B/op |
1.00 |
BenchmarkChange/Pull_100_Changes - allocs/op |
5181 allocs/op |
5182 allocs/op |
1.00 |
BenchmarkChange/Pull_1000_Changes |
10727782 ns/op 2196190 B/op 44680 allocs/op |
10868811 ns/op 2198479 B/op 44681 allocs/op |
0.99 |
BenchmarkChange/Pull_1000_Changes - ns/op |
10727782 ns/op |
10868811 ns/op |
0.99 |
BenchmarkChange/Pull_1000_Changes - B/op |
2196190 B/op |
2198479 B/op |
1.00 |
BenchmarkChange/Pull_1000_Changes - allocs/op |
44680 allocs/op |
44681 allocs/op |
1.00 |
BenchmarkSnapshot/Push_3KB_snapshot |
18817538 ns/op 902455 B/op 8512 allocs/op |
19271920 ns/op 892540 B/op 8512 allocs/op |
0.98 |
BenchmarkSnapshot/Push_3KB_snapshot - ns/op |
18817538 ns/op |
19271920 ns/op |
0.98 |
BenchmarkSnapshot/Push_3KB_snapshot - B/op |
902455 B/op |
892540 B/op |
1.01 |
BenchmarkSnapshot/Push_3KB_snapshot - allocs/op |
8512 allocs/op |
8512 allocs/op |
1 |
BenchmarkSnapshot/Push_30KB_snapshot |
137520700 ns/op 8301406 B/op 89948 allocs/op |
136384683 ns/op 8281871 B/op 91044 allocs/op |
1.01 |
BenchmarkSnapshot/Push_30KB_snapshot - ns/op |
137520700 ns/op |
136384683 ns/op |
1.01 |
BenchmarkSnapshot/Push_30KB_snapshot - B/op |
8301406 B/op |
8281871 B/op |
1.00 |
BenchmarkSnapshot/Push_30KB_snapshot - allocs/op |
89948 allocs/op |
91044 allocs/op |
0.99 |
BenchmarkSnapshot/Pull_3KB_snapshot |
7443319 ns/op 1115772 B/op 20062 allocs/op |
7497599 ns/op 1115509 B/op 20062 allocs/op |
0.99 |
BenchmarkSnapshot/Pull_3KB_snapshot - ns/op |
7443319 ns/op |
7497599 ns/op |
0.99 |
BenchmarkSnapshot/Pull_3KB_snapshot - B/op |
1115772 B/op |
1115509 B/op |
1.00 |
BenchmarkSnapshot/Pull_3KB_snapshot - allocs/op |
20062 allocs/op |
20062 allocs/op |
1 |
BenchmarkSnapshot/Pull_30KB_snapshot |
19408023 ns/op 9305622 B/op 193609 allocs/op |
20179037 ns/op 9309422 B/op 193605 allocs/op |
0.96 |
BenchmarkSnapshot/Pull_30KB_snapshot - ns/op |
19408023 ns/op |
20179037 ns/op |
0.96 |
BenchmarkSnapshot/Pull_30KB_snapshot - B/op |
9305622 B/op |
9309422 B/op |
1.00 |
BenchmarkSnapshot/Pull_30KB_snapshot - allocs/op |
193609 allocs/op |
193605 allocs/op |
1.00 |
BenchmarkSplayTree/stress_test_100000 |
0.1913 ns/op 0 B/op 0 allocs/op |
0.19 ns/op 0 B/op 0 allocs/op |
1.01 |
BenchmarkSplayTree/stress_test_100000 - ns/op |
0.1913 ns/op |
0.19 ns/op |
1.01 |
BenchmarkSplayTree/stress_test_100000 - B/op |
0 B/op |
0 B/op |
1 |
BenchmarkSplayTree/stress_test_100000 - allocs/op |
0 allocs/op |
0 allocs/op |
1 |
BenchmarkSplayTree/stress_test_200000 |
0.3753 ns/op 0 B/op 0 allocs/op |
0.3918 ns/op 0 B/op 0 allocs/op |
0.96 |
BenchmarkSplayTree/stress_test_200000 - ns/op |
0.3753 ns/op |
0.3918 ns/op |
0.96 |
BenchmarkSplayTree/stress_test_200000 - B/op |
0 B/op |
0 B/op |
1 |
BenchmarkSplayTree/stress_test_200000 - allocs/op |
0 allocs/op |
0 allocs/op |
1 |
BenchmarkSplayTree/stress_test_300000 |
0.5928 ns/op 0 B/op 0 allocs/op |
0.6109 ns/op 0 B/op 0 allocs/op |
0.97 |
BenchmarkSplayTree/stress_test_300000 - ns/op |
0.5928 ns/op |
0.6109 ns/op |
0.97 |
BenchmarkSplayTree/stress_test_300000 - B/op |
0 B/op |
0 B/op |
1 |
BenchmarkSplayTree/stress_test_300000 - allocs/op |
0 allocs/op |
0 allocs/op |
1 |
BenchmarkSplayTree/random_access_100000 |
0.01296 ns/op 0 B/op 0 allocs/op |
0.01261 ns/op 0 B/op 0 allocs/op |
1.03 |
BenchmarkSplayTree/random_access_100000 - ns/op |
0.01296 ns/op |
0.01261 ns/op |
1.03 |
BenchmarkSplayTree/random_access_100000 - B/op |
0 B/op |
0 B/op |
1 |
BenchmarkSplayTree/random_access_100000 - allocs/op |
0 allocs/op |
0 allocs/op |
1 |
BenchmarkSplayTree/random_access_200000 |
0.03273 ns/op 0 B/op 0 allocs/op |
0.03222 ns/op 0 B/op 0 allocs/op |
1.02 |
BenchmarkSplayTree/random_access_200000 - ns/op |
0.03273 ns/op |
0.03222 ns/op |
1.02 |
BenchmarkSplayTree/random_access_200000 - B/op |
0 B/op |
0 B/op |
1 |
BenchmarkSplayTree/random_access_200000 - allocs/op |
0 allocs/op |
0 allocs/op |
1 |
BenchmarkSplayTree/random_access_300000 |
0.0459 ns/op 0 B/op 0 allocs/op |
0.04403 ns/op 0 B/op 0 allocs/op |
1.04 |
BenchmarkSplayTree/random_access_300000 - ns/op |
0.0459 ns/op |
0.04403 ns/op |
1.04 |
BenchmarkSplayTree/random_access_300000 - B/op |
0 B/op |
0 B/op |
1 |
BenchmarkSplayTree/random_access_300000 - allocs/op |
0 allocs/op |
0 allocs/op |
1 |
BenchmarkSplayTree/editing_trace_bench |
0.001963 ns/op 0 B/op 0 allocs/op |
0.001977 ns/op 0 B/op 0 allocs/op |
0.99 |
BenchmarkSplayTree/editing_trace_bench - ns/op |
0.001963 ns/op |
0.001977 ns/op |
0.99 |
BenchmarkSplayTree/editing_trace_bench - B/op |
0 B/op |
0 B/op |
1 |
BenchmarkSplayTree/editing_trace_bench - allocs/op |
0 allocs/op |
0 allocs/op |
1 |
BenchmarkSync/memory_sync_10_test |
7169 ns/op 1342 B/op 35 allocs/op |
7107 ns/op 1342 B/op 35 allocs/op |
1.01 |
BenchmarkSync/memory_sync_10_test - ns/op |
7169 ns/op |
7107 ns/op |
1.01 |
BenchmarkSync/memory_sync_10_test - B/op |
1342 B/op |
1342 B/op |
1 |
BenchmarkSync/memory_sync_10_test - allocs/op |
35 allocs/op |
35 allocs/op |
1 |
BenchmarkSync/memory_sync_100_test |
55752 ns/op 9505 B/op 268 allocs/op |
55697 ns/op 9541 B/op 269 allocs/op |
1.00 |
BenchmarkSync/memory_sync_100_test - ns/op |
55752 ns/op |
55697 ns/op |
1.00 |
BenchmarkSync/memory_sync_100_test - B/op |
9505 B/op |
9541 B/op |
1.00 |
BenchmarkSync/memory_sync_100_test - allocs/op |
268 allocs/op |
269 allocs/op |
1.00 |
BenchmarkSync/memory_sync_1000_test |
623060 ns/op 75517 B/op 2098 allocs/op |
615574 ns/op 76042 B/op 2115 allocs/op |
1.01 |
BenchmarkSync/memory_sync_1000_test - ns/op |
623060 ns/op |
615574 ns/op |
1.01 |
BenchmarkSync/memory_sync_1000_test - B/op |
75517 B/op |
76042 B/op |
0.99 |
BenchmarkSync/memory_sync_1000_test - allocs/op |
2098 allocs/op |
2115 allocs/op |
0.99 |
BenchmarkSync/memory_sync_10000_test |
7746659 ns/op 750360 B/op 20388 allocs/op |
8041046 ns/op 761602 B/op 20469 allocs/op |
0.96 |
BenchmarkSync/memory_sync_10000_test - ns/op |
7746659 ns/op |
8041046 ns/op |
0.96 |
BenchmarkSync/memory_sync_10000_test - B/op |
750360 B/op |
761602 B/op |
0.99 |
BenchmarkSync/memory_sync_10000_test - allocs/op |
20388 allocs/op |
20469 allocs/op |
1.00 |
BenchmarkTextEditing |
5274782535 ns/op 3922664968 B/op 20619732 allocs/op |
5253615977 ns/op 3922679240 B/op 20619772 allocs/op |
1.00 |
BenchmarkTextEditing - ns/op |
5274782535 ns/op |
5253615977 ns/op |
1.00 |
BenchmarkTextEditing - B/op |
3922664968 B/op |
3922679240 B/op |
1.00 |
BenchmarkTextEditing - allocs/op |
20619732 allocs/op |
20619772 allocs/op |
1.00 |
BenchmarkTree/10000_vertices_to_protobuf |
4448623 ns/op 6363240 B/op 70025 allocs/op |
4325676 ns/op 6363245 B/op 70025 allocs/op |
1.03 |
BenchmarkTree/10000_vertices_to_protobuf - ns/op |
4448623 ns/op |
4325676 ns/op |
1.03 |
BenchmarkTree/10000_vertices_to_protobuf - B/op |
6363240 B/op |
6363245 B/op |
1.00 |
BenchmarkTree/10000_vertices_to_protobuf - allocs/op |
70025 allocs/op |
70025 allocs/op |
1 |
BenchmarkTree/10000_vertices_from_protobuf |
226048058 ns/op 442304296 B/op 290038 allocs/op |
223326905 ns/op 442304321 B/op 290039 allocs/op |
1.01 |
BenchmarkTree/10000_vertices_from_protobuf - ns/op |
226048058 ns/op |
223326905 ns/op |
1.01 |
BenchmarkTree/10000_vertices_from_protobuf - B/op |
442304296 B/op |
442304321 B/op |
1.00 |
BenchmarkTree/10000_vertices_from_protobuf - allocs/op |
290038 allocs/op |
290039 allocs/op |
1.00 |
BenchmarkTree/20000_vertices_to_protobuf |
9115707 ns/op 12890897 B/op 140028 allocs/op |
9087112 ns/op 12891028 B/op 140028 allocs/op |
1.00 |
BenchmarkTree/20000_vertices_to_protobuf - ns/op |
9115707 ns/op |
9087112 ns/op |
1.00 |
BenchmarkTree/20000_vertices_to_protobuf - B/op |
12890897 B/op |
12891028 B/op |
1.00 |
BenchmarkTree/20000_vertices_to_protobuf - allocs/op |
140028 allocs/op |
140028 allocs/op |
1 |
BenchmarkTree/20000_vertices_from_protobuf |
893980205 ns/op 1697478352 B/op 580045 allocs/op |
874765082 ns/op 1697474176 B/op 580044 allocs/op |
1.02 |
BenchmarkTree/20000_vertices_from_protobuf - ns/op |
893980205 ns/op |
874765082 ns/op |
1.02 |
BenchmarkTree/20000_vertices_from_protobuf - B/op |
1697478352 B/op |
1697474176 B/op |
1.00 |
BenchmarkTree/20000_vertices_from_protobuf - allocs/op |
580045 allocs/op |
580044 allocs/op |
1.00 |
BenchmarkTree/30000_vertices_to_protobuf |
13986520 ns/op 18976271 B/op 210029 allocs/op |
14164975 ns/op 18976187 B/op 210029 allocs/op |
0.99 |
BenchmarkTree/30000_vertices_to_protobuf - ns/op |
13986520 ns/op |
14164975 ns/op |
0.99 |
BenchmarkTree/30000_vertices_to_protobuf - B/op |
18976271 B/op |
18976187 B/op |
1.00 |
BenchmarkTree/30000_vertices_to_protobuf - allocs/op |
210029 allocs/op |
210029 allocs/op |
1 |
BenchmarkTree/30000_vertices_from_protobuf |
2016765294 ns/op 3751734408 B/op 870048 allocs/op |
1984250990 ns/op 3751752256 B/op 870143 allocs/op |
1.02 |
BenchmarkTree/30000_vertices_from_protobuf - ns/op |
2016765294 ns/op |
1984250990 ns/op |
1.02 |
BenchmarkTree/30000_vertices_from_protobuf - B/op |
3751734408 B/op |
3751752256 B/op |
1.00 |
BenchmarkTree/30000_vertices_from_protobuf - allocs/op |
870048 allocs/op |
870143 allocs/op |
1.00 |
BenchmarkVersionVector/clients_10 |
160103061 ns/op 745.0 1_changepack(bytes) 379.0 2_snapshot(bytes) 8.000 3_pushpull(ms) 6.000 4_attach(ms) 805.0 5_changepack_after_detach(bytes) 136.0 6_snapshot_after_detach(bytes) 8.000 7_pushpull_after_detach(ms) 20986836 B/op 83799 allocs/op |
160646014 ns/op 745.0 1_changepack(bytes) 379.0 2_snapshot(bytes) 8.000 3_pushpull(ms) 6.000 4_attach(ms) 805.0 5_changepack_after_detach(bytes) 136.0 6_snapshot_after_detach(bytes) 8.000 7_pushpull_after_detach(ms) 20287940 B/op 83784 allocs/op |
1.00 |
BenchmarkVersionVector/clients_10 - ns/op |
160103061 ns/op |
160646014 ns/op |
1.00 |
BenchmarkVersionVector/clients_10 - 1_changepack(bytes) |
745 1_changepack(bytes) |
745 1_changepack(bytes) |
1 |
BenchmarkVersionVector/clients_10 - 2_snapshot(bytes) |
379 2_snapshot(bytes) |
379 2_snapshot(bytes) |
1 |
BenchmarkVersionVector/clients_10 - 3_pushpull(ms) |
8 3_pushpull(ms) |
8 3_pushpull(ms) |
1 |
BenchmarkVersionVector/clients_10 - 4_attach(ms) |
6 4_attach(ms) |
6 4_attach(ms) |
1 |
BenchmarkVersionVector/clients_10 - 5_changepack_after_detach(bytes) |
805 5_changepack_after_detach(bytes) |
805 5_changepack_after_detach(bytes) |
1 |
BenchmarkVersionVector/clients_10 - 6_snapshot_after_detach(bytes) |
136 6_snapshot_after_detach(bytes) |
136 6_snapshot_after_detach(bytes) |
1 |
BenchmarkVersionVector/clients_10 - 7_pushpull_after_detach(ms) |
8 7_pushpull_after_detach(ms) |
8 7_pushpull_after_detach(ms) |
1 |
BenchmarkVersionVector/clients_10 - B/op |
20986836 B/op |
20287940 B/op |
1.03 |
BenchmarkVersionVector/clients_10 - allocs/op |
83799 allocs/op |
83784 allocs/op |
1.00 |
BenchmarkVersionVector/clients_100 |
1474358023 ns/op 6145 1_changepack(bytes) 3079 2_snapshot(bytes) 10.00 3_pushpull(ms) 11.00 4_attach(ms) 6210 5_changepack_after_detach(bytes) 137.0 6_snapshot_after_detach(bytes) 10.00 7_pushpull_after_detach(ms) 232823008 B/op 1540527 allocs/op |
1433072198 ns/op 6145 1_changepack(bytes) 3079 2_snapshot(bytes) 11.00 3_pushpull(ms) 11.00 4_attach(ms) 6210 5_changepack_after_detach(bytes) 137.0 6_snapshot_after_detach(bytes) 9.000 7_pushpull_after_detach(ms) 229513232 B/op 1539779 allocs/op |
1.03 |
BenchmarkVersionVector/clients_100 - ns/op |
1474358023 ns/op |
1433072198 ns/op |
1.03 |
BenchmarkVersionVector/clients_100 - 1_changepack(bytes) |
6145 1_changepack(bytes) |
6145 1_changepack(bytes) |
1 |
BenchmarkVersionVector/clients_100 - 2_snapshot(bytes) |
3079 2_snapshot(bytes) |
3079 2_snapshot(bytes) |
1 |
BenchmarkVersionVector/clients_100 - 3_pushpull(ms) |
10 3_pushpull(ms) |
11 3_pushpull(ms) |
0.91 |
BenchmarkVersionVector/clients_100 - 4_attach(ms) |
11 4_attach(ms) |
11 4_attach(ms) |
1 |
BenchmarkVersionVector/clients_100 - 5_changepack_after_detach(bytes) |
6210 5_changepack_after_detach(bytes) |
6210 5_changepack_after_detach(bytes) |
1 |
BenchmarkVersionVector/clients_100 - 6_snapshot_after_detach(bytes) |
137 6_snapshot_after_detach(bytes) |
137 6_snapshot_after_detach(bytes) |
1 |
BenchmarkVersionVector/clients_100 - 7_pushpull_after_detach(ms) |
10 7_pushpull_after_detach(ms) |
9 7_pushpull_after_detach(ms) |
1.11 |
BenchmarkVersionVector/clients_100 - B/op |
232823008 B/op |
229513232 B/op |
1.01 |
BenchmarkVersionVector/clients_100 - allocs/op |
1540527 allocs/op |
1539779 allocs/op |
1.00 |
BenchmarkVersionVector/clients_1000 |
60993317930 ns/op 60155 1_changepack(bytes) 30081 2_snapshot(bytes) 94.00 3_pushpull(ms) 218.0 4_attach(ms) 60217 5_changepack_after_detach(bytes) 139.0 6_snapshot_after_detach(bytes) 22.00 7_pushpull_after_detach(ms) 22062757192 B/op 111769090 allocs/op |
60712115599 ns/op 60155 1_changepack(bytes) 30081 2_snapshot(bytes) 93.00 3_pushpull(ms) 248.0 4_attach(ms) 60217 5_changepack_after_detach(bytes) 139.0 6_snapshot_after_detach(bytes) 23.00 7_pushpull_after_detach(ms) 22060089032 B/op 111763287 allocs/op |
1.00 |
BenchmarkVersionVector/clients_1000 - ns/op |
60993317930 ns/op |
60712115599 ns/op |
1.00 |
BenchmarkVersionVector/clients_1000 - 1_changepack(bytes) |
60155 1_changepack(bytes) |
60155 1_changepack(bytes) |
1 |
BenchmarkVersionVector/clients_1000 - 2_snapshot(bytes) |
30081 2_snapshot(bytes) |
30081 2_snapshot(bytes) |
1 |
BenchmarkVersionVector/clients_1000 - 3_pushpull(ms) |
94 3_pushpull(ms) |
93 3_pushpull(ms) |
1.01 |
BenchmarkVersionVector/clients_1000 - 4_attach(ms) |
218 4_attach(ms) |
248 4_attach(ms) |
0.88 |
BenchmarkVersionVector/clients_1000 - 5_changepack_after_detach(bytes) |
60217 5_changepack_after_detach(bytes) |
60217 5_changepack_after_detach(bytes) |
1 |
BenchmarkVersionVector/clients_1000 - 6_snapshot_after_detach(bytes) |
139 6_snapshot_after_detach(bytes) |
139 6_snapshot_after_detach(bytes) |
1 |
BenchmarkVersionVector/clients_1000 - 7_pushpull_after_detach(ms) |
22 7_pushpull_after_detach(ms) |
23 7_pushpull_after_detach(ms) |
0.96 |
BenchmarkVersionVector/clients_1000 - B/op |
22062757192 B/op |
22060089032 B/op |
1.00 |
BenchmarkVersionVector/clients_1000 - allocs/op |
111769090 allocs/op |
111763287 allocs/op |
1.00 |
This comment was automatically generated by workflow using github-action-benchmark.
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #1153 +/- ##
==========================================
+ Coverage 38.46% 38.61% +0.14%
==========================================
Files 169 170 +1
Lines 25433 25444 +11
==========================================
+ Hits 9783 9825 +42
+ Misses 14829 14798 -31
Partials 821 821 ☔ View full report in Codecov by Sentry. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for your contribution.
What this PR does / why we need it:
This PR optimizes the minimum version vector (MinVV) computation.
The comparison results of BenchmarkVersionVector test with 1000 clients are as follows:
Which issue(s) this PR fixes:
Fixes #1152
Special notes for your reviewer:
Does this PR introduce a user-facing change?:
Additional documentation:
Checklist:
Summary by CodeRabbit
VersionVector
andFindMinVersionVector
methods, covering various scenarios for improved test coverage.VersionVector
from a collection of actors and their timestamps.