pgjdbc
HikariCP
pgjdbc | HikariCP | |
---|---|---|
14 | 33 | |
1,421 | 19,424 | |
0.9% | - | |
9.3 | 6.2 | |
1 day ago | about 1 month ago | |
Java | Java | |
BSD 2-clause "Simplified" License | 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.
pgjdbc
-
Password may not contain: select, insert, update, delete, drop
The method doAppendEscapeLiteral (Line 66) is a good example; https://github.com/pgjdbc/pgjdbc/blob/master/pgjdbc/src/main...
I didn’t take notes all the way down, but at the end of the day this method is invoked when a prepared statements’ parameters are being bound
-
Everything People Don't Get About CVEs
Let's take CVE-2022-21724 which has a base score of 9.8 - Critical from NVD. This vulnerability has the following description on GitHub link:
- For daily Java programmers: after almost one decade of Java 8, are streams and lambdas fully adopted by the Java community?
-
KTor and non-blocking sql
Virtual threads are great but db drivers still have to tweak (mainly to remove synchronized I/O) to be compatible with loom. Postgres just recently merged the changes for loom https://github.com/pgjdbc/pgjdbc/issues/1951
-
loom and database drivers
You can see it for example in the Postgres driver here or the MS SQL driver here. Oracle of course has already released their driver as Loom ready.
- Embracing Virtual Threads with Spring
-
Java 19
See here for details, one of the Project Loom mainainers chimes in with the bad news -- looks like a Loom supported solution is a ways off, so rewriting library/application code that uses synchronized is the only way to actually benefit from Loom's virtual threads.
-
Why is Spring so slow in TechEmpower benchmark?
Any chance you could add a thought / opinion to https://github.com/pgjdbc/pgjdbc/issues/1951 ? Around synchronized & ReentrantLock etc. Any input would be greatly appreciated.
-
I feel like this should be in every model, class and function just to be sure.
This is about types defined outside your business and that means you possibly don't have a chance to do better, e.g. PgPreparedStatement from PostreSQL driver.
- Postgres Java lib returns wrong numeric value after 5 reads
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
- About Pool Sizing
- HikariCP maximumPoolSize based on AWS ECS number of tasks
-
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.
-
Spring boot change password runtime
Not really, you can change some things in spring boot but doing so will typically trigger a refresh which is less reliable than restarting but still causes a large performance hit. You could probably do it with hikari if you really needed to but it's inadvisable to build your application around this mechanic.
-
Help with bungeecord server
# https://github.com/brettwooldridge/HikariCP/wiki/About-Pool-Sizing
-
Currently load testing a Django API I don’t get good results, Help me brainstorm this
Not familiar with Python but this thread about a Java connection pool might be interesting: https://github.com/brettwooldridge/HikariCP/wiki/About-Pool-Sizing
-
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.
https://github.com/brettwooldridge/HikariCP
What are some alternatives?
pgjdbc-ng - A new JDBC driver for PostgreSQL aimed at supporting the advanced features of JDBC and Postgres
c3p0 - a mature, highly concurrent JDBC Connection pooling library, with support for caching and reuse of PreparedStatements.
Trino - Official repository of Trino, the distributed SQL query engine for big data, formerly known as PrestoSQL (https://trino.io)
spring-boot-r2dbc - An example implementation of Spring Boot R2DBC REST API with PostgreSQL database.
jOOQ - jOOQ is the best way to write SQL in Java
Vibur DBCP - Vibur DBCP - concurrent and dynamic JDBC connection pool
zgc - The Z Garbage Collector https://wiki.openjdk.org/display/zgc
JDBI - The Jdbi library provides convenient, idiomatic access to relational databases in Java and other JVM technologies such as Kotlin, Clojure or Scala.
H2 - H2 is an embeddable RDBMS written in Java.
Flyway - Flyway by Redgate • Database Migrations Made Easy.
requery - requery - modern SQL based query & persistence for Java / Kotlin / Android