Miscellaneous

Are transactions possible in EclipseStore?

Yes. In fact, every storing of data is executed as a transaction, an atomic all-or-nothing action. When one or more entities are stored, their data is collected into a continuous block of bytes and that block is written to the physical form (the "files") in one fell swoop. Any problem during the IO-operation causes the whole block to be deleted (rolled back).

Is EclipseStore multi-threaded?

Yes. Internally, EclipseStore uses multiple threads (called channels) to parallelize its own storing and loading operations, which can strongly accelerate IO performance. The number of channels must be a power of 2 (1, 2, 4, 8, 16, etc.). See Using Channels for configuration details.

This internal multi-threading does not protect your application’s access to the shared object graph. In a multi-threaded application, modifying the object graph and storing the changes must be done under the same lock. EclipseStore cannot provide this synchronization on the application level — it is the application’s responsibility. See Locking for details.

Does EclipseStore support a backup strategy?

Yes. There are currently two options available to create backups: An on-the-fly backup that copies and validates stored entity data after it has been written and the possibility to export all database files to a target location (which is in fact just a low-level file copying, but executed in a concurrency-safe way).

Does EclipseStore provide data export/import functionality?

Yes. EclipseStore provides a per-type export of binary data and a utility to convert its binary data into the CSV format. The other way around (convert CSV to binary an import binary files) is also possible.

Does EclipseStore provide a user management, authentication and authorization etc., like conventional DBMS ?

No, because it doesn’t need to. Such concerns are long covered by the application itself, with the DBMS usually being degraded to only being the application’s exclusive database. Thus, all that is needed for a modern business application is just an application-exclusive data storage solution, which is exactly what EclipseStore is.

Is it possible to migrate an existing database to EclipseStore?

Yes, if the data is structured in a format conforming to the entity classes and with references being represented in globally unique and bijective numbers. How hard that is for a given database depends on its specifics, but it can be as easy as executing one generically created SELECT per table.

Is EclipseStore usable in an OSGi Environment?

Yes, the released jar files contain the necessary OSGi Headers.