August 2024 Summaries
6 posts from QuestDB
Filter
Month:
Year:
Post Summaries
Back to Blog
QuestDB is an open-source time-series database designed for high-performance workloads, offering ultra-low latency and high ingestion throughput with a multi-tier storage engine. Initially inspired by vector-based, append-only systems like kdb+, QuestDB struggled with handling out-of-order (O3) data, a common occurrence in real-world applications due to network issues and clock synchronization. The database previously discarded out-of-order records due to its data model's reliance on ordered timestamps, prompting the development of a new solution in QuestDB 6.0. This solution introduced a three-stage process involving appending data, sorting uncommitted records in-memory, and reconciling sorted O3 data during commit time, effectively integrating O3 support without sacrificing performance. This approach employed SIMD and non-temporal data access for efficient data handling, while also exploring the potential of O3 hysteresis to optimize performance further. Through rigorous benchmarking and optimization, QuestDB achieved a novel and efficient method to support O3 data, distinguishing itself from other databases using B-trees or LSM trees.
Aug 22, 2024
1,582 words in the original blog post.
QuestDB is a next-generation, open-source database optimized for handling market data, offering high ingestion throughput, advanced SQL analytics, and efficient hardware usage, making it suitable for tick data processing. The text discusses the Volume Weighted Average Price (VWAP) trading strategy, a benchmark used to track the average price of a financial instrument, adjusted for volume, throughout the trading day. VWAP is crucial for analysts to assess trade quality and overall market trends and is used in algorithmic trading strategies to minimize market impact by slicing large orders into smaller parts over the day. The document explains how QuestDB, along with Grafana, can be utilized to understand and calibrate the VWAP strategy using historical data to create volume profiles, which help predict liquidity and optimize trade execution. It also details the process of calculating VWAP using SQL queries in QuestDB for both individual trades and aggregated data, as well as synthesizing volume predictions by combining historical data over different periods to inform trade execution. Furthermore, the text emphasizes the importance of considering the relative size of orders and potential market impacts when using VWAP strategies, and suggests additional methods such as increasing execution resolution or randomizing trades to improve outcomes and reduce detection by other market participants.
Aug 16, 2024
1,632 words in the original blog post.
QuestDB, an open-source time-series database known for its ultra-low latency and high ingestion throughput, encountered an unexpected result when executing a query meant to downsample NYC Taxi dataset trips from 2018, revealing a potential bug in the SAMPLE BY code. The issue arose due to the default calendar alignment in QuestDB's sampling, which floors the timestamp to the nearest unit, sometimes resulting in misaligned buckets. This led to timestamps beginning in 2017 instead of 2018, as expected. Through an investigation involving query explanations and optimizations, it was understood that the flooring mechanism used a fixed origin, causing misalignment in the absence of an appropriate offset origin. To address this, QuestDB introduced new syntax options such as the FROM-TO clause, allowing users to better define output data shapes and intervals, enhancing control over sampling processes and enabling the filling of missing data with specified values. This development aims to provide more flexibility and precision in handling time-series data, particularly for queries with complex conditions or those that lack explicit WHERE clauses. The ongoing enhancements reflect QuestDB's commitment to improving the functionality and user experience of its time-series database capabilities.
Aug 07, 2024
2,082 words in the original blog post.
QuestDB, an open-source time-series database known for its ultra-low latency and high ingestion throughput, recently saw a significant contribution from a cloud engineer who transitioned from managing deployments to enhancing the database's core capabilities. Inspired by personal reflection during parental leave, the engineer embarked on implementing a hot-reloading feature that allows QuestDB to adjust its runtime configuration without needing to restart, a task that involved creating a cross-platform FileWatcher component using system-level programming in C and Java. This project, which spanned several months and required navigating a complex, mature codebase, culminated in a successful pull request that enabled dynamic reloading of pgwire credentials, highlighting the engineer's growth and confidence in software engineering. The experience bridged the gap between cloud-native operations and core database development, setting the stage for future contributions to QuestDB's distributed architecture and feature roadmap, which includes support for Parquet, Array data types, and an Apache Arrow ADBC driver.
Aug 05, 2024
2,108 words in the original blog post.
QuestDB is an open-source time-series database designed for high-performance workloads such as trading and mission control, offering ultra-low latency, high ingestion throughput, and multi-tier storage. It supports Parquet and SQL for data portability and AI readiness, facilitating tasks such as real-time data integrations, machine learning model updates, and table monitoring. QuestDB provides mechanisms for tracking data changes, such as the wal_transactions pseudo-table, which aids in Change Data Capture (CDC) for monitoring data ingestion, anomaly detection, and performance optimization. Although QuestDB cannot originate CDC directly, it can serve as a target using tools like Debezium. The wal_transactions table, a beta feature, helps track transaction metadata, but users must be cautious of its limitations and configuration requirements. The text highlights a sample repository that demonstrates how to use Python scripts to monitor table changes and dynamically materialize views, showcasing QuestDB's capabilities despite some limitations in query speed for large datasets. The QuestDB team is working on native materialized tables to enhance these functionalities, promising improvements in the near future.
Aug 01, 2024
1,160 words in the original blog post.
QuestDB is an open-source time-series database designed to handle demanding workloads by providing ultra-low latency, high ingestion throughput, and a multi-tier storage engine, with native support for Parquet and SQL to maintain data portability and readiness for AI applications. Time-series data, characterized by data points associated with timestamps, is a rapidly growing data type generated through various operations, including those involving non-time-series data and databases. Specialized time-series databases like QuestDB, InfluxDB, and TimescaleDB are optimized for efficiently managing time-indexed data, addressing challenges such as high write and query loads, time-based data retention, and specialized analytical functions. These databases are essential for industries like finance, IoT, and analytics, where managing and analyzing large volumes of time-series data is critical. They complement traditional relational databases by capturing and analyzing the historical changes of data, enabling visualization of trends and supporting complex analytical tasks.
Aug 01, 2024
1,090 words in the original blog post.