TPC-C
mysql-proxy
TPC-C | mysql-proxy | |
---|---|---|
1 | 1 | |
7 | 410 | |
- | 1.7% | |
10.0 | 10.0 | |
about 6 years ago | almost 9 years ago | |
TypeScript | C | |
- | 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.
TPC-C
-
Postgres wire compatible SQLite proxy
I think the following could be an interesting project:
A pair of programs. One to emulate Postgres server, another to emulate a Postgres client. These two programs would assume they are just talking to each other, and know exactly what to expect from the other side.
Then we can inject a protocol implementer (the system under test, or SUT) between these two programs and see if the SUT can make both these programs believe that they are still talking just with each other. This way we can validate the level of protocol support by the SUT. And if we can run this whole setup, multiple clients, a server, and the SUT, under controlled conditions, we can also evaluate the performance of each such protocol implementation.
The Postgres client emulator would send a predefined set of commands, and would know exactly what the response should be. The Postgres server emulator would know exactly what commands to expect, and the hard-coded responses to send for each incoming command.
The client emulator's knowledge of the responses would make it easy to catch any errors/bugs introduced by the SUT.
The Postgres server emulator would _not_ implement any server-side logic (command parsing, planning, etc.), to ensure the peak performance for each command it processes.
I was thinking of implementing such a Postgres server emulator back in around 2014, but for a different reason. IIRC, I was thinking of calling it Black Hole Postgres, to test the performance of my TPC-C implementation, DBYardstick [1].
[1]: https://github.com/DBYardstick/TPC-C
mysql-proxy
-
Postgres wire compatible SQLite proxy
Awesome to see work in the DB wire compatible space. On the MySQL side, there was MySQL Proxy (https://github.com/mysql/mysql-proxy), which was scriptable with Lua, with which you could create your own MySQL wire compatible connections. Unfortunately it appears to have been abandoned by Oracle and IIRC doesn't work with 5.7 and beyond. I used it in the past to hack together a MySQL wire adapter for Interana (https://scuba.io/).
I guess these days the best approach for connecting arbitrary data sources to existing drivers, at least for OLAP, is Apache Calcite (https://calcite.apache.org/). Unfortunately that feels a little more involved.
What are some alternatives?
showcase - REST api for your database (PostgreSQL/Sqlite/ClickHouse/MySQL).
postlite - Postgres wire compatible SQLite proxy.
Apache Calcite - Apache Calcite
sshfs - A network filesystem client to connect to SSH servers
roundabout - Postgres connection pooler
awesome-graphql - Awesome list of GraphQL
sqlitebrowser - Official home of the DB Browser for SQLite (DB4S) project. Previously known as "SQLite Database Browser" and "Database Browser for SQLite". Website at:
solid-spec - Solid specification draft 0.7.0