GoogleCloudPlatform / GoogleCloudPlatform/cloud-spanner-samples
Improve performance of workload generator
- Dominant language
- Jupyter Notebook
- Stars
- 36
- Forks
- 32
- PR merge metrics
- No merged PRs in 30d
Description
[blocked on #50]
## Issue
#50 made the workload generator multithreaded. However, this PR did not fine-tune the generator to make it as effective as possible. There are many different strategies to investigate for improving performance:
* Using non-blocking stubs (see: https://github.com/GoogleCloudPlatform/cloud-spanner-samples/pull/50#discussion_r698914518)
* Using separate channels per worker (see: https://github.com/GoogleCloudPlatform/cloud-spanner-samples/pull/50#discussion_r698914518)
* Changing the `ThreadPoolExecutor` or queue.
* Creating a new handler ([`ThreadPoolExecutor` documentation](https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ThreadPoolExecutor.html) under rejected tasks) so that failed `executor.submit`s block and retry (see: https://github.com/GoogleCloudPlatform/cloud-spanner-samples/pull/50#discussion_r697725061)
* Removing the queue or adjusting the max queue size (see: https://github.com/GoogleCloudPlatform/cloud-spanner-samples/pull/50#discussion_r698908313)
Contributor guide
Assessment
This issue has not been assessed yet.