Eduardo C. de Almeida

dblp:53/2190 · also Eduardo Cunha de Almeida · DBLP profile ↗
← Back
23ranked-venue papers in the field
0as first author
6since 2021 · last 2026
0000-0002-6644-956XORCID · verified

Domains — venue-derived; a paper can count in several

Database Systems & Data Management · 19Information Retrieval & Web Search · 2Big Data, Cloud & Distributed Data Systems · 1Business Process & Enterprise Data · 1
YearPublicationVenuePosition
2026 Discovering Approximate Denial Constraints in Large Databases
Albert Martin, Eduardo C. de Almeida, Oscar Romero 0001, Anna Queralt
Proc. VLDB Endow.2
2025 The Wrecking SQL Incremental Validation Methodology
Ruanitto Docini, Eduardo C. de Almeida, Luiz Eduardo Soares de Oliveira
DEXA (2)2
2025 How and Why False Denial Constraints are Discovered
abstract
Denial Constraints (DCs) are a flexible formalism to express many types of data rules, making them a widely adopted tool for many applications. This flexibility led to the development of numerous algorithms to automatically discover DCs directly from data. However, few studies have been conducted on the quality of the discovered DCs. We experimentally quantify the lack of quality in the results obtained by state-of-the-art algorithms, showing how the proportion of discovered DCs that are false is rarely below 95%. We hypothesize that the common source of these erroneous DCs stems from the adoption of the current DC validity definition. We use a statistical approach to explain the mechanism leading to these results, and propose a redefinition of DC validity properties to avoid the acceptance of false DCs. We validate this redefinition experimentally, showing that it exclusively accepts true constraints of the data, and is reliable enough to discover DCs missed by domain experts. Additionally, we provide curated sets of golden DCs for each dataset used in our study, those generated by domain experts and those discovered using our approach.
Albert Martin, Eduardo C. de Almeida, Oscar Romero 0001, Anna Queralt
Proc. VLDB Endow.2
2023 NoGar: A Non-cooperative Game for Thread Pinning in Array Databases
Simone Dominico, Marco A. Z. Alves, Eduardo C. de Almeida
DEXA (1)3
2021 Multidimensional Adaptive & Progressive Indexes
abstract
Exploratory data analysis is the primary technique used by data scientists to extract knowledge from new data sets. This type of workload is composed of trial-and-error hypothesis-driven queries with a human in the loop. To keep up with the data scientist's productivity, the system must be capable of answering queries in interactive times. Given that these queries are highly selective multidimensional queries, multidimensional indexes are necessary to ensure low latency. However, creating the appropriate indexes is not a given due to the highly exploratory and interactive nature of such human-in-the-loop scenarios.In this paper, we identify four main objectives that are desirable for exploratory data analysis workloads: (1) low overhead over the initial queries, (2) low query variance (i.e., high robustness), (3) predictable index convergence, and (4) low total workload time. Given that not all of them can be achieved at the same time, we present three novel incremental multidimensional indexing techniques that represent three sample points on a Pareto front for this multi-objective optimization problem. (a) The Adaptive KD-Tree is designed to achieve the lowest total workload time at the expense of a higher indexing penalty for the initial queries, lack of robustness, and unpredictable convergence. (b) The Progressive KD-Tree has predictable convergence and a user-defined indexing cost for the initial queries. However, total workload time can be higher than with Adaptive KD-Trees, and per-query time still varies. (c) The Greedy Progressive KD-Tree aims at full robustness at the expense of only improving the per-query cost after full index convergence.Our extensive experimental evaluation using both synthetic and real-life data sets and workloads shows that (a) the Adaptive KD-Tree reduces total workload time by up to a factor 2 compared to the state-of-the-art, (b) the Progressive KD-Tree achieves predictable convergence with up to one order of magnitude lower initial query cost, and (c) the Greedy Progressive KDTree exhibits the lowest query variance up to three orders of magnitude lower than the state-of-the-art.
Matheus Nerone, Pedro Holanda, Eduardo C. de Almeida, Stefan Manegold
ICDE3
2021 Fast Detection of Denial Constraint Violations
abstract
The detection of constraint-based errors is a critical task in many data cleaning solutions. Previous works perform the task either using traditional data management systems or using specialized systems that speed up error detection. Unfortunately, both approaches may fail to execute in a reasonable time or even exhaust the available memory in the attempt. To address the main drawbacks of previous approaches, we present the FAst Constraint-based Error DeTector (FACET) to detect violations of denial constraints (DCs). FACET uses column sketch information to organize a pipeline of special operators for DC predicates and it implements these operators using a set of efficient algorithms and data structures that adapt to different data characteristics and predicate structures. We evaluate our system on a diverse array of datasets and constraints, showing its robustness and performance gains compared to different types of DBMSs and to a specialized system.
Eduardo H. M. Pena, Eduardo C. de Almeida, Felix Naumann
Proc. VLDB Endow.2
2020 Uncovering Performance Interference of Multi-Tenants in Big Data Environments
abstract
In big data environments, measuring performance interference while sharing resources is complex and not well covered by current benchmarks and tools. Different applications can compete for the same resources (e.g., persistent storage) until they become overloaded without notice either by the benchmark or the big data system. We unveil the case when RocksDB (a big data management system) shares disk flashes among multiple tenants and how YCSB and db_bench (two state-of-the-art big data benchmarks) fail to catch performance interference. In this paper, we define a methodology to measure the problem of performance interference over time and show how RocksDB quickly degrades throughput until it turns almost inoperative while sharing the persistent storage with other tenants.
Adriano Lange, Tiago Rodrigo Kepe, Eduardo C. de Almeida, Marcos Sfair Sunyé
IEEE BigData3
2020 Efficient Detection of Data Dependency Violations
abstract
Research on data dependencies has experienced a revival as dependency violations can reveal errors in data. Several data cleaning systems use a DBMS to detect such violations. While DBMSs are efficient for some kinds of data dependencies (e.g., unique constraints), they are likely to fall short of satisfactory performance for more complex ones, such as order dependencies.
Eduardo H. M. Pena, Edson Ramiro Lucas Filho, Eduardo C. de Almeida, Felix Naumann
CIKM3
2020 A Framework for Analyzing the Impact of Missing Data in Predictive Models
abstract
We propose a stochastic framework to evaluate the impact of missing data on the performance of predictive models. The framework allows full control of important aspects of the data set structure. These include the number and type of the input variables, the correlation between the input variables and their general predictive power, and sample size. The missing process is generated from a multivariate Bernoulli distribution, which allows us to simulate missing patterns corresponding to the MCAR, MAR and MNAR mechanisms. Although the framework may be applied to virtually all types of predictive models, in this article, we focus on the logistic regression model and choose the accuracy as the predictive measure. The simulation results show that the effects of missing data disappear for large sample sizes, as expected. On the other hand, as the number of input variables increases, the accuracy decreases mainly for binary inputs.
Fabiola Santore, Eduardo C. de Almeida, Wagner Hugo Bonat, Eduardo H. M. Pena, Luiz Eduardo Soares de Oliveira
CIKM2
2019 Database Processing-in-Memory: A Vision
Tiago Rodrigo Kepe, Eduardo C. de Almeida, Marco A. Z. Alves, Jorge Augusto Meira
DEXA (1)2
2019 Don't Tune Twice: Reusing Tuning Setups for SQL-on-Hadoop Queries
Edson Ramiro Lucas Filho, Eduardo C. de Almeida, Stefanie Scherzinger
ER2
2019 Database Processing-in-Memory: An Experimental Study
abstract
The rapid growth of "big-data" intensified the problem of data movement when processing data analytics: Large amounts of data need to move through the memory up to the CPU before any computation takes place. To tackle this costly problem, Processing-in-Memory (PIM) inverts the traditional data processing by pushing computation to memory with an impact on performance and energy efficiency. In this paper, we present an experimental study on processing database SIMD operators in PIM compared to current x86 processor (i.e., using AVX512 instructions). We discuss the execution time gap between those architectures. However, this is the first experimental study, in the database community, to discuss the trade-offs of execution time and energy consumption between PIM and x86 in the main query execution systems: materialized, vectorized, and pipelined. We also discuss the results of a hybrid query scheduling when interleaving the execution of the SIMD operators between PIM and x86 processing hardware. In our results, the hybrid query plan reduced the execution time by 45%. It also drastically reduced energy consumption by more than 2x compared to hardware-specific query plans.
Tiago Rodrigo Kepe, Eduardo C. de Almeida, Marco A. Z. Alves
Proc. VLDB Endow.2
2019 Discovery of Approximate (and Exact) Denial Constraints
abstract
Maintaining data consistency is known to be hard. Recent approaches have relied on integrity constraints to deal with the problem - correct and complete constraints naturally work towards data consistency. State-of-the-art data cleaning frameworks have used the formalism known as denial constraint (DC) to handle a wide range of real-world constraints. Each DC expresses a relationship between predicates that indicate which combinations of attribute values are inconsistent. The design of DCs, however, must keep pace with the complexity of data and applications. The alternative to designing DCs by hand is automatically discovering DCs from data, which is computationally expensive due to the large search space of DCs. To tackle this challenging task, we present a novel algorithm to efficiently discover DCs: DCFinder. The algorithm combines data structures called position list indexes with techniques based on predicate selectivity to efficiently validate DC candidates. Because the available data often contain errors, DCFinder is especially designed to discovering approximate DCs, i.e., DCs that may partially hold. Our experimental evaluation uses real and synthetic datasets and shows that DCFinder outperforms all the existing approximate DC discovery algorithms.
Eduardo H. M. Pena, Eduardo C. de Almeida, Felix Naumann
Proc. VLDB Endow.2
2018 Cracking KD-Tree: The First Multidimensional Adaptive Indexing (Position Paper)
abstract
Workload-aware physical data access structures are crucial to achieve short response time with (exploratory) data analysis tasks as commonly required for Big Data and Data Science applications. Recently proposed techniques such as automatic index advisers (for a priori known static workloads) and query-driven adaptive incremental indexing (for a priori unknown dynamic workloads) form the state-of-the-art to build single-dimensional indexes for single-attribute query predicates. However, similar techniques for more demanding multi-attribute query predicates, which are vital for any data analysis task, have not been proposed, yet. In this paper, we present our on-going work on a new set of workload-adaptive indexing techniques that focus on creating multidimensional indexes. We present our proof-of-concept, the Cracking KD-Tree, an adaptive indexing approach that generates a KD-Tree based on multidimensional range query predicates. It works by incrementally creating partial multidimensional indexes as a by-product of query processing. The indexes are produced only on those parts of the data that are accessed, and their creation cost is effectively distributed across a stream of queries. Experimental results show that the Cracking KD-Tree is three times faster than creating a full KD-Tree, one order of magnitude faster than executing full scans and two orders of magnitude faster than using uni-dimensional full or adaptive indexes on multiple columns.
Pedro Holanda, Matheus Nerone, Eduardo C. de Almeida, Stefan Manegold
DATA3
2018 BFASTDC: A Bitwise Algorithm for Mining Denial Constraints
Eduardo H. M. Pena, Eduardo C. de Almeida
DEXA (1)2
2018 An Elastic Multi-Core Allocation Mechanism for Database Systems
abstract
peer reviewed
Simone Dominico, Eduardo C. de Almeida, Jorge Augusto Meira, Marco A. Z. Alves
ICDE2
2017 A PetriNet mechanism for OLAP in NUMA
abstract
In the parallel execution of queries in Non-Uniform Memory Access (NUMA), the operating system maps database processes/threads (i.e., workers) to the available cores across the NUMA nodes. However, this mapping results in poor cache activity with many minor page faults and slower query response time when workers and data are allocated in different NUMA nodes. The system needs to move large volumes of data around the NUMA nodes to catch up with the running workers. Our hypothesis is that we mitigate the data movement to boost cache hits and response time if we only hand out to the system the local optimum number of cores instead of all the available ones. In this paper we present a PetriNet mechanism that represents the load of the database workers for dynamically computing and allocating the local optimum number of CPU cores to tackle such load. Preliminary results show that data movement diminishes with the local optimum number of CPU cores.
Simone Dominico, Eduardo C. de Almeida, Jorge Augusto Meira
DaMoN2
2017 SPST-Index: A Self-Pruning Splay Tree Index for Caching Database Cracking
Pedro Holanda, Eduardo C. de Almeida
EDBT2
2016 "Overloaded!" - A Model-Based Approach to Database Stress Testing
Jorge Augusto Meira, Eduardo C. de Almeida, Dongsun Kim 0001, Edson Ramiro Lucas Filho, Yves Le Traon
DEXA (1)2
2016 A Case Study of the Aggregation Query Model in Read-Mostly NoSQL Document Stores
abstract
In this paper we focus on the aggregate query model implemented over NoSQL document-stores for read-mostly data bases. We discuss that the aggregate query model can be a good fit for read-mostly databases if the following design requirements are met: on-line time range queries, aggregates with predefined filters, frequent schema evolution and no ad-hoc. In our model, we present a composite object schema implementation over NoSQL document-stores, in which data associations are nested in a document under the same search key. We present the design choices to obtain a model adapted to our needs. Our schema is inspired by the star schema of Data Warehouses to reduce accessing data associations in many different documents and computing aggregates within the same composite. We present performance results of our empirical study over a 300 million records database that serves in production for the Ministry of Communications of Brazil. Results show the performance gains and penalties of our star composite schema when compared to the traditional multidimensional schema.
Diego Pasqualin, Giovanni Souza, Eduardo Luis Buratti, Eduardo C. de Almeida, Marcos Didonet Del Fabro, Daniel Weingaertner
IDEAS4
2015 ControVol: A framework for controlled schema evolution in NoSQL application development
abstract
Building scalable web applications on top of NoSQL data stores is becoming common practice. Many of these data stores can easily be accessed programmatically, and do not enforce a schema. Software engineers can design the data model on the go, a flexibility that is crucial in agile software development. The typical tasks of database schema management are now handled within the application code, usually involving object mapper libraries. However, today's Integrated Development Environments (IDEs) lack the proper tool support when it comes to managing the combined evolution of the application code and of the schema. Yet simple refactorings such as renaming an attribute at the source code level can cause irretrievable data loss or runtime errors once the application is serving in production. In this demo, we present ControVol, a framework for controlled schema evolution in application development against NoSQL data stores. ControVol is integrated into the IDE and statically type checks object mapper class declarations against the schema evolution history, as recorded by the code repository. ControVol is capable of warning of common yet risky cases of mismatched data and schema. ControVol is further able to suggest quick fixes by which developers can have these issues automatically resolved.
Stefanie Scherzinger, Thomas Cerqueus, Eduardo C. de Almeida
ICDE3
2014 Intra-query adaptivity for MapReduce query processing systems
abstract
MapReduce query processing systems translate a query statement into a query plan, consisting of a set of MapReduce jobs to be executed in distributed machines. During query translation, these query systems uniformly allocate computing resources to each job by delegating the same tuning to the entire query plan. However, jobs may implement their own collection of operators, which lead to different usage of computing resources. In this paper we propose an adaptive tuning mechanism that enables setting specific resources to each job within a query plan. Our adaptive mechanism relies on a data structure that maps jobs to tuning codes by analyzing source code and log files. This adaptive mechanism allows delegating specific resources to the query plan at runtime as the data structure hosts specific pre-computed tuning codes.
Edson Ramiro Lucas Filho, Eduardo C. de Almeida, Yves Le Traon
IDEAS2
2014 A state machine for database non-functional testing
abstract
Over the last decade, large amounts of concurrent transactions have been generated from different sources, such as, Internet-based systems, mobile applications, smart-homes and cars. High-throughput transaction processing is becoming commonplace, however there is no testing technique for validating non functional aspects of DBMS under transaction flooding workloads. In this paper we propose a database state machine to represent the states of DBMS when processing concurrent transactions. The state transitions are forced by increasing concurrency of the testing workload. Preliminary results show the effectiveness of our approach to drive the system among different performance states and to find related defects.
Jorge Augusto Meira, Eduardo C. de Almeida, Yves Le Traon
IDEAS2