Affiliation:
1. University of Michigan - Dearborn
2. University of California - Merced
Abstract
The microservice architecture style has gained popularity due to its ability to fault isolation, ease of scaling applications, and developer’s agility. However, writing applications in the microservice design style has its challenges. Due to the loosely coupled nature, services communicate with others through standard communication APIs. This incurs significant overhead in the application due to communication protocol and data transformation. An inefficient service communication at the microservice application logic can further overwhelm the application. We perform a grey literature review showing that unnecessary data transfer is a real challenge in the industry. To the best of our knowledge, no effective tool is currently available to accurately identify the origins of unnecessary microservice communications that lead to significant performance overhead and provide guidance for optimization.
To bridge the knowledge gap, we propose
MicroProf
, a dynamic program analysis tool to detect unnecessary data transfer in Java-based microservice applications. At the implementation level,
MicroProf
proposes novel techniques such as remote object sampling and hardware debug registers to monitor remote object usage.
MicroProf
reports the unnecessary data transfer at the application source code level. Furthermore,
MicroProf
pinpoints the opportunities for communication API optimization.
MicroProf
is evaluated on four well-known applications involving two real-world applications and two benchmarks, identifying five inefficient remote invocations. Guided by
MicroProf
, API optimization achieves an 87.5% reduction in the number of fields within REST API responses. The empirical evaluation further reveals that the optimized services experience a speedup of up to 4.59×.
Funder
National Science Foundation
Publisher
Association for Computing Machinery (ACM)
Subject
Hardware and Architecture,Information Systems,Software
Reference71 articles.
1. Exploiting hardware performance counters with flow and context sensitive profiling
2. ASM 2002. ASM. Retrieved September 01 2022 from https://asm.ow2.io/
3. Paul Barham, Austin Donnelly, Rebecca Isaacs, and Richard Mortier. 2004. Using Magpie for request extraction and workload modelling. In Proceedings of the OSDI. 18–18.
4. Gleison Brito, Thais Mombach, and Marco Tulio Valente. 2019. Migrating to GraphQL: A practical assessment. In Proceedings of the 2019 IEEE 26th International Conference on Software Analysis, Evolution and Reengineering. IEEE, 140–150.