VLDB 2026 Research / reviewers in the wild / expert
Alessandro Margara
dblp:05/7380
· DBLP profile ↗
30ranked-venue papers
6as first author
9since 2021 · last 2026
0000-0002-0023-8639ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 15 · 2 first-author · 5 since 2021Databases, data management, data science and information retrieval · 8 · 3 first-author · 3 since 2021Systems, architecture and hardware · 6 · 1 first-author · 1 since 2021Applied, interdisciplinary, general and emerging computing · 4 · 4 since 2021Artificial intelligence and machine learning · 3 · 2 since 2021Computer networks · 1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2026 | Efficient Placement in Distributed Co-Simulations of Multi-Energy Systems
Arianna Dragoni, Simone Reale, Davide Canali, Fabio Chini, Alessandro Margara |
COMPSAC | 5 |
| 2026 | Histrio: Actor-based programming and correctness guarantees for serverless environmentsabstractThe serverless paradigm has gained significant traction for cloud applications, offering scalability while offloading infrastructure management and resource provisioning to providers. However, its adoption introduces a shift in programming model, adding complexity to software development. In Function-as-a-Service (FaaS), functions are stateless, requiring developers to manage external storage, concurrency control, and failure handling diverting focus from business logic. This paper presents Histrio, a programming model and execution environment that realizes the actor model on top of a standard serverless stack, comprising a FaaS platform to execute actors, a managed database to persist actors state, and a queuing service to notify message delivery. Crucially, these underlying technologies are entirely abstracted away, providing developers with a pure actor-based programming interface that is agnostic to the implementation details. By adopting the actor model, Histrio encapsulates state within actors and enforces isolation by construction, while providing exactly-once execution semantics even in the presence of failures. It further enriches the actor model with query-like features that optimize common state access patterns. The result is a system that combines the convenience of the actor model with the benefits of serverless deployments, enabling stateful applications with strong isolation and fault tolerance guarantees. Luca De Martini, Giorgio Natale Buttiglieri, Alessandro Margara |
Inf. Syst. | 3 |
| 2024 | On the Semantic Overlap of Operators in Stream Processing EnginesabstractStream Processing Engines (SPEs) extract value from data streams in the Edge-to-Cloud continuum through graphs of operators that progressively transform data. Vincenzo Gulisano, Marina Papatriantafilou, Alessandro Margara |
Middleware | 3 |
| 2024 | The Renoir Dataflow Platform: Efficient Data Processing without ComplexityabstractToday, data analysis drives the decision-making process in virtually every human activity. This demands for software platforms that offer simple programming abstractions to express data analysis tasks and that can execute them in an efficient and scalable way. State-of-the-art solutions range from low-level programming primitives, which give control to the developer about communication and resource usage, but require significant effort to develop and optimize new algorithms, to high-level platforms that hide most of the complexities of parallel and distributed processing, but often at the cost of reduced efficiency. To reconcile these requirements, we developed Renoir, a novel distributed data processing platform written in Rust. Renoir provides a high-level dataflow programming model as mainstream data processing systems. It supports static and streaming data, it enables data transformations, grouping, aggregation, iterative computations, and time-based analytics, and it provides all these features incurring in a low overhead. In this paper, we present the programming model and the implementation details of Renoir. We evaluate it under heterogeneous workloads. We compare it with state-of-the-art solutions for data analysis and high-performance computing, as well as alternative research products, which offer different programming abstractions and implementation strategies. Renoir programs are compact and easy to write: developers need not care about low-level concerns such as resource usage, data serialization, concurrency control, and communication. At the same time, Renoir consistently presents comparable or better performance than competing solutions, by a large margin in several scenarios. We conclude that Renoir offers a good tradeoff between simplicity and performance, allowing developers to easily express complex data analysis tasks and achieve high performance and scalability. Luca De Martini, Alessandro Margara, Gianpaolo Cugola, Marco Donadoni, Edoardo Morassutto |
Future Gener. Comput. Syst. | 2 |
| 2024 | Cromlech: Semi-Automated Monolith Decomposition Into MicroservicesabstractMicroservices architectures conceive an application as a composition of loosely-coupled sub-systems that are developed, deployed, maintained, updated, and scaled independently. Compared to monoliths, microservices speed up evolution and increase flexibility. For these reasons they are becoming the reference architecture for many practitioners. A key challenge to embrace a microservices architecture is how to decompose an application into microservices: a choice that deeply affects all subsequent development phases in ways that are difficult to foresee and evaluate. Without any tool to support their reasoning, developers may erroneously evaluate the various alternatives, leading to inaccurate decomposition choices that would result in increased development, operations, and maintenance costs. This paper tackles the problem with Cromlech, a semi-automatic tool to decompose a software system into microservices. Cromlech (i) takes in input a high-level model of the system in terms of functionalities and data entities accessed by those functionalities, (ii) formulates decomposition as an optimization problem, and (iii) outputs a proposed placement of functionalities and data onto microservices, using a visual representation that helps reasoning on the resulting architecture. Cromlech evaluates design concerns, communication overheads, data management requirements, opportunities and costs of data replication. Our evaluation on a real-world industrial application shows that Cromlech consistently delivers more efficient solutions than simple heuristics and state-of-the-art approaches, and provides useful insights to developers. Giovanni Quattrocchi, Davide Cocco, Simone Staffa, Alessandro Margara, Gianpaolo Cugola |
IEEE Trans. Serv. Comput. | 4 |
| 2022 | COMET: Co-simulation of Multi-Energy Systems for Energy TransitionabstractThe ongoing energy transition to reduce carbon emissions presents some of the most formidable challenges the energy sector has ever experienced, requiring a paradigm change that involves diverse players and heterogeneous concerns, including regulations, economic drivers, societal, and environmental aspects. Central to this transition is the adoption of integrated Multi-Energy Systems (MES) to efficiently produce, distribute, store, and convert energy among different vectors. A deep understanding of MES is fundamental to harness the potential for energy savings and foster energy transition towards a low carbon future. Unfortunately, the inherent complexity of MES makes them extremely difficult to analyze, understand, design and optimize. This work proposes a digital twin co-simulation platform that provides a structured basis to design, develop and validate novel solutions and technologies for multi-energy system. The platform will enable the definition of a virtual representation of the real-world (digital twin) as a composition of models (co-simulation) that analyze the environment from multiple viewpoints and at different spatio-temporal scales. Luca Barbierato, Daniele Salvatore Schiera, Rossano Scoccia, Alessandro Margara, Lorenzo Bottaccioli, Edoardo Patti |
COMPSAC | 4 |
| 2021 | Temporal Pattern Recognition in Graph Data StructuresabstractGraph data structures model relations between entities in various domains. Graph processing systems enable scalable distributed computations over large graphs, but are limited to static scenarios in which the structure of the graph does not change. However, many applications are dynamic in nature, and this reflects to graphs that continuously evolve over time. In these contexts, understanding the evolution of graphs is key to enable timely reactions when necessary. We address this problem by proposing a new model to express temporal patterns over graph data structures. The model seamlessly integrates computations over graphs to extract relevant values, and temporal operators that define patterns of interest in the evolution of the graph. We present the syntax and semantics of our model and discuss its concrete implementation in FlowGraph, a middleware for temporal pattern recognition in large scale graphs. FlowGraph presents a level of performance that is comparable to state-of-the-art graph processing tools when processing static graphs. In the presence of temporal patterns, it can further optimize processing by avoiding complex graph computations until strictly necessary for pattern evaluation. Pietro Daverio, Hassan Nazeer Chaudhry, Alessandro Margara, Matteo G. Rossi |
IEEE BigData | 3 |
| 2021 | RStream: Simple and Efficient Batch and Stream Processing at ScaleabstractDistributed data processing platforms aim to provide a balance between ease of use and performance. The question is: do they succeed? Systems like Apache Spark or Apache Flink offer a high-level programming model that results in simple and concise definition of the processing tasks, abstracting away most of the concerns associated to concurrency and distribution but at the cost of a large performance gap with custom programs that use low-level primitives to control distribution and resource usage. May we fill this gap? May alternative design choices yield better performance without sacrificing simplicity?This paper answers the above questions by introducing RStream, a novel data processing platform written in Rust. RStream provides a high-level programming model similar to that of mainstream data processing systems, which supports batch and stream processing, data transformations, grouping, aggregation, iterative computations, and time-based analytics, incurring in a much lower overhead, closer to that of custom, low-level code. In numerical terms, our evaluation shows that RStream programs present nearly identical complexity as similar programs written in Flink, delivering from 2× to 20× the throughput of Flink, rivaling custom MPI implementations. Alessio Fino, Alessandro Margara, Gianpaolo Cugola, Marco Donadoni, Edoardo Morassutto |
IEEE BigData | 2 |
| 2021 | Pangaea: Semi-automated Monolith Decomposition into Microservices
Simone Staffa, Giovanni Quattrocchi, Alessandro Margara, Gianpaolo Cugola |
ICSOC | 3 |
| 2020 | ConSysT: tunable, safe consistency meets object-oriented programmingabstractData replication is essential in scenarios like geo-distributed datacenters, but poses challenges for data consistency. Developers adopt Strong consistency at the cost of performance or embrace Weak consistency and face a higher programming complexity. We argue that languages should associate consistency to data types. We present , a programming language and middleware that provides abstractions to specify consistency types, enabling mixing different consistency levels in the same application. Such mechanism is fully integrated with object-oriented programming and type system guarantees that different levels can only be mixed correctly. Mirko Köhler 0001, Nafise Eskandani, Alessandro Margara, Guido Salvaneschi |
FTfJP@ECOOP | 3 |
| 2020 | TSpoon: Transactions on a stream processor
Lorenzo Affetti, Alessandro Margara, Gianpaolo Cugola |
J. Parallel Distributed Comput. | 2 |
| 2020 | Rethinking safe consistency in distributed object-oriented programmingabstractLarge scale distributed systems require to embrace the trade off between consistency and availability, accepting lower levels of consistency to guarantee higher availability. Existing programming languages are, however, agnostic to this compromise, resulting in consistency guarantees that are the same for the whole application and are implicitly adopted from the middleware or hardcoded in configuration files. In this paper, we propose to integrate availability in the design of an object-oriented language, allowing developers to specify different consistency and isolation constraints in the same application at the granularity of single objects. We investigate how availability levels interact with object structure and define a type system that preserves correct program behavior. Our evaluation shows that our solution performs efficiently and improves the design of distributed applications. Mirko Köhler 0001, Nafise Eskandani, Pascal Weisenburger, Alessandro Margara, Guido Salvaneschi |
Proc. ACM Program. Lang. | 4 |
| 2018 | Efficient Temporal Reasoning on Streams of Events with DOTR
Alessandro Margara, Gianpaolo Cugola, Dario Collavini, Daniele Dell'Aglio |
ESWC | 1 |
| 2018 | A Survey of Recent Trends in Testing Concurrent Software SystemsabstractMany modern software systems are composed of multiple execution flows that run simultaneously, spanning from applications designed to exploit the power of modern multi-core architectures to distributed systems consisting of multiple components deployed on different physical nodes. We collectively refer to such systems as concurrent systems. Concurrent systems are difficult to test, since the faults that derive from their concurrent nature depend on the interleavings of the actions performed by the individual execution flows. Testing techniques that target these faults must take into account the concurrency aspects of the systems. The increasingly rapid spread of parallel and distributed architectures led to a deluge of concurrent software systems, and the explosion of testing techniques for such systems in the last decade. The current lack of a comprehensive classification, analysis and comparison of the many testing techniques for concurrent systems limits the understanding of the strengths and weaknesses of each approach and hampers the future advancements in the field. This survey provides a framework to capture the key features of the available techniques to test concurrent software systems, identifies a set of classification criteria to review and compare the available techniques, and discusses in details their strengths and weaknesses, leading to a thorough assessment of the field and paving the road for future progresses. Francesco A. Bianchi, Alessandro Margara, Mauro Pezzè |
IEEE Trans. Software Eng. | 2 |
| 2018 | On the Semantics of Distributed Reactive Programming: The Cost of ConsistencyabstractThe reactive programming paradigm aims to simplify the development of reactive systems. It provides abstractions to define time-changing values that are automatically updated by the runtime according to their dependencies. The benefits of reactive programming in distributed settings have been recognized for long. Yet, existing solutions for distributed reactive programming enforce the same semantics as in single processes, introducing communication and synchronization costs that hamper scalability. Establishing suitable abstractions for distributed reactive programming demands for a deeper investigation of the semantics of change propagation. This paper takes a foundational approach and defines precise propagation semantics in terms of consistency guarantees that constrain the order and isolation of value updates. We study the benefits and costs of these consistency guarantees both theoretically and empirically, using case studies and synthetic benchmarks. We show that different applications require different levels of consistency and that manually implementing the required level on a middleware that provides a lower one annuls the abstraction improvements of reactive programming. This motivates a framework that enables the developers to select the best trade-off between consistency and overhead for the problem at hand. To this end, we present DREAM, a distributed reactive programming middleware with flexible consistency guarantees. Alessandro Margara, Guido Salvaneschi |
IEEE Trans. Software Eng. | 1 |
| 2017 | Consistency Types for Safe and Efficient Distributed ProgrammingabstractConsistency is a long standing problem in distributed systems. Low consistency levels are considered a necessity for scalability. High consistency is required for critical tasks such as payment and identification. Modern (geo-)distributed systems rely on the data propagation mechanisms and consistency guarantees of the distributed data store they build upon, which makes the implementation of a system that mixes different levels of consistency complex and error prone. In this paper we present preliminary work on ConSysT, a programming language that supports heterogeneous consistency specifications at the type level. In ConSysT, developers assign consistency levels directly to the data and the type system ensures the correct behavior of the application even with computations that mix data at multiple consistency levels. Our vision is that the ConSysT runtime automatically determines the most efficient mechanism to achieve the desired level of consistency among those offered by the underlying data store. Alessandro Margara, Guido Salvaneschi |
FTfJP@ECOOP | 1 |
| 2017 | Break the Windows: Explicit State Management for Stream Processing Systems
Alessandro Margara, Daniele Dell'Aglio, Abraham Bernstein |
EDBT | 1 |
| 2017 | High-Throughput Subset Matching on Commodity GPU-Based SystemsabstractLarge-scale information processing often relies on subset matching for data classification and routing. Examples are publish/subscribe and stream processing systems, database systems, social media, and information-centric networking. For instance, an advanced Twitter-like messaging service where users might follow specific publishers as well as specific topics encoded as tag sets must join a stream of published messages with the users and their preferred tag sets so that the user tag set is a subset of the message tags. Daniele Rogora, Michele Papalini, Koorosh Khazaei, Alessandro Margara, Antonio Carzaniga, Gianpaolo Cugola |
EuroSys | 4 |
| 2015 | Dynamic Data Flow Testing of Object Oriented SystemsabstractData flow testing has recently attracted new interest in the context of testing object oriented systems, since data flow information is well suited to capture relations among the object states, and can thus provide useful information for testing method interactions. Unfortunately, classic data flow testing, which is based on static analysis of the source code, fails to identify many important data flow relations due to the dynamic nature of object oriented systems. In this paper, we propose a new technique to generate test cases for object oriented software. The technique exploits useful inter-procedural data flow information extracted dynamically from execution traces for object oriented systems. The technique is designed to enhance an initial test suite with test cases that exercise complex state based method interactions. The experimental results indicate that dynamic data flow testing can indeed generate test cases that exercise relevant behaviors otherwise missed by both the original test suite and by test suites that satisfy classic data flow criteria. Giovanni Denaro, Alessandro Margara, Mauro Pezzè, Mattia Vivanti |
ICSE (1) | 2 |
| 2015 | Reactive Programming: A WalkthroughabstractOver the last few years, Reactive Programming has emerged as the trend to support the development of reactive software through dedicated programming abstractions. Reactive Programming has been increasingly investigated in the programming languages community and it is now gaining the interest of practitioners. Conversely, it has received so far less attention from the software engineering community. This technical briefing bridges this gap through an accurate overview of Reactive Programming, discussing the available frameworks and outlining open research challenges with an emphasis on cross-field research opportunities. Guido Salvaneschi, Alessandro Margara, Giordano Tamburrelli |
ICSE (2) | 2 |
| 2014 | AJIRA: A Lightweight Distributed Middleware for MapReduce and Stream ProcessingabstractCurrently, MapReduce is the most popular programming model for large-scale data processing and this motivated the research community to improve its efficiency either with new extensions, algorithmic optimizations, or hardware. In this paper we address two main limitations of MapReduce: one relates to the model's limited expressiveness, which prevents the implementation of complex programs that require multiple steps or iterations. The other relates to the efficiency of its most popular implementations (e.g., Hadoop), which provide good resource utilization only for massive volumes of input, operating sub optimally for smaller or rapidly changing input. To address these limitations, we present AJIRA, a new middleware designed for efficient and generic data processing. At a conceptual level, AJIRA replaces the traditional map/reduce primitives by generic operators that can be dynamically allocated, allowing the execution of more complex batch and stream processing jobs. At a more technical level, AJIRA adopts a distributed, multi-threaded architecture that strives at minimizing overhead for non-critical functionality. These characteristics allow AJIRA to be used as a single programming model for both batch and stream processing. To this end, we evaluated its performance against Hadoop, Spark, Esper, and Storm, which are state of the art systems for both batch and stream processing. Our evaluation shows that AJIRA is competitive in a wide range of scenarios both in terms of processing time and scalability, making it an ideal choice where flexibility, extensibility, and the processing of both large and dynamic data with a single programming model are either desirable or even mandatory requirements. Jacopo Urbani, Alessandro Margara, Ceriel J. H. Jacobs, Spyros Voulgaris, Henri E. Bal |
ICDCS | 2 |
| 2014 | Towards Automated A/B Testing
Giordano Tamburrelli, Alessandro Margara |
SSBSE | 2 |
| 2014 | High-Performance Publish-Subscribe Matching Using Parallel HardwareabstractMatching incoming event notifications against received subscriptions are a fundamental part of every publish-subscribe infrastructure. In the case of content-based systems this is a fairly complex and time consuming task, whose performance impacts that of the entire system. In the past, several algorithms have been proposed for efficient content-based event matching. While they differ in most aspects, they have in common the fact of being conceived to run on conventional, sequential hardware. On the other hand, parallel hardware is becoming available off-the-shelf: the number of cores inside CPUs is constantly increasing, and CUDA makes it possible to access the power of GPU hardware for general purpose computing. In this paper, we describe a new publish-subscribe content-based matching algorithm designed to run efficiently both on multicore CPUs and CUDA GPUs. A detailed comparison with two state-of-the-art sequential matching algorithms demonstrates how the use of parallel hardware can bring impressive speedups in content-based matching. At the same time, our analysis identifies the characteristic aspects of multicore and CUDA programming that mostly impact performance. Alessandro Margara, Gianpaolo Cugola |
IEEE Trans. Parallel Distributed Syst. | 1 |
| 2014 | Streaming the Web: Reasoning over dynamic data
Alessandro Margara, Jacopo Urbani, Frank van Harmelen, Henri E. Bal |
J. Web Semant. | 1 |
| 2013 | Seven Commandments for Benchmarking Semantic Flow Processing Systems
Thomas Scharrenbach, Jacopo Urbani, Alessandro Margara, Emanuele Della Valle, Abraham Bernstein |
ESWC | 3 |
| 2013 | DynamiTE: Parallel Materialization of Dynamic RDF Data
Jacopo Urbani, Alessandro Margara, Ceriel J. H. Jacobs, Frank van Harmelen, Henri E. Bal |
ISWC (1) | 2 |
| 2012 | High-Performance Location-Aware Publish-Subscribe on GPUs
Gianpaolo Cugola, Alessandro Margara |
Middleware | 2 |
| 2012 | Low latency complex event processing on parallel hardware
Gianpaolo Cugola, Alessandro Margara |
J. Parallel Distributed Comput. | 2 |
| 2012 | Complex event processing with T-REX
Gianpaolo Cugola, Alessandro Margara |
J. Syst. Softw. | 2 |
| 2009 | Context-aware publish-subscribe: Model, implementation, and evaluationabstractComplex communication patterns often need to take into account the situation in which the information to be communicated is produced or consumed. Publish-subscribe, and particularly its content-based incarnation, is often used to convey this information by encoding the ldquocontextrdquo of the publisher into the published messages. In this paper we claim that this approach is limiting and inefficient and propose a context-aware publish-subscribe model of communication as a better alternative. We describe a protocol that implements such model in a distributed publish-subscribe middleware, and analyze how it performs w.r.t. traditional content-based routing. Gianpaolo Cugola, Alessandro Margara, Matteo Migliavacca |
ISCC | 2 |