eclipse-store / store

High-Performance Java-Native-Persistence. Store and load any Java Object Graph or Subgraphs partially, Relieved of Heavy-weight JPA. Microsecond Response Time. Ultra-High Throughput. Minimum of Latencies. Create Ultra-Fast In-Memory Database Applications & Microservices.
https://eclipsestore.io/
Eclipse Public License 2.0
201 stars 17 forks source link

provide DBMS #302

Open nimo23 opened 1 month ago

nimo23 commented 1 month ago

Is your feature request related to a problem? Please describe.

Currently we cannot manage the data stored by eclipseStore from an external source. It is also very difficult for outsiders to believe that this is really a database because they are used to being able to view the data on an external client (apart from the application).

Describe the solution you'd like

A public static void main method. So clicking on “eclipseStoreImpl.jar” will open a browser tab and display a user interface similar to h2-db (see screenshots at https://www.h2database.com/html/quickstart.html and try it out by downloading the jar and open it with java -jar h2*.jar). In such a user interface (UI), the user can open an EclipseStore database from the file system. All eclipseStore entities are displayed in a tree structure (similar to h2-ui), allowing the user to manage the entities. For example, instead of the SQL console, a terminal with jbang can be used to allow the user to interact with the eclipseStore entities. Other useful tools such as statistics and backups can also be viewed in this browser interface. With such an external user interface, not only the Java developer himself can be sure that this data has actually been saved.

It would be very nice to have something like this, even for a non-Java developer(e.g. stakeholder, decision maker, db-manager, etc.) who wants to see the data in an external client GUI independent from the application. This way he can be sure that it is actually a database, otherwise it is a kind of black box, as viewing and interacting with the data is only possible via the application. In order to convince with a conventional database system, such a DBMS for EclipseStore is a must.

In Microstream there was https://docs.microstream.one/manual/storage/rest-interface/setup.html. Perhaps something like this can be reworked and integrated into the eclipseStore.jar file itself.

fh-ms commented 1 month ago

The REST interface is also available for EclipseStore: https://docs.eclipsestore.io/manual/storage/rest-interface/setup.html

nimo23 commented 1 month ago

The REST interface is also available for EclipseStore:

Well, firstly it's not a DBMS and secondly it doesn't work for containers like Wildfly or Quarkus. So it's not an out-of-the-box solution like the one found when simply executing the main method of h2.jar.

rpx99 commented 1 month ago

An important aspect seems that the whole application needs to be running. You cannot access the data like with an external SQL database.

Everything actually needs to run "through" the application - whereas the rest interface is part of this architecture.

Crucial seems to me we have this ONE JVM process that has it's objects persisted somewhere to files, but we cannot use more than this. Otherwise it breaks and creates inconsistent data?

So using multiple (external) clients won't work right now?

In fact it's like an embedded database into an app?