dicetechnology / dice-fairlink Goto Github PK
View Code? Open in Web Editor NEWJDBC Driver for read-only connections on AWS RDS Clusters
License: MIT License
JDBC Driver for read-only connections on AWS RDS Clusters
License: MIT License
SPI uses the most appropriate driver (sometimes the first) that accepts a given URL.
The java.sql.Driver
interface recommends returning null if a URL is not accepted in the connect
method (equivalent to returning false
on the accepts
method, depending on the runtime).
dice-fairlink currently behaves according to this specification, but logs an exception if the URL is not accepted (ie, cannot be turned into a ParsedUrl
).
This can become quite noisy and is not useful, as it's normal execution rather than an exception as such.
This behaviour should be changed to silently return null on the connect
method and false
in the accepts
method implementations of the java.sql.Driver
interface
I am trying to make dice-fairlink library work with HikariCP. First of all, is this something possible? I couldn't find any resources to verify the same.
User may need to force the driver to re-actualise the list of replicas. Need an interface (method?) for that.
Currently little to no documentation exists at the source code level.
At least the public classes and methods should have some javadoc documentation.
Consider the following scenario:
Need to add logic which will:
One use case of a database cluster is by an application with a heavy bias towards reads.
In this case, the master database can be mostly idle
This task is to implement a configurable mechanism where the user specifies whether (/how much) a connection to the writer instance should be returned, additionally to the read round-robin.
Current: jdbc:auroraro:mysql//my-cluster/my-schema
Should be: jdbc:auroraro:mysql://my-cluster/my-schema
For low replicaPollInterval
and/or high number of applications using dice-fairlink, it is possible to encounter an undocumented RDS API limit that will result in throttling and eventually in failure to discover cluster members.
This means dice-fairlink will not be able to update the cluster information or, depending on the client application using the library, it may even not be able to start.
This has been encountered with replicaPollInterval
set to 30 seconds and with 60 dice-fairlink enabled applications within the same AWS account.
This is both not a dice-fairlink bug nor it is within dice-fairlink possibilities to solve.
However, this severely compromises functionality and an alternative discovery mean must be explored.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.