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

[Schema Registry] Add perf tests #16983

Closed
deyaaeldeen opened this issue Aug 18, 2021 · 1 comment
Closed

[Schema Registry] Add perf tests #16983

deyaaeldeen opened this issue Aug 18, 2021 · 1 comment
Assignees
Labels
Client This issue points to a problem in the data-plane of the library. pillar-performance The issue is related to performance, one of our core engineering pillars. Schema Registry

Comments

@deyaaeldeen
Copy link
Member

See https://github.com/Azure/azure-sdk-for-js/wiki/Writing-Performance-Tests

@deyaaeldeen deyaaeldeen added this to the [2021] October milestone Aug 18, 2021
@deyaaeldeen deyaaeldeen self-assigned this Aug 18, 2021
@jeremymeng jeremymeng added Client This issue points to a problem in the data-plane of the library. pillar-performance The issue is related to performance, one of our core engineering pillars. labels Sep 24, 2021
openapi-sdkautomation bot pushed a commit to AzureSDKAutomation/azure-sdk-for-js that referenced this issue Dec 9, 2021
Adding 2021-12-01-preview version for Microsoft.DataProtection (from latest stable version)  (Azure#16983)

* Base_Copy 2021-07-01 version to 2021-12-01-preview

* Adding changes to preview verion

* updating readme
deyaaeldeen added a commit that referenced this issue Mar 28, 2022
### Packages impacted by this PR
@azure/schema-registry-avro

### Issues associated with this PR
Related to #16983

### Describe the problem that is addressed by this PR
Lack of performance tests of the avro serializer

### What are the possible designs available to address the problem? If there are more than one possible design, why was the one in this PR chosen?
There're many potential perf tests but I went with one that uses a single schema and serializes an array. Here is a sample output:
```

> @azure-tests/perf-schema-registry-avro@1.0.0 perf-test:node
> ts-node test/index.spec.ts "SerializeTest" "--warmup" "1" "--iterations" "10" "--parallel" "100" "--duration" "15"

=== Starting the perf test ===
=== Creating 100 instance(s) of SerializeTest ===
=== Versions ===
@azure-tests/perf-schema-registry-avro@1.0.0 /home/dealmaha/schemaregistry/sdk/schemaregistry/perf-tests/schema-registry-avro
├── @azure/identity@2.0.4 -> ./../../../../common/temp/node_modules/.pnpm/@Azure+identity@2.0.4/node_modules/@azure/identity
├── @azure/schema-registry-avro@1.0.0 -> ./../../schema-registry-avro
├── @azure/schema-registry@1.0.2 -> ./../../schema-registry
├── @azure/test-utils-perf@1.0.0 -> ./../../../test-utils/perf
=== Parsed options ===
┌──────────────────────────────┬──────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────┬───────────┬────────────────────────────────┬──────────────┬───────────┐
│           (index)            │ required │                                                description                                                 │ shortName │            longName            │ defaultValue │   value   │
├──────────────────────────────┼──────────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────┼───────────┼────────────────────────────────┼──────────────┼───────────┤
│         items-count          │  false   │                                          'Number of array items'                                           │    'n'    │         'items-count'          │     1000     │   1000    │
│             help             │          │                                    'Shows all of the available options'                                    │    'h'    │             'help'             │              │ undefined │
│           parallel           │          │                            'How many of the same test to call at the same time'                            │    'p'    │           'parallel'           │      1       │    100    │
│           duration           │          │                                    'When to stop calling tests at all'                                     │    'd'    │           'duration'           │      10      │    15     │
│            warmup            │          │                                      'Duration of warmup in seconds'                                       │    'w'    │            'warmup'            │      5       │     1     │
│          iterations          │          │                             'Times to repeat the whole process, after warmup'                              │    'i'    │          'iterations'          │      1       │    10     │
│          no-cleanup          │          │                                          'Disables test cleanup'                                           │           │          'no-cleanup'          │              │ undefined │
│         test-proxies         │          │                               "URIs of TestProxy servers (separated by ';')"                               │           │         'test-proxies'         │  undefined   │ undefined │
│           insecure           │          │ 'Applied when test-proxies option is defined, connects with https(insecurely by disabling SSL validation)' │   'ins'   │           'insecure'           │    false     │   false   │
│     milliseconds-to-log      │          │                                      'Log frequency in milliseconds'                                       │   'mtl'   │     'milliseconds-to-log'      │     1000     │   1000    │
│ list-transitive-dependencies │          │                   'List all dependencies, instead of only direct ones, before test run'                    │   'ltd'   │ 'list-transitive-dependencies' │    false     │   false   │
└──────────────────────────────┴──────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────┴───────────┴────────────────────────────────┴──────────────┴───────────┘
=== Calling globalSetup() once for (all) the instance(s) of SerializeTest ===

=== warmup mode, iteration 1. Logs every 1s ===
ElapsedTime	Current		Total		Average
00:01		1554		1554		1553.98
00:02		2		1556		1555.19
00:03		63		1619		1584.07
=== warmup mode, results of iteration 1 ===
Completed 1,653 operations in a weighted-average of 1.04s (1,595.11 ops/s, 0.001 s/op)

=== test mode, iteration 1. Logs every 1s ===
ElapsedTime	Current		Total		Average
=== test mode, results of iteration 1 ===
Completed 675,200 operations in a weighted-average of 15.00s (45,017.53 ops/s, 0.000 s/op)

=== test mode, iteration 2. Logs every 1s ===
ElapsedTime	Current		Total		Average
=== test mode, results of iteration 2 ===
Completed 795,700 operations in a weighted-average of 15.00s (53,045.42 ops/s, 0.000 s/op)

=== test mode, iteration 3. Logs every 1s ===
ElapsedTime	Current		Total		Average
=== test mode, results of iteration 3 ===
Completed 634,300 operations in a weighted-average of 15.01s (42,272.47 ops/s, 0.000 s/op)

=== test mode, iteration 4. Logs every 1s ===
ElapsedTime	Current		Total		Average
=== test mode, results of iteration 4 ===
Completed 566,500 operations in a weighted-average of 15.00s (37,763.46 ops/s, 0.000 s/op)

=== test mode, iteration 5. Logs every 1s ===
ElapsedTime	Current		Total		Average
=== test mode, results of iteration 5 ===
Completed 321,300 operations in a weighted-average of 15.00s (21,419.22 ops/s, 0.000 s/op)

=== test mode, iteration 6. Logs every 1s ===
ElapsedTime	Current		Total		Average
=== test mode, results of iteration 6 ===
Completed 387,400 operations in a weighted-average of 15.01s (25,813.16 ops/s, 0.000 s/op)

=== test mode, iteration 7. Logs every 1s ===
ElapsedTime	Current		Total		Average
=== test mode, results of iteration 7 ===
Completed 389,300 operations in a weighted-average of 15.00s (25,951.76 ops/s, 0.000 s/op)

=== test mode, iteration 8. Logs every 1s ===
ElapsedTime	Current		Total		Average
=== test mode, results of iteration 8 ===
Completed 597,700 operations in a weighted-average of 15.00s (39,846.31 ops/s, 0.000 s/op)

=== test mode, iteration 9. Logs every 1s ===
ElapsedTime	Current		Total		Average
=== test mode, results of iteration 9 ===
Completed 608,800 operations in a weighted-average of 15.00s (40,584.65 ops/s, 0.000 s/op)

=== test mode, iteration 10. Logs every 1s ===
ElapsedTime	Current		Total		Average
=== test mode, results of iteration 10 ===
Completed 580,200 operations in a weighted-average of 15.00s (38,677.77 ops/s, 0.000 s/op)
```

### Are there test cases added in this PR? _(If not, why?)_
Yes

### Provide a list of related PRs _(if any)_


### Command used to generate this PR:**_(Applicable only to SDK release request PRs)_

### Checklists
- [x] Added impacted package name to the issue description
- [ ] Does this PR needs any fixes in the SDK Generator?** _(If so, create an Issue in the [Autorest/typescript](https://github.com/Azure/autorest.typescript) repository and link it here)_
- [ ] Added a changelog (if necessary)
deyaaeldeen added a commit that referenced this issue Apr 7, 2022
### Packages impacted by this PR
@azure/schema-registry-avro

### Issues associated with this PR
Related to #16983

### Describe the problem that is addressed by this PR
Missing performance test for deserialize

### What are the possible designs available to address the problem? If there are more than one possible design, why was the one in this PR chosen?
N/A

### Are there test cases added in this PR? _(If not, why?)_
N/A

### Provide a list of related PRs _(if any)_
N/A

### Command used to generate this PR:**_(Applicable only to SDK release request PRs)_

### Checklists
- [x] Added impacted package name to the issue description
- [ ] Does this PR needs any fixes in the SDK Generator?** _(If so, create an Issue in the [Autorest/typescript](https://github.com/Azure/autorest.typescript) repository and link it here)_
- [ ] Added a changelog (if necessary)
@xirzec xirzec modified the milestones: [2022] May, [2022] June May 17, 2022
@deyaaeldeen deyaaeldeen modified the milestones: [2022] June, Backlog May 31, 2022
Copy link

Hi @deyaaeldeen, we deeply appreciate your input into this project. Regrettably, this issue has remained inactive for over 2 years, leading us to the decision to close it. We've implemented this policy to maintain the relevance of our issue queue and facilitate easier navigation for new contributors. If you still believe this topic requires attention, please feel free to create a new issue, referencing this one. Thank you for your understanding and ongoing support.

@github-actions github-actions bot closed this as not planned Won't fix, can't repro, duplicate, stale Mar 15, 2024
@github-actions github-actions bot locked and limited conversation to collaborators Mar 15, 2024
@xirzec xirzec removed this from the Backlog milestone May 7, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Client This issue points to a problem in the data-plane of the library. pillar-performance The issue is related to performance, one of our core engineering pillars. Schema Registry
Projects
None yet
Development

No branches or pull requests

5 participants