TY - GEN
T1 - Adjusted Objects
T2 - 26th ACM International Middleware Conference, Middleware 2025
AU - Kane, Boubacar
AU - Sutra, Pierre
N1 - Publisher Copyright:
© 2025 Copyright held by the owner/author(s).
PY - 2025/12/14
Y1 - 2025/12/14
N2 - Parallel programs require software support to coordinate access to shared data. For this purpose, modern programming languages provide strongly-consistent shared objects. To account for their many usages, these objects offer a large API. However, in practice, each program calls only a small subset of the interface. Leveraging such an observation, we propose to tailor a shared object for a specific usage. We call this principle adjusted objects. Adjusted objects already exist in the wild. This paper provides their first systematic study. We explain how everyday programmers already adjust common shared objects (such as queues, maps, and counters) for better performance. We present the formal foundations of adjusted objects using a new tool to characterize scalability, the indistinguishability graph. Leveraging this study, we introduce a library named DEGO to inject adjusted objects in a Java program. In micro-benchmarks, objects from the DEGO library improve the performance of standard JDK shared objects by up to two orders of magnitude. We also evaluate DEGO with a Retwis-like benchmark modeled after a social network application. On a modern server-class machine, DEGO boosts by up to 1.7x the performance of the benchmark.
AB - Parallel programs require software support to coordinate access to shared data. For this purpose, modern programming languages provide strongly-consistent shared objects. To account for their many usages, these objects offer a large API. However, in practice, each program calls only a small subset of the interface. Leveraging such an observation, we propose to tailor a shared object for a specific usage. We call this principle adjusted objects. Adjusted objects already exist in the wild. This paper provides their first systematic study. We explain how everyday programmers already adjust common shared objects (such as queues, maps, and counters) for better performance. We present the formal foundations of adjusted objects using a new tool to characterize scalability, the indistinguishability graph. Leveraging this study, we introduce a library named DEGO to inject adjusted objects in a Java program. In micro-benchmarks, objects from the DEGO library improve the performance of standard JDK shared objects by up to two orders of magnitude. We also evaluate DEGO with a Retwis-like benchmark modeled after a social network application. On a modern server-class machine, DEGO boosts by up to 1.7x the performance of the benchmark.
KW - design
KW - multicore
KW - performance
KW - scalability
KW - software interfaces
KW - theory
UR - https://www.scopus.com/pages/publications/105026733888
U2 - 10.1145/3721462.3730953
DO - 10.1145/3721462.3730953
M3 - Conference contribution
AN - SCOPUS:105026733888
T3 - Middleware 2025 - Proceedings of the 26th ACM International Middleware Conference
SP - 215
EP - 227
BT - Middleware 2025 - Proceedings of the 26th ACM International Middleware Conference
PB - Association for Computing Machinery, Inc
Y2 - 15 December 2025 through 19 December 2025
ER -