tarantool
benchmarks
tarantool | benchmarks | |
---|---|---|
5 | 7 | |
3,333 | 41 | |
0.4% | - | |
9.9 | 6.0 | |
4 days ago | 9 days ago | |
Lua | SCSS | |
GNU General Public License v3.0 or later | MIT License |
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.
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
benchmarks
-
Supavisor: Scaling Postgres to 1 Million Connections
We use a custom load-testing application to test the features of the Supabase platform. It consists of:
-
Supavisor: Scaling Postgres to 1M Connections
here is the github repo[0] with an app that helps me launch terraforms and k6 and keep track of launches/results
[0]https://github.com/supabase/benchmarks
- Supabase scalability
-
How scalable is supabase?
We benchmark the various tools here: https://github.com/supabase/benchmarks
-
PostgREST v9.0.0
PostgREST is used inside every Supabase project. We have >50K projects now[0], some of them making (tens of) millions of API requests through PostgREST daily.
It's a fantastic piece of tech, especially when coupled with PostgreSQL Row Level Security. We have some benchmarks here in case you're concerned about performance: https://github.com/supabase/benchmarks/issues/2
[0] On our hosted platform. We don't add telemetry to self-hosting
- Storage is now available in Supabase (YC S20)
What are some alternatives?
dragonfly - A modern replacement for Redis and Memcached
Appwrite - Build like a team of hundreds_
luatest - Tarantool test framework written in Lua
alembic - A database migrations tool for SQLAlchemy.
svelte-postgrest-template - Svelte/SvelteKit + PostgREST + EveryLayout + social auth starter template
realtime - Broadcast, Presence, and Postgres Changes via WebSockets
supabase - The open source Firebase alternative.
YCSB - Yahoo! Cloud Serving Benchmark
gotrue - An SWT based API for managing users and issuing SWT tokens.
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
sandman2 - Automatically generate a RESTful API service for your legacy database. No code required!