Skip to content

Add dedicated VV encoder/decoder for MongoDB #1232

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open

Conversation

hackerwins
Copy link
Member

@hackerwins hackerwins commented Apr 16, 2025

What this PR does / why we need it:

Add dedicated VV encoder/decoder

Which issue(s) this PR fixes:

Fixes #

Special notes for your reviewer:

Does this PR introduce a user-facing change?:


Additional documentation:


Checklist:

  • Added relevant tests or not required
  • Addressed and resolved all CodeRabbit review comments
  • Didn't break anything

Summary by CodeRabbit

  • New Features

    • Added support for saving and loading version vectors in a compact binary format, improving efficiency for serialization and deserialization.
  • Refactor

    • Updated the handling of version vectors to remove dependency on protobuf, streamlining the encoding and decoding process.

@hackerwins hackerwins marked this pull request as ready for review April 16, 2025 08:06
Copy link

coderabbitai bot commented Apr 16, 2025

"""

Walkthrough

The changes introduce byte-level serialization and deserialization support for the VersionVector type in the pkg/document/time package. New methods are added to convert VersionVector instances to and from byte slices, utilizing helper functions for encoding and decoding 64-bit integers. In the server/backend/database/mongo/registry.go file, the encoding and decoding logic for VersionVector is updated to use the new byte-based methods, removing the previous dependency on protobuf. Imports related to protobuf are also removed, and error handling for unsupported BSON types is improved.

Changes

File(s) Change Summary
pkg/document/time/version_vector.go Added VersionVectorFromBytes function, Bytes method, and helper functions for byte-level serialization/deserialization of VersionVector. Imports updated.
server/backend/database/mongo/registry.go Updated encoding/decoding logic for VersionVector to use new byte-based methods; removed protobuf dependency and related imports; improved error handling.

Sequence Diagram(s)

sequenceDiagram
    participant Client
    participant MongoRegistry
    participant VersionVector

    Client->>MongoRegistry: Encode VersionVector
    MongoRegistry->>VersionVector: Call Bytes()
    VersionVector-->>MongoRegistry: Return []byte
    MongoRegistry-->>Client: Store byte data

    Client->>MongoRegistry: Decode VersionVector
    MongoRegistry->>VersionVector: Call VersionVectorFromBytes([]byte)
    VersionVector-->>MongoRegistry: Return VersionVector instance
    MongoRegistry-->>Client: Return VersionVector
Loading

"""


📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
Cache: Disabled due to data retention organization setting
Knowledge Base: Disabled due to data retention organization setting

📥 Commits

Reviewing files that changed from the base of the PR and between 0cd8176 and 390cd79.

📒 Files selected for processing (2)
  • pkg/document/time/version_vector.go (3 hunks)
  • server/backend/database/mongo/registry.go (2 hunks)
🚧 Files skipped from review as they are similar to previous changes (2)
  • server/backend/database/mongo/registry.go
  • pkg/document/time/version_vector.go
⏰ Context from checks skipped due to timeout of 90000ms (3)
  • GitHub Check: complex-test
  • GitHub Check: build
  • GitHub Check: bench
✨ Finishing Touches
  • 📝 Generate Docstrings

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

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)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

codecov bot commented Apr 16, 2025

Codecov Report

Attention: Patch coverage is 5.17241% with 55 lines in your changes missing coverage. Please review.

Project coverage is 37.69%. Comparing base (70f2f95) to head (626f6b4).

Files with missing lines Patch % Lines
pkg/document/time/version_vector.go 0.00% 54 Missing ⚠️
server/backend/database/mongo/registry.go 75.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1232      +/-   ##
==========================================
- Coverage   37.80%   37.69%   -0.12%     
==========================================
  Files         182      182              
  Lines       28810    28857      +47     
==========================================
- Hits        10893    10879      -14     
- Misses      17031    17093      +62     
+ Partials      886      885       -1     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@hackerwins hackerwins added the protocol changed 📝 Whether the protocol has changed label Apr 16, 2025
@hackerwins hackerwins changed the title Add dedicated VV encoder/decoder Add dedicated VV encoder/decoder for MongoDB Apr 16, 2025
@hackerwins
Copy link
Member Author

This PR can be merged after #1223.

hackerwins-yorkie

This comment was marked as outdated.

Copy link

@hackerwins-yorkie hackerwins-yorkie left a comment

Choose a reason for hiding this comment

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

Go Benchmark Analysis 📊

This is a comparison result between the previous(70f2f95) and the current commit(ae9747e).

Significant Changes (≥20% difference)

Benchmark suite Previous Current Change
BenchmarkSyncConcurrency/1-100-10/ (allocs/op) 157,899,480 allocs 111,042,649 allocs 🟢 -29.68%
BenchmarkSyncConcurrency/100-100-10/ (allocs/op) 159,885,490 allocs 112,962,477 allocs 🟢 -29.35%
BenchmarkSyncConcurrency/300_100-10/ (allocs/op) 164,982,135 allocs 117,772,659 allocs 🟢 -28.61%
BenchmarkVersionVector/clients_1000/ (7_pushpull_after_detach(ms)) 5.00 ms 6.00 ms 🔴 +20.00%

Key Observations 🔍

  • The benchmark suite BenchmarkSyncConcurrency showed a significant decrease in allocations ranging from approximately 29% to 30% across different scenarios.
  • BenchmarkVersionVector exhibited an increase of 20% in the time taken for 7_pushpull_after_detach for clients_1000.
  • Overall, there were no consistent trends of significant changes exceeding 20% across the various benchmark suites.

Clock Analysis

Lamport vs VersionVector

BenchmarkVersionVector Test

Lamport (v0.5.2)
Metric 10 clients 100 clients 1000 clients
Total Operation Time 84.96 ms 793.94 ms 34.79 s
Memory Allocations 35.11 MB 219.92 MB 4.91 GB
Number of Allocations (allocs/op) 69,271 1,246,728 81,485,288
ChangePack Size 138.0 B 137.0 B 141.0 B
Snapshot Size 379.0 B 3.08 KB 30.08 KB
Push-Pull Time 2.0 ms 1.5 ms 4.0 ms
Attach Time 4.5 ms 11.0 ms 31.0 ms
ChangePack After Detach 138.0 B 140.0 B 141.0 B
Snapshot After Detach 136.0 B 137.0 B 139.0 B
Push-Pull After Detach 2.5 ms 5.0 ms 9.5 ms
Version Vector (current)
Metric 10 clients 100 clients 1000 clients
Total Operation Time 128.95 ms 1.09 s 14.54 s
Memory Allocations 7.24 MB 71.12 MB 1.94 GB
Number of Allocations (allocs/op) 57,825 allocs 711,252 allocs 31,873,460 allocs
ChangePack Size 202.00 B 202.00 B 203.00 B
Snapshot Size 399.00 B 3.10 KB 30.10 KB
Push-Pull Time 5.00 ms 5.00 ms 5.00 ms
Attach Time 5.00 ms 7.00 ms 23.00 ms
ChangePack After Detach 262.00 B 263.00 B 263.00 B
Snapshot After Detach 156.00 B 156.00 B 156.00 B
Push-Pull After Detach 5.00 ms 5.00 ms 6.00 ms

BenchmarkSyncConcurrency Test

Metric Clients Lamport (v0.5.2) Version Vector (current)
Total Operation Time 1-100-10-10 7.48 s 9.57 s
100-100-10-10 9.62 s 10.80 s
300_100-10-10 14.77 s 13.30 s
Memory Allocations 1-100-10-10 1.15 GB 5.97 GB
100-100-10-10 1.45 GB 6.11 GB
300_100-10-10 2.19 GB 6.40 GB
Number of Allocations (allocs/op) 1-100-10-10 17,107,766 111,042,649
100-100-10-10 20,084,480 112,962,477
300_100-10-10 30,359,215 117,772,659

Summary

  • The Version Vector clock system showed better performance than Lamport in terms of total operation time, memory allocations, and number of allocations across different scales of clients.

  • Version Vector also demonstrated consistent performance with minimal changes in operation time, memory usage, and allocations as the number of clients increased.

  • The Version Vector clock system outperformed the Lamport clock system in terms of total operation time, memory allocations, and number of allocations. It showcased more stable performance across different client scales, indicating its efficiency in handling concurrent operations.

Detailed Test Results

BenchmarkDeletionConcurrency
Benchmark suite Previous Current Change
concurrent_text_delete_range_100/ (ns/op) 867.70 ms 884.18 ms 🔴 +1.90%
concurrent_text_delete_range_100/ (B/op) 59.54 MB 56.28 MB 🟢 -5.48%
concurrent_text_delete_range_100/ (allocs/op) 752,364 allocs 673,211 allocs 🟢 -10.52%
concurrent_text_delete_range_1000/ (ns/op) 7.11 s 7.23 s 🔴 +1.62%
concurrent_text_delete_range_1000/ (B/op) 381.09 MB 349.72 MB 🟢 -8.23%
concurrent_text_delete_range_1000/ (allocs/op) 7,283,410 allocs 6,382,008 allocs 🟢 -12.38%
concurrent_tree_delete_range_100/ (ns/op) 900.26 ms 887.57 ms 🟢 -1.41%
concurrent_tree_delete_range_100/ (B/op) 69.16 MB 66.73 MB 🟢 -3.52%
concurrent_tree_delete_range_100/ (allocs/op) 795,980 allocs 716,977 allocs 🟢 -9.93%
concurrent_tree_delete_range_1000/ (ns/op) 7.88 s 7.89 s 🔴 +0.09%
concurrent_tree_delete_range_1000/ (B/op) 909.75 MB 887.45 MB 🟢 -2.45%
concurrent_tree_delete_range_1000/ (allocs/op) 7,654,749 allocs 6,755,442 allocs 🟢 -11.75%
concurrent_text_edit_delete_all_100/ (ns/op) 750.06 ms 769.25 ms 🔴 +2.56%
concurrent_text_edit_delete_all_100/ (B/op) 51.93 MB 51.64 MB 🟢 -0.55%
concurrent_text_edit_delete_all_100/ (allocs/op) 634,894 allocs 568,989 allocs 🟢 -10.38%
concurrent_text_edit_delete_all_1000/ (ns/op) 5.99 s 6.01 s 🔴 +0.42%
concurrent_text_edit_delete_all_1000/ (B/op) 325.06 MB 299.98 MB 🟢 -7.71%
concurrent_text_edit_delete_all_1000/ (allocs/op) 5,940,553 allocs 5,191,373 allocs 🟢 -12.61%
concurrent_tree_edit_delete_all_100/ (ns/op) 780.84 ms 788.86 ms 🔴 +1.03%
concurrent_tree_edit_delete_all_100/ (B/op) 87.18 MB 80.24 MB 🟢 -7.96%
concurrent_tree_edit_delete_all_100/ (allocs/op) 873,457 allocs 738,400 allocs 🟢 -15.46%
concurrent_tree_edit_delete_all_1000/ (ns/op) 6.58 s 6.64 s 🔴 +0.83%
concurrent_tree_edit_delete_all_1000/ (B/op) 728.61 MB 710.49 MB 🟢 -2.49%
concurrent_tree_edit_delete_all_1000/ (allocs/op) 6,408,221 allocs 5,660,051 allocs 🟢 -11.68%
BenchmarkDocument
Benchmark suite Previous Current Change
constructor_test/ (ns/op) 1662.00 ns 1638.00 ns 🟢 -1.44%
constructor_test/ (B/op) 1.56 KB 1.56 KB ⚪ 0%
constructor_test/ (allocs/op) 27 allocs 27 allocs ⚪ 0%
status_test/ (ns/op) 1234.00 ns 1231.00 ns 🟢 -0.24%
status_test/ (B/op) 1.53 KB 1.53 KB ⚪ 0%
status_test/ (allocs/op) 25 allocs 25 allocs ⚪ 0%
equals_test/ (ns/op) 8725.00 ns 8720.00 ns 🟢 -0.06%
equals_test/ (B/op) 8.22 KB 8.22 KB ⚪ 0%
equals_test/ (allocs/op) 138 allocs 138 allocs ⚪ 0%
nested_update_test/ (ns/op) 19103.00 ns 18141.00 ns 🟢 -5.04%
nested_update_test/ (B/op) 12.81 KB 12.81 KB ⚪ 0%
nested_update_test/ (allocs/op) 266 allocs 266 allocs ⚪ 0%
delete_test/ (ns/op) 24521.00 ns 24517.00 ns 🟢 -0.02%
delete_test/ (B/op) 16.37 KB 16.37 KB ⚪ 0%
delete_test/ (allocs/op) 347 allocs 347 allocs ⚪ 0%
object_test/ (ns/op) 9412.00 ns 9359.00 ns 🟢 -0.56%
object_test/ (B/op) 7.38 KB 7.38 KB ⚪ 0%
object_test/ (allocs/op) 122 allocs 122 allocs ⚪ 0%
array_test/ (ns/op) 30854.00 ns 30770.00 ns 🟢 -0.27%
array_test/ (B/op) 12.66 KB 12.66 KB ⚪ 0%
array_test/ (allocs/op) 281 allocs 281 allocs ⚪ 0%
text_test/ (ns/op) 34623.00 ns 34526.00 ns 🟢 -0.28%
text_test/ (B/op) 15.48 KB 15.48 KB ⚪ 0%
text_test/ (allocs/op) 502 allocs 502 allocs ⚪ 0%
text_composition_test/ (ns/op) 34670.00 ns 33614.00 ns 🟢 -3.05%
text_composition_test/ (B/op) 16.95 KB 16.95 KB ⚪ 0%
text_composition_test/ (allocs/op) 488 allocs 488 allocs ⚪ 0%
rich_text_test/ (ns/op) 93486.00 ns 91539.00 ns 🟢 -2.08%
rich_text_test/ (B/op) 39.00 KB 39.00 KB ⚪ 0%
rich_text_test/ (allocs/op) 1,187 allocs 1,187 allocs ⚪ 0%
counter_test/ (ns/op) 19036.00 ns 18610.00 ns 🟢 -2.24%
counter_test/ (B/op) 12.41 KB 12.41 KB ⚪ 0%
counter_test/ (allocs/op) 255 allocs 255 allocs ⚪ 0%
text_edit_gc_100/ (ns/op) 1.46 ms 1.51 ms 🔴 +3.23%
text_edit_gc_100/ (B/op) 810.09 KB 810.02 KB ⚪ 0%
text_edit_gc_100/ (allocs/op) 16,785 allocs 16,785 allocs ⚪ 0%
text_edit_gc_1000/ (ns/op) 59.06 ms 56.69 ms 🟢 -4.01%
text_edit_gc_1000/ (B/op) 46.29 MB 46.29 MB ⚪ 0%
text_edit_gc_1000/ (allocs/op) 180,594 allocs 180,599 allocs ⚪ 0%
text_split_gc_100/ (ns/op) 2.34 ms 2.23 ms 🟢 -4.39%
text_split_gc_100/ (B/op) 1.53 MB 1.53 MB ⚪ 0%
text_split_gc_100/ (allocs/op) 15,552 allocs 15,551 allocs ⚪ 0%
text_split_gc_1000/ (ns/op) 139.81 ms 139.76 ms 🟢 -0.04%
text_split_gc_1000/ (B/op) 137.29 MB 137.29 MB ⚪ 0%
text_split_gc_1000/ (allocs/op) 180,997 allocs 181,005 allocs ⚪ 0%
text_100/ (ns/op) 241119.00 ns 245201.00 ns 🔴 +1.69%
text_100/ (B/op) 113.21 KB 113.21 KB ⚪ 0%
text_100/ (allocs/op) 4,984 allocs 4,984 allocs ⚪ 0%
text_1000/ (ns/op) 2.62 ms 2.68 ms 🔴 +2.24%
text_1000/ (B/op) 1.08 MB 1.08 MB ⚪ 0%
text_1000/ (allocs/op) 49,087 allocs 49,087 allocs ⚪ 0%
array_1000/ (ns/op) 1.37 ms 1.38 ms 🔴 +0.91%
array_1000/ (B/op) 1.13 MB 1.13 MB ⚪ 0%
array_1000/ (allocs/op) 12,882 allocs 12,882 allocs ⚪ 0%
array_10000/ (ns/op) 15.00 ms 14.59 ms 🟢 -2.72%
array_10000/ (B/op) 10.29 MB 10.29 MB ⚪ 0%
array_10000/ (allocs/op) 130,734 allocs 130,734 allocs ⚪ 0%
array_gc_100/ (ns/op) 149997.00 ns 144654.00 ns 🟢 -3.56%
array_gc_100/ (B/op) 104.26 KB 104.29 KB 🔴 +0.03%
array_gc_100/ (allocs/op) 1,369 allocs 1,370 allocs 🔴 +0.07%
array_gc_1000/ (ns/op) 1.55 ms 1.54 ms 🟢 -0.55%
array_gc_1000/ (B/op) 1.18 MB 1.18 MB 🔴 +0.02%
array_gc_1000/ (allocs/op) 13,929 allocs 13,930 allocs ⚪ 0%
counter_1000/ (ns/op) 212519.00 ns 207245.00 ns 🟢 -2.48%
counter_1000/ (B/op) 194.34 KB 194.34 KB ⚪ 0%
counter_1000/ (allocs/op) 5,772 allocs 5,772 allocs ⚪ 0%
counter_10000/ (ns/op) 2.30 ms 2.25 ms 🟢 -2.37%
counter_10000/ (B/op) 2.23 MB 2.23 MB ⚪ 0%
counter_10000/ (allocs/op) 59,779 allocs 59,779 allocs ⚪ 0%
object_1000/ (ns/op) 1.64 ms 1.59 ms 🟢 -3.12%
object_1000/ (B/op) 1.48 MB 1.48 MB ⚪ 0%
object_1000/ (allocs/op) 10,927 allocs 10,927 allocs ⚪ 0%
object_10000/ (ns/op) 17.34 ms 17.02 ms 🟢 -1.86%
object_10000/ (B/op) 12.75 MB 12.75 MB ⚪ 0%
object_10000/ (allocs/op) 111,228 allocs 111,231 allocs ⚪ 0%
tree_100/ (ns/op) 797535.00 ns 771570.00 ns 🟢 -3.26%
tree_100/ (B/op) 524.13 KB 524.12 KB ⚪ 0%
tree_100/ (allocs/op) 4,721 allocs 4,721 allocs ⚪ 0%
tree_1000/ (ns/op) 53.95 ms 56.24 ms 🔴 +4.24%
tree_1000/ (B/op) 43.74 MB 43.74 MB ⚪ 0%
tree_1000/ (allocs/op) 46,130 allocs 46,130 allocs ⚪ 0%
tree_10000/ (ns/op) 6.96 s 7.16 s 🔴 +2.85%
tree_10000/ (B/op) 4.30 GB 4.30 GB ⚪ 0%
tree_10000/ (allocs/op) 460,223 allocs 460,183 allocs ⚪ 0%
tree_edit_gc_100/ (ns/op) 2.74 ms 2.80 ms 🔴 +2.20%
tree_edit_gc_100/ (B/op) 2.40 MB 2.40 MB ⚪ 0%
tree_edit_gc_100/ (allocs/op) 11,568 allocs 11,568 allocs ⚪ 0%
tree_edit_gc_1000/ (ns/op) 215.50 ms 226.87 ms 🔴 +5.28%
tree_edit_gc_1000/ (B/op) 213.99 MB 213.99 MB ⚪ 0%
tree_edit_gc_1000/ (allocs/op) 115,154 allocs 115,152 allocs ⚪ 0%
tree_split_gc_100/ (ns/op) 2.09 ms 2.14 ms 🔴 +2.35%
tree_split_gc_100/ (B/op) 1.62 MB 1.62 MB ⚪ 0%
tree_split_gc_100/ (allocs/op) 9,605 allocs 9,605 allocs ⚪ 0%
tree_split_gc_1000/ (ns/op) 152.16 ms 163.42 ms 🔴 +7.40%
tree_split_gc_1000/ (B/op) 149.90 MB 149.90 MB ⚪ 0%
tree_split_gc_1000/ (allocs/op) 107,760 allocs 107,760 allocs ⚪ 0%
BenchmarkDocumentDeletion
Benchmark suite Previous Current Change
single_text_delete_all_10000/ (ns/op) 18.85 ms 19.90 ms 🔴 +5.56%
single_text_delete_all_10000/ (B/op) 10.82 MB 10.81 MB 🟢 -0.01%
single_text_delete_all_10000/ (allocs/op) 66,132 allocs 66,127 allocs ⚪ 0%
single_text_delete_all_100000/ (ns/op) 337.22 ms 357.74 ms 🔴 +6.08%
single_text_delete_all_100000/ (B/op) 107.92 MB 107.89 MB 🟢 -0.02%
single_text_delete_all_100000/ (allocs/op) 666,122 allocs 666,004 allocs 🟢 -0.02%
single_tree_delete_all_1000/ (ns/op) 54.59 ms 54.20 ms 🟢 -0.73%
single_tree_delete_all_1000/ (B/op) 44.69 MB 44.69 MB ⚪ 0%
single_tree_delete_all_1000/ (allocs/op) 57,201 allocs 57,202 allocs ⚪ 0%
single_text_delete_range_100/ (ns/op) 454370.00 ns 453340.00 ns 🟢 -0.23%
single_text_delete_range_100/ (B/op) 244.88 KB 244.88 KB ⚪ 0%
single_text_delete_range_100/ (allocs/op) 6,974 allocs 6,974 allocs ⚪ 0%
single_text_delete_range_1000/ (ns/op) 8.81 ms 8.78 ms 🟢 -0.41%
single_text_delete_range_1000/ (B/op) 6.39 MB 6.39 MB ⚪ 0%
single_text_delete_range_1000/ (allocs/op) 72,369 allocs 72,369 allocs ⚪ 0%
single_tree_delete_range_100/ (ns/op) 985274.00 ns 990921.00 ns 🔴 +0.57%
single_tree_delete_range_100/ (B/op) 711.66 KB 711.61 KB ⚪ 0%
single_tree_delete_range_100/ (allocs/op) 6,292 allocs 6,292 allocs ⚪ 0%
single_tree_delete_range_1000/ (ns/op) 64.22 ms 62.50 ms 🟢 -2.68%
single_tree_delete_range_1000/ (B/op) 54.54 MB 54.54 MB ⚪ 0%
single_tree_delete_range_1000/ (allocs/op) 62,430 allocs 62,434 allocs ⚪ 0%
BenchmarkRPC
Benchmark suite Previous Current Change
client_to_server/ (ns/op) 298.71 ms 298.84 ms 🔴 +0.04%
client_to_server/ (B/op) 12.16 MB 11.90 MB 🟢 -2.11%
client_to_server/ (allocs/op) 178,820 allocs 168,057 allocs 🟢 -6.02%
client_to_client_via_server/ (ns/op) 218.64 ms 218.01 ms 🟢 -0.29%
client_to_client_via_server/ (B/op) 21.14 MB 20.93 MB 🟢 -1.01%
client_to_client_via_server/ (allocs/op) 296,733 allocs 273,437 allocs 🟢 -7.85%
attach_large_document/ (ns/op) 1.34 s 1.37 s 🔴 +2.62%
attach_large_document/ (B/op) 1.87 GB 1.88 GB 🔴 +0.12%
attach_large_document/ (allocs/op) 10,607 allocs 10,949 allocs 🔴 +3.22%
adminCli_to_server/ (ns/op) 574.81 ms 576.77 ms 🔴 +0.34%
adminCli_to_server/ (B/op) 21.58 MB 21.58 MB 🟢 -0.03%
adminCli_to_server/ (allocs/op) 317,801 allocs 317,720 allocs 🟢 -0.03%
BenchmarkLocker
Benchmark suite Previous Current Change
(ns/op) 84.83 ns 96.17 ns 🔴 +13.37%
(B/op) 32.00 B 32.00 B ⚪ 0%
(allocs/op) 1 allocs 1 allocs ⚪ 0%
BenchmarkLockerParallel
Benchmark suite Previous Current Change
(ns/op) 46.08 ns 46.54 ns 🔴 +1.00%
(B/op) 0.00 B 0.00 B ⚪ 0%
(allocs/op) 0 allocs 0 allocs ⚪ 0%
BenchmarkLockerMoreKeys
Benchmark suite Previous Current Change
(ns/op) 173.20 ns 187.90 ns 🔴 +8.49%
(B/op) 31.00 B 31.00 B ⚪ 0%
(allocs/op) 0 allocs 0 allocs ⚪ 0%
BenchmarkRWLocker
Benchmark suite Previous Current Change
RWLock_rate_2/ (ns/op) 49.63 ns 50.29 ns 🔴 +1.33%
RWLock_rate_2/ (B/op) 0.00 B 0.00 B ⚪ 0%
RWLock_rate_2/ (allocs/op) 0 allocs 0 allocs ⚪ 0%
RWLock_rate_10/ (ns/op) 44.42 ns 44.51 ns 🔴 +0.20%
RWLock_rate_10/ (B/op) 0.00 B 0.00 B ⚪ 0%
RWLock_rate_10/ (allocs/op) 0 allocs 0 allocs ⚪ 0%
RWLock_rate_100/ (ns/op) 62.26 ns 62.76 ns 🔴 +0.80%
RWLock_rate_100/ (B/op) 2.00 B 2.00 B ⚪ 0%
RWLock_rate_100/ (allocs/op) 0 allocs 0 allocs ⚪ 0%
RWLock_rate_1000/ (ns/op) 92.45 ns 90.65 ns 🟢 -1.95%
RWLock_rate_1000/ (B/op) 8.00 B 8.00 B ⚪ 0%
RWLock_rate_1000/ (allocs/op) 0 allocs 0 allocs ⚪ 0%
BenchmarkPresenceConcurrency
Benchmark suite Previous Current Change
0-100-10/ (ns/op) 1.05 s 1.07 s 🔴 +1.72%
0-100-10/ (B/op) 307.19 MB 301.48 MB 🟢 -1.86%
0-100-10/ (allocs/op) 4,767,009 allocs 4,771,637 allocs 🔴 +0.10%
100-100-10/ (ns/op) 1.10 s 1.10 s 🔴 +0.85%
100-100-10/ (B/op) 325.73 MB 323.30 MB 🟢 -0.75%
100-100-10/ (allocs/op) 5,321,474 allocs 5,319,167 allocs 🟢 -0.04%
300-100-10/ (ns/op) 1.16 s 1.18 s 🔴 +1.67%
300-100-10/ (B/op) 380.23 MB 373.65 MB 🟢 -1.73%
300-100-10/ (allocs/op) 6,431,052 allocs 6,425,897 allocs 🟢 -0.08%
BenchmarkChange
Benchmark suite Previous Current Change
Push_10_Changes/ (ns/op) 4.80 ms 4.78 ms 🟢 -0.44%
Push_10_Changes/ (B/op) 146.85 KB 141.83 KB 🟢 -3.42%
Push_10_Changes/ (allocs/op) 1,626 allocs 1,518 allocs 🟢 -6.64%
Push_100_Changes/ (ns/op) 18.64 ms 18.80 ms 🔴 +0.88%
Push_100_Changes/ (B/op) 774.43 KB 734.85 KB 🟢 -5.11%
Push_100_Changes/ (allocs/op) 8,868 allocs 7,960 allocs 🟢 -10.24%
Push_1000_Changes/ (ns/op) 151.76 ms 150.62 ms 🟢 -0.75%
Push_1000_Changes/ (B/op) 7.23 MB 7.41 MB 🔴 +2.37%
Push_1000_Changes/ (allocs/op) 83,257 allocs 75,190 allocs 🟢 -9.69%
Pull_10_Changes/ (ns/op) 3.59 ms 3.61 ms 🔴 +0.68%
Pull_10_Changes/ (B/op) 118.47 KB 114.23 KB 🟢 -3.58%
Pull_10_Changes/ (allocs/op) 1,335 allocs 1,229 allocs 🟢 -7.94%
Pull_100_Changes/ (ns/op) 5.72 ms 5.54 ms 🟢 -3.04%
Pull_100_Changes/ (B/op) 346.82 KB 309.37 KB 🟢 -10.80%
Pull_100_Changes/ (allocs/op) 4,967 allocs 4,146 allocs 🟢 -16.53%
Pull_1000_Changes/ (ns/op) 13.00 ms 11.23 ms 🟢 -13.61%
Pull_1000_Changes/ (B/op) 2.16 MB 1.78 MB 🟢 -17.77%
Pull_1000_Changes/ (allocs/op) 43,587 allocs 34,903 allocs 🟢 -19.92%
BenchmarkSnapshot
Benchmark suite Previous Current Change
Push_3KB_snapshot/ (ns/op) 22.35 ms 22.16 ms 🟢 -0.83%
Push_3KB_snapshot/ (B/op) 1.07 MB 1.03 MB 🟢 -3.96%
Push_3KB_snapshot/ (allocs/op) 11,404 allocs 10,485 allocs 🟢 -8.06%
Push_30KB_snapshot/ (ns/op) 160.74 ms 158.43 ms 🟢 -1.43%
Push_30KB_snapshot/ (B/op) 10.55 MB 9.95 MB 🟢 -5.67%
Push_30KB_snapshot/ (allocs/op) 130,051 allocs 111,631 allocs 🟢 -14.16%
Pull_3KB_snapshot/ (ns/op) 8.08 ms 7.91 ms 🟢 -2.11%
Pull_3KB_snapshot/ (B/op) 1.06 MB 982.89 KB 🟢 -7.05%
Pull_3KB_snapshot/ (allocs/op) 17,826 allocs 16,191 allocs 🟢 -9.17%
Pull_30KB_snapshot/ (ns/op) 22.21 ms 20.28 ms 🟢 -8.70%
Pull_30KB_snapshot/ (B/op) 8.85 MB 8.08 MB 🟢 -8.63%
Pull_30KB_snapshot/ (allocs/op) 171,832 allocs 154,457 allocs 🟢 -10.11%
BenchmarkSplayTree
Benchmark suite Previous Current Change
stress_test_100000/ (ns/op) 0.18 ns 0.18 ns 🟢 -0.88%
stress_test_100000/ (B/op) 0.00 B 0.00 B ⚪ 0%
stress_test_100000/ (allocs/op) 0 allocs 0 allocs ⚪ 0%
stress_test_200000/ (ns/op) 0.36 ns 0.36 ns 🟢 -1.89%
stress_test_200000/ (B/op) 0.00 B 0.00 B ⚪ 0%
stress_test_200000/ (allocs/op) 0 allocs 0 allocs ⚪ 0%
stress_test_300000/ (ns/op) 0.55 ns 0.54 ns 🟢 -2.99%
stress_test_300000/ (B/op) 0.00 B 0.00 B ⚪ 0%
stress_test_300000/ (allocs/op) 0 allocs 0 allocs ⚪ 0%
random_access_100000/ (ns/op) 0.01 ns 0.01 ns 🟢 -2.62%
random_access_100000/ (B/op) 0.00 B 0.00 B ⚪ 0%
random_access_100000/ (allocs/op) 0 allocs 0 allocs ⚪ 0%
random_access_200000/ (ns/op) 0.04 ns 0.03 ns 🟢 -8.91%
random_access_200000/ (B/op) 0.00 B 0.00 B ⚪ 0%
random_access_200000/ (allocs/op) 0 allocs 0 allocs ⚪ 0%
random_access_300000/ (ns/op) 0.06 ns 0.04 ns 🟢 -29.05%
random_access_300000/ (B/op) 0.00 B 0.00 B ⚪ 0%
random_access_300000/ (allocs/op) 0 allocs 0 allocs ⚪ 0%
editing_trace_bench/ (ns/op) 0.00 ns 0.00 ns 🔴 +0.38%
editing_trace_bench/ (B/op) 0.00 B 0.00 B ⚪ 0%
editing_trace_bench/ (allocs/op) 0 allocs 0 allocs ⚪ 0%
BenchmarkSync
Benchmark suite Previous Current Change
memory_sync_10_test/ (ns/op) 7212.00 ns 7382.00 ns 🔴 +2.36%
memory_sync_10_test/ (B/op) 1.34 KB 1.34 KB ⚪ 0%
memory_sync_10_test/ (allocs/op) 35 allocs 35 allocs ⚪ 0%
memory_sync_100_test/ (ns/op) 57192.00 ns 57565.00 ns 🔴 +0.65%
memory_sync_100_test/ (B/op) 9.50 KB 9.51 KB 🔴 +0.16%
memory_sync_100_test/ (allocs/op) 268 allocs 268 allocs ⚪ 0%
memory_sync_1000_test/ (ns/op) 605985.00 ns 614230.00 ns 🔴 +1.36%
memory_sync_1000_test/ (B/op) 76.62 KB 76.70 KB 🔴 +0.10%
memory_sync_1000_test/ (allocs/op) 2,133 allocs 2,136 allocs 🔴 +0.14%
memory_sync_10000_test/ (ns/op) 7.55 ms 7.83 ms 🔴 +3.78%
memory_sync_10000_test/ (B/op) 776.46 KB 763.33 KB 🟢 -1.69%
memory_sync_10000_test/ (allocs/op) 20,690 allocs 20,512 allocs 🟢 -0.86%
BenchmarkSyncConcurrency
Benchmark suite Previous Current Change
1-100-10/ (ns/op) 11.63 s 9.57 s 🟢 -17.75%
1-100-10/ (B/op) 7.56 GB 5.97 GB 🟢 -21.05%
1-100-10/ (allocs/op) 157,899,480 allocs 111,042,649 allocs 🟢 -29.68%
100-100-10/ (ns/op) 12.91 s 10.80 s 🟢 -16.34%
100-100-10/ (B/op) 7.68 GB 6.11 GB 🟢 -20.44%
100-100-10/ (allocs/op) 159,885,490 allocs 112,962,477 allocs 🟢 -29.35%
300_100-10/ (ns/op) 15.33 s 13.30 s 🟢 -13.29%
300_100-10/ (B/op) 8.00 GB 6.40 GB 🟢 -19.90%
300_100-10/ (allocs/op) 164,982,135 allocs 117,772,659 allocs 🟢 -28.61%
BenchmarkTextEditing
Benchmark suite Previous Current Change
(ns/op) 6.02 s 5.86 s 🟢 -2.79%
(B/op) 3.89 GB 3.89 GB ⚪ 0%
(allocs/op) 20,282,835 allocs 20,282,734 allocs ⚪ 0%
BenchmarkTree
Benchmark suite Previous Current Change
10000_vertices_to_protobuf/ (ns/op) 5.02 ms 5.13 ms 🔴 +2.13%
10000_vertices_to_protobuf/ (B/op) 6.68 MB 6.68 MB ⚪ 0%
10000_vertices_to_protobuf/ (allocs/op) 90,026 allocs 90,026 allocs ⚪ 0%
10000_vertices_from_protobuf/ (ns/op) 232.29 ms 230.95 ms 🟢 -0.58%
10000_vertices_from_protobuf/ (B/op) 442.15 MB 442.15 MB ⚪ 0%
10000_vertices_from_protobuf/ (allocs/op) 280,047 allocs 280,054 allocs ⚪ 0%
20000_vertices_to_protobuf/ (ns/op) 10.29 ms 10.69 ms 🔴 +3.91%
20000_vertices_to_protobuf/ (B/op) 13.53 MB 13.53 MB ⚪ 0%
20000_vertices_to_protobuf/ (allocs/op) 180,030 allocs 180,029 allocs ⚪ 0%
20000_vertices_from_protobuf/ (ns/op) 902.11 ms 881.68 ms 🟢 -2.26%
20000_vertices_from_protobuf/ (B/op) 1.70 GB 1.70 GB ⚪ 0%
20000_vertices_from_protobuf/ (allocs/op) 560,124 allocs 560,076 allocs ⚪ 0%
30000_vertices_to_protobuf/ (ns/op) 15.98 ms 16.06 ms 🔴 +0.55%
30000_vertices_to_protobuf/ (B/op) 19.94 MB 19.94 MB ⚪ 0%
30000_vertices_to_protobuf/ (allocs/op) 270,030 allocs 270,030 allocs ⚪ 0%
30000_vertices_from_protobuf/ (ns/op) 2.02 s 2.01 s 🟢 -0.44%
30000_vertices_from_protobuf/ (B/op) 3.75 GB 3.75 GB ⚪ 0%
30000_vertices_from_protobuf/ (allocs/op) 840,125 allocs 840,122 allocs ⚪ 0%
BenchmarkVersionVector
Benchmark suite Previous Current Change
clients_10/ (ns/op) 130.50 ms 128.95 ms 🟢 -1.19%
clients_10/ (1_changepack(bytes)) 202.00 B 202.00 B ⚪ 0%
clients_10/ (2_snapshot(bytes)) 399.00 B 399.00 B ⚪ 0%
clients_10/ (3_pushpull(ms)) 5.00 ms 5.00 ms ⚪ 0%
clients_10/ (4_attach(ms)) 5.00 ms 5.00 ms ⚪ 0%
clients_10/ (5_changepack_after_detach(bytes)) 262.00 B 262.00 B ⚪ 0%
clients_10/ (6_snapshot_after_detach(bytes)) 156.00 B 156.00 B ⚪ 0%
clients_10/ (7_pushpull_after_detach(ms)) 5.00 ms 5.00 ms ⚪ 0%
clients_10/ (B/op) 7.25 MB 7.24 MB 🟢 -0.07%
clients_10/ (allocs/op) 57,990 allocs 57,825 allocs 🟢 -0.28%
clients_100/ (ns/op) 1.08 s 1.09 s 🔴 +1.58%
clients_100/ (1_changepack(bytes)) 202.00 B 202.00 B ⚪ 0%
clients_100/ (2_snapshot(bytes)) 3.10 KB 3.10 KB ⚪ 0%
clients_100/ (3_pushpull(ms)) 5.00 ms 5.00 ms ⚪ 0%
clients_100/ (4_attach(ms)) 7.00 ms 7.00 ms ⚪ 0%
clients_100/ (5_changepack_after_detach(bytes)) 263.00 B 263.00 B ⚪ 0%
clients_100/ (6_snapshot_after_detach(bytes)) 156.00 B 156.00 B ⚪ 0%
clients_100/ (7_pushpull_after_detach(ms)) 5.00 ms 5.00 ms ⚪ 0%
clients_100/ (B/op) 69.59 MB 71.12 MB 🔴 +2.21%
clients_100/ (allocs/op) 711,438 allocs 711,252 allocs 🟢 -0.03%
clients_1000/ (ns/op) 14.67 s 14.54 s 🟢 -0.85%
clients_1000/ (1_changepack(bytes)) 203.00 B 203.00 B ⚪ 0%
clients_1000/ (2_snapshot(bytes)) 30.10 KB 30.10 KB ⚪ 0%
clients_1000/ (3_pushpull(ms)) 5.00 ms 5.00 ms ⚪ 0%
clients_1000/ (4_attach(ms)) 21.00 ms 23.00 ms 🔴 +9.52%
clients_1000/ (5_changepack_after_detach(bytes)) 263.00 B 263.00 B ⚪ 0%
clients_1000/ (6_snapshot_after_detach(bytes)) 156.00 B 156.00 B ⚪ 0%
clients_1000/ (7_pushpull_after_detach(ms)) 5.00 ms 6.00 ms 🔴 +20.00%
clients_1000/ (B/op) 1.96 GB 1.94 GB 🟢 -1.35%
clients_1000/ (allocs/op) 32,363,952 allocs 31,873,460 allocs 🟢 -1.52%
BenchmarkWebhook
Benchmark suite Previous Current Change
Send_10_Webhooks_to_10_Endpoints/ (ns/op) 12.53 ms 12.50 ms 🟢 -0.27%
Send_10_Webhooks_to_10_Endpoints/ (B/op) 808.49 KB 808.28 KB 🟢 -0.03%
Send_10_Webhooks_to_10_Endpoints/ (allocs/op) 10,117 allocs 10,116 allocs ⚪ 0%
Send_100_Webhooks_to_10_Endpoints/ (ns/op) 125.05 ms 123.41 ms 🟢 -1.31%
Send_100_Webhooks_to_10_Endpoints/ (B/op) 8.09 MB 8.08 MB 🟢 -0.06%
Send_100_Webhooks_to_10_Endpoints/ (allocs/op) 101,170 allocs 101,164 allocs ⚪ 0%
Send_10_Webhooks_to_100_Endpoints/ (ns/op) 130.19 ms 126.50 ms 🟢 -2.84%
Send_10_Webhooks_to_100_Endpoints/ (B/op) 8.28 MB 8.28 MB 🔴 +0.03%
Send_10_Webhooks_to_100_Endpoints/ (allocs/op) 102,531 allocs 102,538 allocs ⚪ 0%
Send_100_Webhooks_to_100_Endpoints/ (ns/op) 1.27 s 1.26 s 🟢 -1.34%
Send_100_Webhooks_to_100_Endpoints/ (B/op) 82.38 MB 82.37 MB 🟢 -0.02%
Send_100_Webhooks_to_100_Endpoints/ (allocs/op) 1,022,407 allocs 1,022,430 allocs ⚪ 0%
Send_10_Webhooks_to_1000_Endpoints/ (ns/op) 2.83 s 2.80 s 🟢 -1.11%
Send_10_Webhooks_to_1000_Endpoints/ (B/op) 209.53 MB 209.62 MB 🔴 +0.04%
Send_10_Webhooks_to_1000_Endpoints/ (allocs/op) 1,716,446 allocs 1,716,708 allocs 🔴 +0.02%
BenchmarkWebhookWithLimit
Benchmark suite Previous Current Change
Send_10_Webhooks_to_10_Endpoints_with_limit/ (ns/op) 3.78 ms 3.83 ms 🔴 +1.43%
Send_10_Webhooks_to_10_Endpoints_with_limit/ (B/op) 306.33 KB 306.61 KB 🔴 +0.09%
Send_10_Webhooks_to_10_Endpoints_with_limit/ (allocs/op) 2,913 allocs 2,913 allocs ⚪ 0%
Send_100_Webhooks_to_10_Endpoints_with_limit/ (ns/op) 4.14 ms 4.07 ms 🟢 -1.56%
Send_100_Webhooks_to_10_Endpoints_with_limit/ (B/op) 428.88 KB 428.90 KB ⚪ 0%
Send_100_Webhooks_to_10_Endpoints_with_limit/ (allocs/op) 4,714 allocs 4,714 allocs ⚪ 0%
Send_10_Webhooks_to_100_Endpoints_with_limit/ (ns/op) 38.39 ms 37.97 ms 🟢 -1.10%
Send_10_Webhooks_to_100_Endpoints_with_limit/ (B/op) 3.08 MB 3.08 MB ⚪ 0%
Send_10_Webhooks_to_100_Endpoints_with_limit/ (allocs/op) 29,176 allocs 29,173 allocs 🟢 -0.01%
Send_100_Webhooks_to_100_Endpoints_with_limit/ (ns/op) 41.52 ms 41.33 ms 🟢 -0.46%
Send_100_Webhooks_to_100_Endpoints_with_limit/ (B/op) 4.37 MB 4.37 MB 🔴 +0.02%
Send_100_Webhooks_to_100_Endpoints_with_limit/ (allocs/op) 47,190 allocs 47,190 allocs ⚪ 0%
Send_10_Webhooks_to_1000_Endpoints_with_limit/ (ns/op) 371.65 ms 383.67 ms 🔴 +3.23%
Send_10_Webhooks_to_1000_Endpoints_with_limit/ (B/op) 44.50 MB 44.52 MB 🔴 +0.05%
Send_10_Webhooks_to_1000_Endpoints_with_limit/ (allocs/op) 380,157 allocs 380,157 allocs ⚪ 0%

@hackerwins hackerwins force-pushed the main branch 6 times, most recently from ee9bbd2 to a98ac24 Compare May 27, 2025 08:37
Copy link

@hackerwins-yorkie hackerwins-yorkie left a comment

Choose a reason for hiding this comment

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

k6 Load Test 📊

This is a comparison result between the previous(70f2f95) and the current commit(ae9747e).

Change

Metric Previous Current Change
transaction_time.avg 5883.15 5885.20 🔴 +0.03%
http_req_duration.avg 283.04 277.64 🟢 -1.91%
http_req_duration.p(95) 1424.48 1404.16 🟢 -1.43%
iteration_duration.avg 5883.19 5885.24 🔴 +0.03%
data_received.count 859,797,038 873,540,653 🔴 +1.60%
data_sent.count 58,855,677 59,218,337 🔴 +0.62%

Result

    script: test/k6/presence.ts

 scenarios: (100.00%) 1 scenario, 500 max VUs, 3m0s max duration (incl. graceful stop):
          * default: Up to 500 looping VUs for 2m30s over 3 stages (gracefulRampDown: 30s, gracefulStop: 30s)

█ THRESHOLDS

control_doc_latency
✓ 'p(95)<500' p(95)=0

http_req_duration
✓ 'p(95)<10000' p(95)=1.4s

transaction_success_rate
✓ 'rate>0.99' rate=100.00%

█ TOTAL RESULTS

checks_total.......................: 126354  818.417155/s
checks_succeeded...................: 100.00% 126354 out of 126354
checks_failed......................: 0.00%   0 out of 126354

✓ status is 200
✓ response has valid body

CUSTOM
active_clients..........................................................: 9142    59.214347/s
attach_documents........................................................: 9142    59.214347/s
control_doc_latency.....................................................: avg=0           min=0        med=0       max=0     p(90)=0      p(95)=0      
pushpulls...............................................................: 35751   231.565536/s
transaction_success_rate................................................: 100.00% 9142 out of 9142
transaction_time........................................................: avg=5885.200941 min=3020     med=6025    max=9378  p(90)=7834.9 p(95)=8128.95

HTTP
http_req_duration.......................................................: avg=277.64ms    min=990.12µs med=21.28ms max=1.88s p(90)=1.29s  p(95)=1.4s   
  { expected_response:true }............................................: avg=277.64ms    min=990.12µs med=21.28ms max=1.88s p(90)=1.29s  p(95)=1.4s   
http_req_failed.........................................................: 0.00%   0 out of 63177
http_reqs...............................................................: 63177   409.208578/s

EXECUTION
iteration_duration......................................................: avg=5.88s       min=3.02s    med=6.02s   max=9.37s p(90)=7.83s  p(95)=8.12s  
iterations..............................................................: 9142    59.214347/s
vus.....................................................................: 1       min=1            max=500
vus_max.................................................................: 500     min=500          max=500

NETWORK
data_received...........................................................: 874 MB  5.7 MB/s
data_sent...............................................................: 59 MB   384 kB/s

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
protocol changed 📝 Whether the protocol has changed
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants