Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
210 commits
Select commit Hold shift + click to select a range
f0d1451
background call for get database account call
tvaron3 Feb 7, 2025
4d5b775
only call get database account in health check for different endpoints
tvaron3 Feb 10, 2025
4507272
Change health check logic in sync
tvaron3 Feb 10, 2025
5cc75c3
Revert removing timing
tvaron3 Feb 10, 2025
e3425b9
update changelog
tvaron3 Feb 10, 2025
81bf785
fix tests
tvaron3 Feb 10, 2025
db9bcd6
use asyncio create_task
tvaron3 Feb 10, 2025
d20df3f
fix tests
tvaron3 Feb 10, 2025
e3604a5
fix pylint
tvaron3 Feb 11, 2025
90392b7
Renamed variables and added effective preferred locations
tvaron3 Feb 11, 2025
7fbe594
update changelog
tvaron3 Feb 11, 2025
7d45037
Add test for effective preferred regions
tvaron3 Feb 12, 2025
41ea1e1
Add test for effective preferred regions
tvaron3 Feb 12, 2025
00cbb72
sync test for preferred regions
tvaron3 Feb 12, 2025
abe6387
Renaming and add test for health check
tvaron3 Feb 12, 2025
73acd04
fix tests
tvaron3 Feb 12, 2025
633c7f6
fix tests and add more health check tests
tvaron3 Feb 12, 2025
23e7e83
fix tests
tvaron3 Feb 12, 2025
13abf0e
add tests
tvaron3 Feb 12, 2025
9fb1976
fix tests
tvaron3 Feb 12, 2025
7eda13d
Move to breaking change
tvaron3 Feb 12, 2025
1bbbdd1
Added scale workload scripts
kushagraThapar Feb 12, 2025
c370cab
Scale testing upserts
kushagraThapar Feb 12, 2025
d4a8bb8
fix cspell and tests
tvaron3 Feb 12, 2025
b5ea11c
fix tests
tvaron3 Feb 12, 2025
ec7bfd7
fix initial upserts
tvaron3 Feb 12, 2025
0871fda
fix tests
tvaron3 Feb 13, 2025
a1bc652
revert preferred locations
tvaron3 Feb 13, 2025
2c7f25d
timeout mark unavailable
tvaron3 Feb 13, 2025
f67ecb5
moving health check to background
tvaron3 Feb 13, 2025
d2185d7
only finish health check after 2 successes
tvaron3 Feb 14, 2025
ecca461
fix tests
tvaron3 Feb 21, 2025
6c59378
merged with main
tvaron3 Feb 21, 2025
ee63cce
add tests
tvaron3 Feb 25, 2025
308fb7a
Merge branch 'main' of https://github.com/Azure/azure-sdk-for-python …
tvaron3 Feb 25, 2025
30bdfba
fix and add timeout tests for marking endpoints unavailable
tvaron3 Feb 25, 2025
b9499d1
Reacting to comments
tvaron3 Feb 26, 2025
4aa03a1
Reacting to comments
tvaron3 Feb 26, 2025
866d4cf
Add cleanup of background task when cosmos client closes
tvaron3 Feb 26, 2025
f21bcec
React to comments
tvaron3 Feb 27, 2025
96e436d
Remove consecutive failures code
tvaron3 Feb 27, 2025
44062fd
updated changelog
tvaron3 Feb 27, 2025
87220dd
Fix test
tvaron3 Feb 27, 2025
7f958ac
Fix tests that weren't awaiting properly
tvaron3 Feb 27, 2025
e20d9c6
Add a sync workload and fix initial setup and separate client configs…
tvaron3 Feb 27, 2025
0fe0a82
Merge branch 'tvaron3/healthCheckImprovements' of https://github.com/…
tvaron3 Feb 27, 2025
19bef31
fix imports
tvaron3 Feb 27, 2025
e7cfe6a
fix tests
tvaron3 Feb 27, 2025
e0e8cb5
update proxy
tvaron3 Feb 27, 2025
de3def6
change unavailable time to 7 minutes
tvaron3 Feb 28, 2025
cd15395
remove marking unavailable, health check four regions, health check p…
tvaron3 Feb 28, 2025
6b7d4b1
merging health checks
tvaron3 Feb 28, 2025
23a8282
fix type hints
tvaron3 Feb 28, 2025
3c8c37f
Merge branch 'tvaron3/healthCheckImprovements' of https://github.com/…
tvaron3 Feb 28, 2025
549a577
logs to debug
tvaron3 Feb 28, 2025
8528c14
logs to debug
tvaron3 Feb 28, 2025
3d32d7f
fix startup scenario
Feb 28, 2025
92ed858
Merge branch 'tvaron3/healthCheckImprovements' of https://github.com/…
tvaron3 Feb 28, 2025
de96fd6
debug logs
tvaron3 Feb 28, 2025
9361076
fix updating cache
tvaron3 Feb 28, 2025
6544835
Merge branch 'tvaron3/healthCheckImprovements' of https://github.com/…
tvaron3 Feb 28, 2025
9229187
adding logs
tvaron3 Feb 28, 2025
cdec9e4
fix operation type check unavailable
tvaron3 Feb 28, 2025
50cd430
Merge branch 'tvaron3/healthCheckImprovements' of https://github.com/…
tvaron3 Feb 28, 2025
ab247ec
merge main
tvaron3 Feb 28, 2025
04549ef
add logic to check by endpoint and not by regional routing context
tvaron3 Feb 28, 2025
ab4a977
Merge branch 'tvaron3/healthCheckImprovements' of https://github.com/…
tvaron3 Feb 28, 2025
130ecef
bash sript to run workloads
Mar 3, 2025
945befa
adding more workloads
tvaron3 Mar 3, 2025
8f42893
Merge main
tvaron3 Mar 3, 2025
e7ff952
fix tests
tvaron3 Mar 4, 2025
d514b40
fix tests
tvaron3 Mar 4, 2025
7677a82
lower write workloads to use
tvaron3 Mar 4, 2025
83fd02c
merge health check pr
tvaron3 Mar 4, 2025
d9089f1
fix read envoy workloads
tvaron3 Mar 4, 2025
1f46073
increase read concurrency
tvaron3 Mar 6, 2025
8db817f
fix test
tvaron3 Mar 6, 2025
06bf853
Merge branch 'main' of https://github.com/Azure/azure-sdk-for-python …
tvaron3 Mar 6, 2025
1e70b88
more read workloads
tvaron3 Mar 6, 2025
c295b80
more read workloads
tvaron3 Mar 6, 2025
99fe44e
fix tests
tvaron3 Mar 6, 2025
4ef1445
Merge branch 'main' of https://github.com/Azure/azure-sdk-for-python …
tvaron3 Mar 9, 2025
3628f38
fix tests
tvaron3 Mar 10, 2025
1031731
add smaller lag for some writes and reads
tvaron3 Mar 10, 2025
d4c8661
Merge branch 'tvaron3/healthCheckImprovements' of https://github.com/…
tvaron3 Mar 10, 2025
441f5de
debug multimaster test
tvaron3 Mar 10, 2025
ce1ecd1
cleanup
tvaron3 Mar 10, 2025
bf964f8
mark global endpoint available
tvaron3 Mar 11, 2025
3cb615c
Merge branch 'tvaron3/healthCheckImprovements' of https://github.com/…
tvaron3 Mar 11, 2025
4608677
fix tests and only use endpoint from gateway for multimaster
tvaron3 Mar 11, 2025
980120f
balance read and write workloads
tvaron3 Mar 11, 2025
2b465dd
Merge branch 'tvaron3/healthCheckImprovements' of https://github.com/…
tvaron3 Mar 11, 2025
817534e
retry multi region writes same as reads
tvaron3 Mar 11, 2025
8514ad5
Merge branch 'tvaron3/healthCheckImprovements' of https://github.com/…
tvaron3 Mar 11, 2025
89ab17d
react to comments
tvaron3 Mar 11, 2025
d856a07
multi write fix
tvaron3 Mar 11, 2025
e79cf7b
Merge branch 'tvaron3/healthCheckImprovements' of https://github.com/…
tvaron3 Mar 11, 2025
673723f
debug logs
tvaron3 Mar 11, 2025
922259e
multiwrite config
tvaron3 Mar 11, 2025
31b9b27
fix multimaster workloads
tvaron3 Mar 11, 2025
6185500
cleanup / pylint
tvaron3 Mar 11, 2025
bd8e9fc
refactor workloads
tvaron3 Mar 12, 2025
93a5ab5
Merge branch 'tvaron3/healthCheckImprovements' of https://github.com/…
tvaron3 Mar 12, 2025
8231a4d
fix read proxy workload
tvaron3 Mar 12, 2025
9dd082d
swallow exceptions and add mocking
tvaron3 Mar 12, 2025
7eb36ba
fix import
tvaron3 Mar 12, 2025
74b6364
fix import
tvaron3 Mar 12, 2025
de066bc
fix mocking
tvaron3 Mar 12, 2025
356ffd2
fix mocking
tvaron3 Mar 12, 2025
7dc60ad
fix mocking
tvaron3 Mar 12, 2025
1311887
logging improvements for timeout and failover retry policy
tvaron3 Mar 12, 2025
220a509
debugging logs
tvaron3 Mar 13, 2025
7f3ce0b
fix mock
tvaron3 Mar 13, 2025
ed151f5
fix mock
tvaron3 Mar 13, 2025
000214e
improve mock and adding more logs
tvaron3 Mar 13, 2025
c19cc2a
service request instead of response
tvaron3 Mar 13, 2025
4af0db2
more logs
tvaron3 Mar 13, 2025
a861dde
cleanup logs
tvaron3 Mar 13, 2025
75fa492
remove import
tvaron3 Mar 13, 2025
192bd38
more logs and fix mock
tvaron3 Mar 13, 2025
fcfcd33
fix logs
tvaron3 Mar 13, 2025
a476969
more logs for debugging
tvaron3 Mar 13, 2025
02a060e
more logs for debugging
tvaron3 Mar 13, 2025
7f83316
fix mocking
tvaron3 Mar 14, 2025
8902364
fix mocking
tvaron3 Mar 14, 2025
43aac83
fix mocking
tvaron3 Mar 14, 2025
2f68d5f
add envoy
Mar 14, 2025
ba90f74
update envoy and remove mocking
tvaron3 Mar 14, 2025
80881e4
envoy changes
Mar 14, 2025
d8c1029
fix workloads
tvaron3 Mar 14, 2025
f72b9f7
lower sleep time between concurrent operations
tvaron3 Mar 14, 2025
d60842f
remove sleeps
tvaron3 Mar 14, 2025
0c98ae2
increase concurrency
tvaron3 Mar 14, 2025
5794abc
increase default concurrency
tvaron3 Mar 14, 2025
ef6f548
remove excessive logs
tvaron3 Mar 14, 2025
4fae045
change proxy workloads
tvaron3 Mar 14, 2025
68cc7c0
change proxy file
tvaron3 Mar 14, 2025
04dfac2
change proxy file
tvaron3 Mar 14, 2025
8d9cded
change proxy file
tvaron3 Mar 14, 2025
1c4f058
change proxy file
tvaron3 Mar 14, 2025
a2f7f86
useful logs
tvaron3 Mar 14, 2025
90da086
change envoy file
tvaron3 Mar 14, 2025
cfbaa50
change envoy file
tvaron3 Mar 14, 2025
bb7ad0e
change envoy file
tvaron3 Mar 14, 2025
3b6afe8
change envoy file
tvaron3 Mar 14, 2025
770079a
change envoy file
tvaron3 Mar 14, 2025
0e842bc
change envoy file
tvaron3 Mar 14, 2025
3766be2
change envoy file
tvaron3 Mar 14, 2025
747e51e
Added envoy open ai simple file
kushagraThapar Mar 14, 2025
ac325d8
update simple
tvaron3 Mar 14, 2025
9ba713f
Updated scale testing workloads for ycsb benchmark
kushagraThapar Mar 14, 2025
0156efd
Merge branch 'sdk_scale_testing' of github.com:kushagraThapar/azure-s…
kushagraThapar Mar 14, 2025
a1de563
Added run workload script without proxy
kushagraThapar Mar 14, 2025
91c82c9
Added more workloads
kushagraThapar Mar 14, 2025
10a8483
Fixed the run workloads script
kushagraThapar Mar 15, 2025
0937174
Fixed one more scriptp
kushagraThapar Mar 15, 2025
6e5b811
Reduced the clients to below 60
kushagraThapar Mar 15, 2025
b2bee32
Updated file handler to rotating file handler
kushagraThapar Mar 15, 2025
4d5737b
Logging headers for testing
kushagraThapar Mar 15, 2025
1448327
Skipping session token for writes
kushagraThapar Mar 15, 2025
b048caf
Skipping session token for writes
kushagraThapar Mar 15, 2025
09a1443
commented out request / response headers
kushagraThapar Mar 15, 2025
acc2f56
Updated file handler to rotating file handler with 10 mb max
kushagraThapar Mar 15, 2025
bc51947
Updated file handler to rotating file handler with 10 mb max
kushagraThapar Mar 15, 2025
3257a2f
Fixed rotating file handler for every workload script
kushagraThapar Mar 15, 2025
e5a4b99
Updated test directory to tests
kushagraThapar Mar 18, 2025
3e69ef3
Updated test directory to tests and added all files
kushagraThapar Mar 18, 2025
bf286bc
Updated test directory to tests and added workloads
kushagraThapar Mar 18, 2025
bfc7b63
Merged latest main and resolved conflicts
kushagraThapar Mar 18, 2025
69048f6
Fixed envoy proxy code
kushagraThapar Mar 19, 2025
f897f14
Container and Database is configurable now
tvaron3 Mar 19, 2025
c9df429
Container and Database is configurable fix
tvaron3 Mar 19, 2025
6b0777b
Merge branch 'main' of https://github.com/Azure/azure-sdk-for-python …
tvaron3 Mar 27, 2025
7d32d98
ru change to create container and incorrect client workload
tvaron3 Mar 27, 2025
5968e28
Merge branch 'main' into sdk_scale_testing
kushagraThapar Apr 1, 2025
8018d6f
Merge branch 'sdk_scale_testing' of github.com:kushagraThapar/azure-s…
kushagraThapar Apr 1, 2025
d6a30c2
add None etag and match_condition edge case
simorenoh Apr 1, 2025
e8d5b92
Merge branch 'sdk_scale_testing' of https://github.com/tvaron3/azure-…
tvaron3 Apr 1, 2025
6968d92
Use process id for log files and refactor common methods across workl…
tvaron3 Apr 10, 2025
f507d87
merge with main
tvaron3 Apr 10, 2025
d3c96eb
fix initial-setup.py
tvaron3 Apr 10, 2025
f5447d0
fix logger naming
tvaron3 Apr 10, 2025
046cf49
fix logger naming
tvaron3 Apr 10, 2025
2666747
fix workloads and envoy file
tvaron3 Apr 10, 2025
6af1aaa
improve workload scripts
tvaron3 Apr 15, 2025
87c0cd0
improve workload scripts
tvaron3 Apr 15, 2025
72dd1a1
Merge branch 'main' of https://github.com/Azure/azure-sdk-for-python …
tvaron3 Apr 18, 2025
a47d340
test improvements
tvaron3 Apr 18, 2025
fce2680
cleanup
tvaron3 Apr 21, 2025
be763c4
envoy changes
tvaron3 Apr 21, 2025
d38fad3
envoy changes
tvaron3 Apr 21, 2025
ba669c7
revert changes
tvaron3 Apr 21, 2025
5c1c2dc
Merge branch 'main' of https://github.com/Azure/azure-sdk-for-python …
tvaron3 Apr 21, 2025
7d5ccc2
Update sdk/cosmos/azure-cosmos/tests/workloads/w_workload.py
tvaron3 Apr 21, 2025
30bd21f
Update sdk/cosmos/azure-cosmos/tests/workloads/initial-setup.py
tvaron3 Apr 21, 2025
97cc380
Update sdk/cosmos/azure-cosmos/tests/workloads/get-database-account-c…
tvaron3 Apr 21, 2025
0a34be1
Update sdk/cosmos/azure-cosmos/tests/workloads/r_proxy_workload.py
tvaron3 Apr 21, 2025
21603b5
Update sdk/cosmos/azure-cosmos/tests/workloads/r_w_q_with_incorrect_c…
tvaron3 Apr 21, 2025
1911787
Update sdk/cosmos/azure-cosmos/tests/workloads/r_workload.py
tvaron3 Apr 21, 2025
d52e515
Update sdk/cosmos/azure-cosmos/tests/workloads/r_w_q_workload.py
tvaron3 Apr 21, 2025
0f7e314
Update sdk/cosmos/azure-cosmos/tests/workloads/w_proxy_workload.py
tvaron3 Apr 21, 2025
1595acb
fix analyze and add licensing
tvaron3 Apr 21, 2025
18158f3
fix analyze
tvaron3 Apr 21, 2025
6610c01
react to comments
tvaron3 Apr 22, 2025
7505348
fix imports
tvaron3 Apr 22, 2025
ddd2d94
make shutdown executable
tvaron3 Apr 22, 2025
7b3909b
fix import
tvaron3 Apr 22, 2025
a1cdeb6
fix workloads
tvaron3 Apr 22, 2025
ab55697
fix imports
tvaron3 Apr 22, 2025
c27ab5a
fix shutdown
tvaron3 Apr 22, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions sdk/cosmos/azure-cosmos/tests/workloads/dev.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
## SDK Scale Testing
This directory contains the scale testing workloads for the SDK. The workloads are designed to test the performance
and scalability of the SDK under various conditions. There are different types of workloads and each will create a log
file when run. These logs are named in this format `<file name>-<process id>-<date time>.log`.

### Setup VM
1. Create a VM in Azure with the following configuration:
- 8 vCPUs
- 32 GB RAM
- Ubuntu
- Accelerated networking
2. Fork and clone this repository
3. Go to azure cosmos folder
- `cd azure-sdk-for-python/sdk/cosmos/azure-cosmos`
4. Install the required packages and create virtual environment
- `sudo apt-get update`
- `sudo apt-get install python3-pip`
- `sudo apt-get install python3.12-venv`
- `python3 -m venv azure-cosmosdb-sdk-environment`
- `source azure-cosmosdb-sdk-environment/bin/activate`
- `pip install -r dev_requirements.txt`
5. Checkout the branch with the changes to test.
6. Install azure-cosmos
- `pip install .`
7. Go to workloads folder
- `cd tests/workloads`
8. Fill out relevant configs in `workload_configs.py`: key, host, etc
9. Install envoy proxy https://www.envoyproxy.io/docs/envoy/latest/start/install
10. Update envoy_simple_config.yaml to have the correct account info. Replace <> with account name.
11. Go to envoy folder and start envoy
- `cd envoy`
- `mkdir logs`
- `envoy -c <envoy_file>.yaml --log-level debug --log-path logs/debug.txt`
12. Run the setup workload to create the database and containers and insert data
- `python3 initial-setup.py`
13. Run the scale workloads
- `./run_workloads.sh <number of clients per workload>`

### Monitor Run
- `ps -eaf | grep "python3"` to see the running processes
- `tail -f <log_file>` to see the logs in real time
Loading
Loading