Adjusted Objects: An Efficient and Principled Approach to Scalable Programming (Extended Version)

Fuente: arXiv
Saved in:
Bibliographic Details
Main Authors: Kane, Boubacar, Sutra, Pierre
Format: Preprint
Published: 2025
Subjects:
Online Access:
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866908342406873088
author Kane, Boubacar
Sutra, Pierre
author_facet Kane, Boubacar
Sutra, Pierre
contents 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 tiny fraction 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.
format Preprint
id arxiv_https___arxiv_org_abs_2504_19495
institution arXiv
publishDate 2025
record_format arxiv
spellingShingle Adjusted Objects: An Efficient and Principled Approach to Scalable Programming (Extended Version)
Kane, Boubacar
Sutra, Pierre
Distributed, Parallel, and Cluster Computing
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 tiny fraction 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.
title Adjusted Objects: An Efficient and Principled Approach to Scalable Programming (Extended Version)
topic Distributed, Parallel, and Cluster Computing
url https://arxiv.org/abs/2504.19495