CBQN
QuestDB
CBQN | QuestDB | |
---|---|---|
4 | 311 | |
297 | 13,501 | |
- | 0.9% | |
9.5 | 9.7 | |
2 days ago | 2 days ago | |
C | Java | |
GNU General Public License v3.0 only | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
CBQN
-
Building a faster hash table for high performance SQL joins
Worth pointing out that this can depend a lot more on fiddly details than you might expect. In particular, you're dealing with a small fixed width allowing the hash to be stored in the table instead of the key. The article emphasizes variable-length keys, and I don't see any specialization on key sizes (if 4- and 8-byte keys aren't common then this makes sense; if they are then I'd expect dedicated table code for those sizes to be valuable). And set lookups are also just a bit different from value lookups. I think these cases are different enough that I have no idea if the results would carry over, although I can see how the bidirectional approach would reduce probing more than RH which seems good.
...and since I've done a lot of work with Robin Hood on small-key lookups, I can point out some little tweaks that have made a big difference for me. I have 8-byte lookups at just over 3ns/lookup[0], albeit at a very low load factor, typically <50%. A key step was to use the maximum possible hash as a sentinel value, handling it specially in case it shows up in the data. This way, instead of probing until finding an empty bucket or greater hash, probing just finds the first slot that's greater than or equal to the requested key's hash. So the lookup code[1] is very simple (the rest, not so much). The while loop is only needed on a hash collision, so at a low load factor a lookup is effectively branchless. However, these choices are specialized for a batched search where the number of insertions never has to be higher than the number of searches, and all the insertions can be done first. And focused on small-ish (under a million entries) tables.
[0] https://mlochbaum.github.io/bencharray/pages/search.html
[1] https://github.com/dzaima/CBQN/blob/5c7ab3f/src/singeli/src/...
-
Having trouble installing bqn into arch
It sounds like you might be trying to install the package manually from the AUR? Generally you should do this only once, for an AUR helper such as pacaur, so you can install with pacaur -S bqn. The instructions in the CBQN repository also work for installing without a package manager, which is the easiest way to enable replxx.
-
Programming Style Influences
It's still utterly verbose compared to the ngn/k source or even CBQN source.
-
BQN Example
CBQN Source, and Install Instructions
QuestDB
-
How to Forecast Air Temperatures with AI + IoT Sensor Data
If your data lacks uniform time intervals between consecutive entries, QuestDB offers a solution by allowing you to sample your data. After that, MindsDB facilitates creating, training, and deploying your time-series models.
-
Normalizing Grafana charts with window functions
If you're interested in that functionality or have any other feedback, please drop by our open source repository or community Slack and let us know.
-
How to increase Grafana refresh rate frequency
QuestDB is a high-performance time series database with SQL analytics that can power through market data ingestion and analysis. It's open source and integrates well with the tools and languages you use. Check us out!
-
Building a faster hash table for high performance SQL joins
Looks like full keys are always compared if hash codes test equal, which is what I'd expect. For example: https://github.com/questdb/questdb/blob/master/core/src/main...
-
K3s Traefik Ingress - configured for your homelab!
But of course, I want to run a QuestDB instance on my node, which uses two additional TCP ports for Influx Line Protocol (ILP) and Pgwire communication with the database. So how can I expose these extra ports on my node and route traffic to the QuestDB container running inside of k3s?
-
Annotations in Kubernetes Operator Design
In this post, I will detail a way in which I recently used annotations while writing an operator for my company's product, QuestDB. Hopefully this will give you an idea of how you can incorporate annotations into your own operators to harness their full potential.
-
Is all data time-series data?
QuestDB is an open source, high performance time series database. With its massive ingestion throughput speeds and cost effective operation, QuestDB reduces infrastructure costs and helps you overcome tricky ingestion bottlenecks. Thanks for reading!
- questdb: NEW Data - star count:12960.0
What are some alternatives?
BQN - An APL-like programming language. Self-hosted!
TDengine - TDengine is an open source, high-performance, cloud native time-series database optimized for Internet of Things (IoT), Connected Cars, Industrial IoT and DevOps.
Singeli - High-level interface for low-level programming
arctic - High performance datastore for time series and tick data
CSpydr - A static typed low-level compiled programming language inspired by Rust and C
ClickHouse - ClickHouse® is a free analytics DBMS for big data
gravity - Gravity Programming Language
SQLAlchemy - The Database Toolkit for Python
adorad - Fast, Expressive, & High-Performance Programming Language for those who dare
VictoriaMetrics - VictoriaMetrics: fast, cost-effective monitoring solution and time series database
wasm-micro-runtime - WebAssembly Micro Runtime (WAMR)
tsbs - Time Series Benchmark Suite, a tool for comparing and evaluating databases for time series data