Skip to content

Conversation

@kushagraThapar
Copy link
Member

  • CosmosPagedFlux initial POC implementation
  • To get early feedback and scope the changes to a small subset of files, this PR only covers one API -> queryItems()

@kushagraThapar kushagraThapar added Do Not Merge Cosmos cosmos:v4-item Indicates this feature will be shipped as part of V4 release train labels Jan 30, 2020
@kushagraThapar
Copy link
Member Author

/azp run java - cosmos - tests

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

Copy link
Contributor

@moderakh moderakh left a comment

Choose a reason for hiding this comment

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

some questions:

  1. Aren't we going to split the options as discussed earlier?
  2. can you please run a perf benchmark with and without this PR using this benchmark, and see how different the numbers are?
    #6771

@kushagraThapar
Copy link
Member Author

/azp run java - cosmos - tests

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@kushagraThapar
Copy link
Member Author

/azp run java - cosmos - tests

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@kushagraThapar
Copy link
Member Author

/azp run java - cosmos - tests

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@kushagraThapar
Copy link
Member Author

some questions:

  1. Aren't we going to split the options as discussed earlier?
  2. can you please run a perf benchmark with and without this PR using this benchmark, and see how different the numbers are?
    v4: adds an in clause query benchmark #6771

As discussed over call, we will split the FeedOptions last when all the public surface API changes are finished.
Regarding perf, I am seeing same numbers with / without Cosmos Paged Flux implementation.

On feature/cosmos/v4 - WITHOUT Cosmos Paged Flux Implementation:

-- Meters ----------------------------------------------------------------------
#Successful Operations
             count = 10000
         mean rate = 31.13 events/second
     1-minute rate = 31.11 events/second
     5-minute rate = 29.16 events/second
    15-minute rate = 27.12 events/second
#Unsuccessful Operations
             count = 0
         mean rate = 0.00 events/second
     1-minute rate = 0.00 events/second
     5-minute rate = 0.00 events/second
    15-minute rate = 0.00 events/second

-- Timers ----------------------------------------------------------------------
Latency
             count = 10000
         mean rate = 31.13 calls/second
     1-minute rate = 31.11 calls/second
     5-minute rate = 29.16 calls/second
    15-minute rate = 27.12 calls/second
               min = 121.16 milliseconds
               max = 573.10 milliseconds
              mean = 323.81 milliseconds
            stddev = 76.05 milliseconds
            median = 336.66 milliseconds
              75% <= 375.86 milliseconds
              95% <= 429.23 milliseconds
              98% <= 454.12 milliseconds
              99% <= 469.30 milliseconds
            99.9% <= 522.05 milliseconds

Cosmos Paged Flux Implementation:

-- Meters ----------------------------------------------------------------------
#Successful Operations
             count = 10000
         mean rate = 30.45 events/second
     1-minute rate = 30.43 events/second
     5-minute rate = 28.40 events/second
    15-minute rate = 26.24 events/second
#Unsuccessful Operations
             count = 0
         mean rate = 0.00 events/second
     1-minute rate = 0.00 events/second
     5-minute rate = 0.00 events/second
    15-minute rate = 0.00 events/second

-- Timers ----------------------------------------------------------------------
Latency
             count = 10000
         mean rate = 30.45 calls/second
     1-minute rate = 30.43 calls/second
     5-minute rate = 28.40 calls/second
    15-minute rate = 26.24 calls/second
               min = 118.10 milliseconds
               max = 571.99 milliseconds
              mean = 326.78 milliseconds
            stddev = 67.36 milliseconds
            median = 331.55 milliseconds
              75% <= 372.05 milliseconds
              95% <= 425.15 milliseconds
              98% <= 454.38 milliseconds
              99% <= 486.39 milliseconds
            99.9% <= 571.99 milliseconds

@kushagraThapar
Copy link
Member Author

/azp run java - cosmos - tests

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@kushagraThapar
Copy link
Member Author

/azp run java - cosmos - tests

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

Copy link
Contributor

@moderakh moderakh left a comment

Choose a reason for hiding this comment

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

LGTM.

just please note CosmosPagedFluxOptions still is in the public package not implementation.
Also for the new tests on backpressure, do they pass as they are? do they need any threshold massaging?

@kushagraThapar
Copy link
Member Author

/azp run java - cosmos - tests

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@kushagraThapar
Copy link
Member Author

/azp run java - cosmos - tests

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@kushagraThapar
Copy link
Member Author

known failures, merging this in now.

@kushagraThapar kushagraThapar merged commit a997bae into Azure:feature/cosmos/v4 Feb 4, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cosmos:v4-item Indicates this feature will be shipped as part of V4 release train Cosmos Do Not Merge

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants