Skip to content
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

PublisherAsBlockingIterable LinkedBlockingQueue -> SpscBlockingQueue #2384

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from

Commits on Oct 26, 2022

  1. PublisherAsBlockingIterable LinkedBlockingQueue -> SpscBlockingQueue

    Motivation:
    LinkedBlockingQueue allows for multiple producers and multiple consumers.
    It uses LockSupport park in offer and unpark in take. LockSupport unpark
    on the EventLoop thread has been shown to impact throughput during benchmarks.
    
    SpscBlockingQueue (yield_count == 1)
    ```
    Running 30s test @ http://localhost:8080/medium, using 'ServiceTalkGrpcBlockingClientStrAgg' client
      1024 threads and 1024 connections
      Thread Stats   Avg      Stdev     Max   +/- Stdev
        Latency       -          -       -           -
        Req/Sec     0.01k        -     0.01k         -
      291045 requests in 30s
    Requests/sec: 9701.50
    Transfer/sec: -
    OK: 291045
    KO: 0
    ```
    
    SpscBlockingQueue (yield_count == 2)
    ```
    Running 30s test @ http://localhost:8080/medium, using 'ServiceTalkGrpcBlockingClientStrAgg' client
      1024 threads and 1024 connections
      Thread Stats   Avg      Stdev     Max   +/- Stdev
        Latency       -          -       -           -
        Req/Sec     0.01k        -     0.01k         -
      328586 requests in 30s
    Requests/sec: 10952.87
    Transfer/sec: -
    OK: 328586
    KO: 0
    ```
    
    LinkedTransferQueue
    ```
    Running 30s test @ http://localhost:8080/medium, using 'ServiceTalkGrpcBlockingClientStrAgg' client
      1024 threads and 1024 connections
      Thread Stats   Avg      Stdev     Max   +/- Stdev
        Latency       -          -       -           -
        Req/Sec     0.01k        -     0.01k         -
      289396 requests in 30s
    Requests/sec: 9646.53
    Transfer/sec: -
    OK: 289396
    KO: 0
    ```
    Scottmitch committed Oct 26, 2022
    Configuration menu
    Copy the full SHA
    1cb8031 View commit details
    Browse the repository at this point in the history