-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Use of BaseX with client-server architecture #75
Comments
When a client accesses the ETF instances, is the data always somehow retrieved from the BaseX database server? Doesn't this have a negative impact on performance (which seems very important for JRC)? If not, then are you planning to use a cache in the ETF instances? If something is deleted in one ETF instance, will it be communicated somehow to the other instances and you are not expecting consistency issues? Started test runs (not the persisted ones) do not have to be synchronized across instances?
Which interface? |
Thanks for the diagrams, I have some comments:
|
Thanks for your comments Jon, I'll try to clarify a bit more to address your issues
|
|
ETF Improvement Proposal (EIP)
Background and Motivation:
As part of the creation of a cloud deployment of the ETF using AWS, we put in place a load balancer to automatically create new instances of the application ir order to manage heavy workloads. To avoid consistency problems, and for every user to have the same information, we established a centralized data storage, to mount it on every ETF container.
However, the BaseX process locks down the data storage folder, and an exception is thrown if any other process tries to access it. This prevents the addition of new instance from the load balancer.
Proposed change
As proposed on the BaseX documentation, we propose to add an optional configuration for ETF deployment, from an embedded library to a client-server architecture. This way the database can be used concurrently by multiple ETF instances. The server can be hosted on a separate container, and the ETF instances can be configured to interact with this database through the configuration files.
This alternate interface should be developed on the data storage module of the ETF, to direct all the CRUD operations through the REST API of BaseX.
Alternatives
An alternative could be to deploy separated folders for each ETF instance, and establish a way to synchronize all the folder to avoid consistency issue across all the instances. This could be complex, and would mean to have a synchronization job scheduled with a high frequency, consuming a non trivial amount of resources.
Funding
N/A
Additional information
The text was updated successfully, but these errors were encountered: