Performance and Stability Evaluation of Concurrency Models for I/O-Bound Services in Golang under High-Volume Transaction Load

Authors

DOI:

https://doi.org/10.35870/ijsecs.v6i2.7490

Keywords:

Concurrency, Golang, Worker Pool, Backpressure, I/O-Bound Workload

Abstract

Large-scale transaction processing in I/O-bound services can lead to performance bottlenecks and database instability, particularly on resource-constrained servers. An inappropriate concurrency strategy may cause excessive memory consumption and system failure under high workloads. This study compares the efficiency and stability of three concurrency models in Go: Sequential, Unlimited Goroutine, and Worker Pool with a Backpressure mechanism for processing 11 million transaction records against a PostgreSQL database. Testing was conducted in an isolated environment using Docker containers running on a Colima virtual machine configured with 4 CPU cores, 8 GB RAM, and a maximum of 50 database connections. Data were retrieved iteratively using Dynamic Keyset Filtering, while the batch size was calibrated through a preliminary tuning experiment. The results indicate that a batch size of 16,000 provided a balance between I/O efficiency and memory stability. The Unlimited Goroutine model failed to complete the workload due to an out-of-memory (OOM) condition. The Sequential model processed all records in 632 seconds with a throughput of 17,405 transactions per second (Tx/s). The 4-worker Worker Pool achieved the highest throughput at 21,917 Tx/s in 502 seconds, while the 8-worker Worker Pool achieved 19,755 Tx/s in 557 seconds with a 0% error rate and more consistent performance across the tested conditions. Based on the consistency of its performance, the 8-worker Worker Pool was selected as the preferred configuration in this study. These findings indicate that combining a Worker Pool with Backpressure and an appropriately calibrated batch size can improve the performance and stability of large-scale, Go-based transaction processing under the tested conditions.

Downloads

Download data is not yet available.

Author Biographies

  • Salsabila Yunita Sari, Satya Wacana Christian University

    Department of Informatics Engineering, Universitas Kristen Satya Wacana, Salatiga City, Central Java Province, Indonesia.

  • Felix David, Satya Wacana Christian University

    Department of Informatics Engineering, Universitas Kristen Satya Wacana, Salatiga City, Central Java Province, Indonesia.

References

Ahmad, A. (2026). Understanding goroutines & the Go scheduler (GMP model). https://blog.arishahmad.in/understanding-goroutines-the-go-scheduler-gmp-model

Dilley, N., & Lange, J. (2019). An empirical study of messaging passing concurrency in Go projects. In 2019 IEEE 26th International Conference on Software Analysis, Evolution and Reengineering (SANER) (pp. 377–387). IEEE. https://doi.org/10.1109/SANER.2019.8668036

Dinh-Tuan, H. (2025). Unikernels vs. containers: A runtime-level performance comparison for resource-constrained edge workloads. In 2025 8th Conference on Cloud and Internet of Things (CIoT). IEEE.

Doan, S. (2025, May). How worker pools saved our Go services: Lessons from the trenches. Medium. https://medium.com/@sanhdoan/how-worker-pools-saved-out-go-services-lessons-from-the-trenches-e55167a6b353

Hesse, G., Matthies, C., & Uflacker, M. (2020). How fast can we insert? An empirical performance evaluation of Apache Kafka. In 2020 IEEE International Conference on Parallel and Distributed Systems (ICPADS) (pp. 641–648). IEEE.

Kar, S., Rehrmann, R., Mukhopadhyay, A., Alt, B., Ciucu, F., Koeppl, H., Binnig, C., & Rizk, A. (2021). On the throughput optimization in large-scale batch-processing systems. ACM SIGMETRICS Performance Evaluation Review, 48(3), 128–129. https://doi.org/10.1145/3453953.3453982

Kennedy, B. (2018, December). Scheduling in Go: Part III – Concurrency. Ardan Labs. https://www.ardanlabs.com/blog/2018/12/scheduling-in-go-part3.html

Le Noac'h, P., Costan, A., & Bougé, L. (2017). A performance evaluation of Apache Kafka in support of big data streaming applications. In 2017 IEEE International Conference on Big Data. IEEE.

Ling, Y., Mullen, T., & Lin, X. (2000). Analysis of optimal thread pool size. ACM SIGOPS Operating Systems Review, 34(2), 42–55. https://doi.org/10.1145/346152.346320

Malhotra, A. (2025). Concurrency patterns in Golang: Real-world use cases and performance analysis. Journal of Computing and Software Technologies, 5(1), 1–14. https://al-kindipublishers.org/index.php/jcsts/article/view/10083

Matteussi, K. J., dos Anjos, J. C. S., Leithardt, V. R. Q., & Geyer, C. F. R. (2022). Performance evaluation analysis of Spark Streaming backpressure for data-intensive pipelines. Sensors, 22(13), 4756. https://doi.org/10.3390/s22134756

Nguyen, T. (2024, July). A comprehensive guide to concurrency in Golang. Relia Software. https://reliasoftware.com/blog/concurrency-in-golang

Reza, D., & Supatmi, S. (2023). Concurrency performance analysis on MySQL RDBMS in virtual machine environment. In 2023 9th International Conference on Science and Technology (ICSPIS) (pp. 1–7). IEEE.

Sharma, P. (2025, December). Designing high throughput Go services for continuous database change streams. DEV Community. https://dev.to/sharmaprash/golang-optimizations-for-high-volume-services-dij

Surwase, R. K. (2024, April). Efficient concurrency in Go: A deep dive into the worker pool pattern for batch processing. Medium. https://rksurwase.medium.com/efficient-concurrency-in-go-a-deep-dive-into-the-worker-pool-pattern-for-batch-processing-73cac5a5bdca

Wu, M., et al. (2020). Platinum: A CPU-efficient concurrent garbage collector for tail-reduction of interactive services. In 2020 USENIX Annual Technical Conference (USENIX ATC) (pp. 159–172).

Yıldırım, H. (2024, February). CPU vs I/O bound benchmarking in Go. Medium. https://medium.com/@halilylm/cpu-vs-i-o-bound-benchmarbing-in-go-fcd4f053694e

Zhao, J., Zhou, X., Chang, S.-Y., & Xu, C. (2023). Let it go: Relieving garbage collection pain for latency critical applications in Golang. In Proceedings of the 32nd International Symposium on High-Performance Parallel and Distributed Computing (HPDC '23) (pp. 169–180).

Downloads

Published

2026-08-01

How to Cite

Sari, S. Y., & David, F. (2026). Performance and Stability Evaluation of Concurrency Models for I/O-Bound Services in Golang under High-Volume Transaction Load. International Journal Software Engineering and Computer Science (IJSECS), 6(2), 615-626. https://doi.org/10.35870/ijsecs.v6i2.7490

Similar Articles

You may also start an advanced similarity search for this article.

Most read articles by the same author(s)