The NVMeVirt paper analyzes the implication of storage performance on database engine performance to promote the tunable performance of NVMeVirt. They perform analysis on two very popular database engines, MariaDB and PostgreSQL. The result shows that MariaDB is more efficient when the storage is slow, but PostgreSQL outperforms MariaDB as I/O bandwidth increases. Although this verifies that NVMeVirt can support advanced storage bandwidth configurations, the paper does not provide a clear explanation of why two database engines react very differently to the storage performance. To understand why the above two database engines have different performance characteristics, we conduct a study of the database engine's internals. We focus on three major differences in Multi-version concurrency control (MVCC) implementations: version storage, garbage collection, and index management. We also evaluated each scheme's I/O overhead using OLTP workload. Our analysis identifies the reason why MariaDB outperforms PostgreSQL when the bandwidth is low.
Abstrak Sistem database merupakan bagian yang tak terpisahkan dari aplikasi berskala enterprise . Data didalamnya merupakan aset yang sangat penting, sehingga data tersebut tidak boleh rusak terlebih lagi hilang. Itulah sebabnya mengapa reliabilitas dan availabilitas sistem database menjadi hal yang sangat penting. Berbagai cara telah dikembangkan untuk meningkatkan reliabilitas dan availabilitas sebuah sistem database , salah satunya adalah teknik replikasi. MariaDB Galera Cluster adalah salah satu DBMS open source populer yang memiliki mekanisme replikasi. MariaDB Galera Cluster memiliki beberapa metode State Snapshot Transfer (SST) pada saat proses replikasi, yaitu rsync, mysqldump, xtrabackup, xtrabackup-v2. Kurangnya pemahaman administrator sistem terhadap perilaku tiap metode SST dapat mengakibatkan error pada sistem database . Untuk mencegahnya diperlukan analisis yang mendalam tentang dampak dan perilaku metode SST yang digunakan. Penelitian ini fokus pada analisis kinerja dari metode SST jenis rsync. Rsync dipilih karena metode ini merupakan metode SST default yang digunakan oleh MariaDB Galera Cluster. Dari hasil percobaan disimpulkan bahwa jumlah node dalam klaster menjadi hal yang perlu menjadi perhatian. Klaster yang hanya memiliki dua node akan sangat rentan terkena gangguan jika salah satu node terputus koneksinya atau mengalami down atau crash , sehingga jumlah node minimal dalam satu klaster yang disarankan adalah tiga node agar availabilitas dan reliabilitas MariaDB Galera Cluster dapat terjaga dengan baik. Kata kunci : database, klaster, availabilitas, reliabilitas, MariaDB Galera Cluster Abstract The database system is an integral part of enterprise-scale applications. The data in it is a very important asset, so it may not be damaged or lost. That’s why the reliability and availability of the database system become very important. Various ways have been developed to improve the reliability and availability of a database system, one of them is a replication technique. MariaDB Galera Cluster is one of the popular open-source DBMS that has a replication mechanism. MariaDB Galera Cluster has several methods of doing Snapshot State Transfer (SST) during the replication process, namely rsync, mysqldump, xtrabackup, xtrabackup-v2. Lack of understanding by the system administrator of the behavior of every SST method can lead to errors in the database system. To prevent it, depth analysis of the impact and the behavior of the SST methods is required. This study focused on analyzing the performance of rsync SST method. Rsync is chosen because it is the default SST method used by MariaDB Galera Cluster. The experimental results show that the number of nodes in a cluster should be concerned. Clusters which only have two nodes would be highly vulnerable to disruption if one node disconnected or experience down or crash. We recommend the minimum number of nodes in a cluster is three so that the availability and reliability of MariaDB Galera Cluster can be properly maintained. Keywords : database, cluster, availability, reliability, MariaDB Galera Cluster
Debug, secure, and back up your data for optimum server performance with MariaDB About This BookMonitor database activity and the major operating system parameters to improve performanceTweak the behaviour of a large number of servers to achieve the desired level of stability and reliabilitySolve the typical problems related to running a server, such as slow queries, long locks, and so onA practical guide to implementing MariaDB to administrate servers and improve their performanceWho This Book Is ForThis book is intended for intermediate users who want to learn how to administrate a MariaDB server or a set of servers. It is aimed at MariaDB users, and hence working knowledge of MariaDB is a prerequisite. In Detail MariaDB is a community-driven fork of MySQL, and is a relational DBMS that can be used to build reliable, high-performance database servers. MariaDB combines MySQL characteristics such as replication, backup and disaster recovery, transactions and locks, and also includes important improvements to the performance, stability, security, and monitoring capabilities.Mastering MariaDBstarts with an overview of the basic features and mechanisms, which includes diagnosing and solving real-life problems such as data corruption, poorly performing queries, and deadlocks. You will learn how to improve the performance of a server by identifying slow queries, and how to choose and set up a proper backup plan and recover data when disasters occur. You will learn how to share your data through several servers using replication. By the end of this book, you will be able to configure MariaDB servers, diagnose as well as troubleshoot common transactional problems, and execute database maintenance.
This article examines the advantages and disadvantages of installing Moodle's popular learning management system using MySQL, MariaDB, Apache, and Internet Information Services. It considers the impact of these choices on performance, database server speed, and cyber security, which is critical for dealing with many users and students whose numbers have increased dramatically since the onset of the global pandemic caused by the SARS-CoV-2 virus. It has been determined that IIS/MariaDB represents the optimal configuration for Windows-based systems, while Apache/MySQL is optimal for Linux distributions. The selection of specific solutions should be based on the particular needs of the educational institution in question, the available infrastructure, and the financial capabilities of the institution in question. MariaDB's functionality is enhanced by including the Galera Cluster, which offers a higher throughput than MySQL's. Both IIS and Apache have some advantages and disadvantages. The decision to use one or the other is made based on the choice of operating system.
Dalam penelitian ini dilakukan pengujian kinerja query antara database MySQL dan MariaDB dengan jumlah record data (50, 100, 500, 1000, 5000, 10000, 100000) . Query yang diujiadalah : DML (Data Manipulation Language) terdiri dari insert, update, select. Agr e gat function terdiri dari average, count, max, min, sum. Operator penghubung (Operator AND OR). Stored Procedure dan Trigger . Penelitian ini bertujuan untuk memberikan analisis perbandingan kinerja antara MySQL dan MariaDB. Database MySQL dan MariaDB mempunya i kecepatan waktu yang berbeda dalam perbandingan kinerja query dengan jumlah record data dari 50 record hingga 100000 record data. Database MySQL terbukti memiliki keunggulan kecepatan waktu dibanding MariaDB pada pengujian stored procedure. Perbedaan yang sangat signifikan terjadi pada jumlah 100000 record data. P ada pengujian T rigger Event Insert MariaDB lebih unggul dibandingkan dengan MySQL , p erbedaan yang signifikan terjadi pada pengujian 100000 record data. Pengujian Trigger Event Update MariaDB lebih unggul dibanding dengan MySQL, perbedaan yang sangat signifikan terjadi pada pengujian 10000 record data .
Traditional database fuzzing techniques primarily focus on syntactic correctness and general SQL structures, leaving critical yet obscure DBMS features, such as system-level modes (e.g., GTID), programmatic constructs (e.g., PROCEDURE), advanced process commands (e.g., KILL), largely underexplored. Although rarely triggered by typical inputs, these features can lead to severe crashes or security issues when executed under edge-case conditions. In this paper, we present FuzzySQL, a novel LLM-powered adaptive fuzzing framework designed to uncover subtle vulnerabilities in DBMS special features. FuzzySQL combines grammar-guided SQL generation with logic-shifting progressive mutation, a novel technique that explores alternative control paths by negating conditions and restructuring execution logic, synthesizing structurally and semantically diverse test cases. To further ensure deeper execution coverage of the back end, FuzzySQL employs a hybrid error repair pipeline that unifies rule-based patching with LLM-driven semantic repair, enabling automatic correction of syntactic and context-sensitive failures. We evaluate FuzzySQL across multiple DBMSs, including MySQL, MariaDB, SQLite, Pos
DBMSs are complex systems prone to bugs that may lead to system failures or compromise data integrity. Establishing unified DBMS bug repositories is crucial for systematically organizing bug-related data, enabling code improvement, and supporting automated testing. In particular, bug reports often contain valuable test inputs and bug-triggering clues that help explore rare execution paths and expose critical buggy behavior, thereby guiding automated DBMS testing. However, the heterogeneity of bug reports, along with their incomplete or inaccurate content, makes it challenging to build unified repositories and convert them into high-quality test cases. In this paper, we propose BugForge, a framework that constructs standardized DBMS bug repositories and leverages them to generate high-quality test cases to enhance DBMS testing. Specifically, BugForge progressively collects bug reports, then employs syntax-aware processing and input-adaptive raw PoC extraction to construct a DBMS bug repository. The repository stores structured bug-related data, including bug metadata and raw PoCs that entail potential bug-triggering semantics. These data are further refined into high-quality test ca
Generation-based testing techniques have shown their effectiveness in detecting logic bugs of DBMS, which are often caused by improper implementation of query optimizers. Nonetheless, existing generation-based debug tools are limited to single-table queries and there is a substantial research gap regarding multi-table queries with join operators. In this paper, we propose TQS, a novel testing framework targeted at detecting logic bugs derived by queries involving multi-table joins. Given a target DBMS, TQS achieves the goal with two key components: Data-guided Schema and Query Generation (DSG) and Knowledge-guided Query Space Exploration (KQE). DSG addresses the key challenge of multi-table query debugging: how to generate ground-truth (query, result) pairs for verification. It adopts the database normalization technique to generate a testing schema and maintains a bitmap index for result tracking. To improve debug efficiency, DSG also artificially inserts some noises into the generated data. To avoid repetitive query space search, KQE forms the problem as isomorphic graph set discovery and combines the graph embedding and weighted random walk for query generation. We evaluated TQS
Checking whether database transactions adhere to isolation levels is a crucial yet challenging problem. We present Boomslang, the first general-purpose checking framework capable of verifying configurations that were previously uncheckable. Boomslang advances beyond prior work in three key aspects: (1) it supports arbitrary operation types provided by modern transactional key-value stores, (2) it requires no knowledge of database internals, and (3) it offers a modular, extensible pipeline amenable to customization and optimizations. Boomslang adopts a front-/back-end separation. As the front-end, it parses a database trace into an Abstract Semantic Graph, which is then lowered -- via semantic analysis -- into a low-level intermediate representation (IR). The back-end converts this IR to a set of constraints for SMT solving. This design is enabled by a key abstraction in the IR, called superpositions, which capture the uncertainty and complexity caused by arbitrary operations and missing information. Our experiments show that with just 271--386 lines of code, the core logic of three prior checkers can be reimplemented as Boomslang modules, achieving comparable or superior performanc
Performance is a critical characteristic of fundamental systems, such as Database Management Systems (DBMSs). Both academia and industry have invested decades in exploring efficient optimization algorithms. Despite these efforts, DBMSs are prone to performance issues, which incur suboptimal performance. Finding such issues is a longstanding challenge as no ground-truth performance is available. Existing work adopts black-box methods to examine performance consistency across executions, but cannot systematically test optimizations. In this work, we propose a novel, general white-box methodology, Branch Flip Analysis (BFA), to systematically and effectively uncover performance issues. BFA flips code branches to enforce or disable an optimization, and the performance is expected to be not significantly better. Otherwise, a performance issue exists. BFA provides a new perspective to finding performance issues and testing optimization logics in a fine-grained manner. We realized BFA in a prototype system QueryZen, and evaluated it on four widely-used and mature DBMSs: PostgreSQL, MySQL, CockroachDB, and MariaDB. QueryZen found 21 previously unknown and unique performance issues with the
Software configuration tuning is crucial for optimising system performance, and various optimisers have emerged over the last decade. Yet, the time required during the tuning process may vary across systems. In some systems (e.g., PostgreSQL), it may take a few minutes to measure a configuration, whereas in some others (e.g., MariaDB), it can take several hours. Moreover, even within the same system, users may have varying budgets and preferred settings. This naturally raises a question -- Given a budget level, which optimiser is the best choice for SE practitioners? This matters because optimisers usually have their own ``comfort zone'' and may perform very differently under distinct budgets. In this paper, we aim to answer this question. We systematically evaluate eight well-established optimisers across 22 configurable systems under varying budget levels. We find that, unsurprisingly, model-based optimisers (e.g., SMAC) are well-suited under tight budgets, and model-free optimisers (e.g., GAs) become superior with more generous budgets. However, interestingly, there is one optimiser, FLASH, that performs consistently well on most systems regardless of budgets. We lastly investig
The performance of database management systems (DBMS) is traditionally evaluated using benchmarks that focus on workloads with (almost) fixed record lengths. However, some real-world workloads in key/value stores, document databases, and graph databases exhibit significant variability in value lengths, which can lead to performance anomalies, particularly when popular records grow disproportionately large. Existing benchmarks fail to account for this variability, leaving an important aspect of DBMS behavior underexplored. In this paper, we address this gap by extending the Yahoo! Cloud Serving Benchmark (YCSB) to include an "extend" operation, which appends data to record fields, simulating the growth of values over time. Using this modified benchmark, we have measured the performance of three popular DBMS backends: MongoDB, MariaDB with the InnoDB storage engine, and MariaDB with the MyRocks storage engine. Our experiments alternate between extending values and executing query workloads, revealing significant performance differences driven by storage engine design and their handling of variable-sized values. Our key contribution is the introduction of a novel benchmarking approach
Concurrent transaction processing is a fundamental capability of Relational Database Management Systems (RDBMSs), widely utilized in applications requiring high levels of parallel user interaction, such as banking systems, e-commerce platforms, and telecommunications infrastructure. Isolation levels offer a configurable mechanism to manage the interaction between concurrent transactions, enabling varying degrees of consistency and performance trade-offs. These isolation guarantees are supported by all major RDBMSs. However, testing transaction behavior under different isolation levels remains a significant challenge due to two primary reasons. First, automatically generating test transactions that can effectively expose bugs in transaction handling logic is non-trivial, as such bugs are typically triggered under specific transactional constraints. Second, detecting logic anomalies in transaction outcomes is difficult because the correct execution results are often unknown for randomly generated transactions. To address these challenges, we propose an anomaly pattern-guided testing approach for uncovering transaction bugs in RDBMSs. Our solution tackles the first challenge by introd
Text reuse is a methodological element of fundamental importance in humanities research: pieces of text that re-appear across different documents, verbatim or paraphrased, provide invaluable information about the historical spread and evolution of ideas. Large modern digitized corpora enable the joint analysis of text collections that span entire centuries and the detection of large-scale patterns, impossible to detect with traditional small-scale analysis. For this opportunity to materialize, it is necessary to develop efficient data science systems that perform the corresponding analysis tasks. In this paper, we share insights from ReceptionReader, a system for analyzing text reuse in large historical corpora. The system is built upon billions of instances of text reuses from large digitized corpora of 18th-century texts. Its main functionality is to perform downstream text reuse analysis tasks, such as finding reuses that stem from a given article or identifying the most reused quotes from a set of documents, with each task expressed as a database query. For the purposes of the paper, we discuss the related design choices including various database normalization levels and query
Fuzzing is an increasingly popular technique for verifying software functionalities and finding security vulnerabilities. However, current mutation-based fuzzers cannot effectively test database management systems (DBMSs), which strictly check inputs for valid syntax and semantics. Generation-based testing can guarantee the syntax correctness of the inputs, but it does not utilize any feedback, like code coverage, to guide the path exploration. In this paper, we develop Squirrel, a novel fuzzing framework that considers both language validity and coverage feedback to test DBMSs. We design an intermediate representation (IR) to maintain SQL queries in a structural and informative manner. To generate syntactically correct queries, we perform type-based mutations on IR, including statement insertion, deletion and replacement. To mitigate semantic errors, we analyze each IR to identify the logical dependencies between arguments, and generate queries that satisfy these dependencies. We evaluated Squirrel on four popular DBMSs: SQLite, MySQL, PostgreSQL and MariaDB. Squirrel found 51 bugs in SQLite, 7 in MySQL and 5 in MariaDB. 52 of the bugs are fixed with 12 CVEs assigned. In our exper
Database Management Systems (DBMS) are used ubiquitously. To efficiently access data, they apply sophisticated optimizations. Incorrect optimizations can result in logic bugs, which cause a query to compute an incorrect result set. We propose Non-Optimizing Reference Engine Construction (NoREC), a fully-automatic approach to detect optimization bugs in DBMS. Conceptually, this approach aims to evaluate a query by an optimizing and a non-optimizing version of a DBMS, to then detect differences in their returned result set, which would indicate a bug in the DBMS. Obtaining a non-optimizing version of a DBMS is challenging, because DBMS typically provide limited control over optimizations. Our core insight is that a given, potentially randomly-generated optimized query can be rewritten to one that the DBMS cannot optimize. Evaluating this unoptimized query effectively corresponds to a non-optimizing reference engine executing the original query. We evaluated NoREC in an extensive testing campaign on four widely-used DBMS, namely PostgreSQL, MariaDB, SQLite, and CockroachDB. We found 159 previously unknown bugs in the latest versions of these systems, 141 of which have been fixed by th
NASA’s Swift Observatory observed a supermassive black hole ripping apart a star more than 30,000 light-years from the center of a distant galaxy。 The extraordinary flare briefly outshone its entire host galaxy in ultraviolet light and revealed a black hole about a million times the Sun’s mass
MIT engineers have found a way to give chip-based lidar a wider, clearer view without relying on moving parts。 Their design uses differently shaped antennas that can sit close together without scrambling one another’s signals。 In tests, the system sharply reduced interference while steering a single precise beam across a broad field of view
Popular AI-powered food apps may make calorie counting easier, but they may also leave out a surprisingly large part of the meal。 Four apps underestimated calories and fat by about one-third when tested against carefully prepared meals。 High-fat ketogenic dishes appeared to cause the most trouble, while carbohydrates were measured more consistently