YCSB
tarantool
YCSB | tarantool | |
---|---|---|
3 | 5 | |
4,803 | 3,333 | |
- | 0.5% | |
0.0 | 9.9 | |
2 days ago | 7 days ago | |
Java | Lua | |
Apache License 2.0 | GNU General Public License v3.0 or later |
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.
YCSB
- Yahoo Cloud Serving Benchmark (YCSB)
-
Ten-year experience in DBMS testing
For performance testing, we also run common benchmarks: the popular YCSB (Yahoo! Cloud Serving Benchmark), NoSQLBench, LinkBench, SysBench, TPC-H, and TPC-C. We also run C Bench, our own Tarantool API benchmark. Its primitive operations are written in C, and scripts are described in Lua.
-
Apache Cassandra 4.0: Taming Tail Latencies with Java 16 ZGC
Most benchmarks of non-relational databases are done with either product-specific tooling (like cassandra-stress), or with YCSB, which gives you a lowest-common-denominator key-value workload across dozens of systems.
tarantool
-
Python 3.13 Gets a JIT
The article describes that the new JIT is a "copy-and-patch JIT" (I've previously heard this called a "splat JIT"). This is a relatively simple JIT architecture where you have essentially pre-compiled blobs of machine code for each interpreter instruction that you patch immediate arguments into by copying over them.
I once wrote an article about very simple JITs, and the first example in my article uses this style: https://blog.reverberate.org/2012/12/hello-jit-world-joy-of-...
I take some issue with this statement, made later in the article, about the pros/cons vs a "full" JIT:
> The big downside with a “full” JIT is that the process of compiling once into IL and then again into machine code is slow. Not only is it slow, but it is memory intensive.
I used to think this was true also, because my main exposure to JITs was the JVM, which is indeed memory-intensive and slow.
But then in 2013, a miraculous thing happened. LuaJIT 2.0 was released, and it was incredibly fast to JIT compile.
LuaJIT is undoubtedly a "full" JIT compiler. It uses SSA form and performs many optimizations (https://github.com/tarantool/tarantool/wiki/LuaJIT-Optimizat...). And yet feels no more heavyweight than an interpreter when you run it. It does not have any noticeable warm up time, unlike the JVM.
Ever since then, I've rejected the idea that JIT compilers have to be slow and heavyweight.
-
A modern replacement for Redis and Memcached
Then you should like Tarantool which has a built-in Lua (LuaJIT) application server.
-
Ten-year experience in DBMS testing
LuaJIT provides Lua language support, including both the language execution environment and the JIT tracer compiler. Our LuaJIT has long differed from the vanilla version in a set of patches adding features, such as the profiler, and new tests. That is why we test our fork thoroughly to prevent regression. LuaJIT source code is open and distributed under a free license, but it does not include regression tests. Therefore, we have assembled our regression test suite from PUC-Rio Lua tests, test suite by François Perrad, tests for other LuaJIT forks, and of course, our own tests.
-
Tarantool Running on Apple M1: First Results
Starting from 2.10.0-beta Tarantool can natively run on M1 chips. So far this is preliminary support: something may crash or run unstable. We have resolved almost all bugs we knew about, with a few minor ones left. For example, there are some issues with the JIT compiler. But this didn't prevent the team product manager from installing Tarantool on his new MacBook Air and running it every day.
-
PostgREST v9.0.0
A similar project built with intention around this idea is Tarantool[1]. I never hear much about it, but if you're interested in compute close to your data, this is definitely something that would warrant consideration.
[1]: https://github.com/tarantool/tarantool
What are some alternatives?
nosqlbench - The open source, pluggable, nosql benchmarking suite.
dragonfly - A modern replacement for Redis and Memcached
jepsen.tarantool - Jepsen tests for Tarantool
benchmarks - Infrastucture benchmarks
luatest - Tarantool test framework written in Lua
msgpuck - A simple and efficient MsgPack binary serialization library in a self-contained header file
svelte-postgrest-template - Svelte/SvelteKit + PostgREST + EveryLayout + social auth starter template
cbench - Tarantool C Bench - a simple tool to benchmark Tarantool internal API
alembic - A database migrations tool for SQLAlchemy.
test-run - Tarantool functional testing framework
starter - Opinionated SaaS quick-start with pre-built user account and organization system for full-stack application development in React, Node.js, GraphQL and PostgreSQL. Powered by PostGraphile, TypeScript, Apollo Client, Graphile Worker, Graphile Migrate, GraphQL Code Generator, Ant Design and Next.js