migrator
HikariCP
Our great sponsors
migrator | HikariCP | |
---|---|---|
4 | 33 | |
19 | 19,310 | |
- | - | |
8.4 | 6.5 | |
5 days ago | 2 days ago | |
Go | Java | |
Apache License 2.0 | 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.
migrator
-
Building cloud native apps: Databases best practices
For relational database migrations and versioning, I'm using migrator. It's a super lightweight and super fast database migration tool written in Go. It runs as a docker container and exposes simple yet powerful GraphQL API. All migrations applied by migrator are grouped into versions for traceability, auditing, and compliance purposes.
-
Let the bots do the releases for you
View on GitHub
-
Building cloud native apps: Config and Toggles
There is also a middle ground. Treat configuration file like a template and inject the key configuration settings at runtime. Take a look at a sample lukaszbudnik/migrator configuration file:
-
Building cloud native apps: Identity and Access Management
Source code is available on GitHub: https://github.com/lukaszbudnik/migrator/tree/master/tutorials/oauth2-proxy-oidc-haproxy.
HikariCP
-
Java virtual threads caused a deadlock in TPC-C for PostgreSQL
Looks like HikariCP is also awaiting fixes for this https://github.com/brettwooldridge/HikariCP/pull/2055
-
Writing to db
I have used hikari and exposed to do this in the past with postgres, although other dialects are supported.
-
A Tale of Two Connection Pools
I found one suggestion from the author of HikariCP on how to address this, which I implemented and it worked. However, there are additional classes involved, and it feels a little clunky and hard to follow.
-
Should I use diesel ORM if performance is the most important thing?
Whatever you choose, presuming your app is database heavy, I highly recommend spending time on DB schema design to make all queries as short as possible, avoid relying on transactions, and keep your connection pool tiny. For reference: https://github.com/brettwooldridge/HikariCP/wiki/About-Pool-Sizing
-
Art of README
You reminded me of the HikariCP library and it’s documentation: Clear and simple with references to other libraries trying to accomplish the same thing. It is not in the closure space though.
-
Java SQL code generator. SQL and OOP united finally.
There's a reason pretty much any system will use a connection pool (Hikari is the de facto standard). Yours should to.
-
How is the market for Kotlin developers where you live?
HikariCP to pool and conserve relational database connections, which are a scarce and valuable commodity
-
Recording HikariCP Metrics in Clojure
HikariCP is a popular JDBC connection pool, battle-tested and exhibiting good performance. A Clojure wrapper does the things discussed in this post here. However, our project uses HikariCP directly.
-
Retry logic for optimistic locking and transparent failover 🐘🚀
YBDemo is a simple Java program that creates an HikariCP connection pool from the hikari.properties file in the current directory, and takes SQL statements to execute as lines from stdin. There's no multi-line statement: each line is a thread, executing the statement in a loop. The goal is to make it easy to run a demo with concurrent threads by providing the set of queries in a simple way, interactive or though file redirection. Only the first column of the first row is displayed, I use row_to_json() or json_agg() to format a larger result into one value. The thread stops if no row is returned, I use RETURNING to get a row from DML.
-
JDBC Tutorial Part 3: Using Database Connection Pools
Connection pools are configurable, and different implementations have different parameters that you can adjust. For example, you might want to configure the maximum number of connection objects that the pool maintains or the maximum lifetime of a connection in the pool. Refer to the pool implementation documentation for more information.
What are some alternatives?
c3p0 - a mature, highly concurrent JDBC Connection pooling library, with support for caching and reuse of PreparedStatements.
spring-boot-r2dbc - An example implementation of Spring Boot R2DBC REST API with PostgreSQL database.
Vibur DBCP - Vibur DBCP - concurrent and dynamic JDBC connection pool
JDBI - The Jdbi library provides convenient, idiomatic access to relational databases in Java and other JVM technologies such as Kotlin, Clojure or Scala.
Flyway - Flyway by Redgate • Database Migrations Made Easy.
jOOQ - jOOQ is the best way to write SQL in Java
Presto - The official home of the Presto distributed SQL query engine for big data
H2 - H2 is an embeddable RDBMS written in Java.
FlexyPool - FlexyPool adds metrics and failover strategies to a given Connection Pool, allowing it to resize on demand.
Apache Hive - Apache Hive
Apache Phoenix - Apache Phoenix
Jedis - Redis Java client