GoogleCloudPlatform / GoogleCloudPlatform/cloud-spanner-samples

Improve performance of workload generator

Open
#55 0 comments 0 reactions 0 assignees View on GitHub
enhancement
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.