ObjectDB ObjectDB

Recommendation - concurrent access multiple class v

#1

Hi!

I've just started to architect a new system, stateless JSON API, which is expected to have very high load and to require more servers for parallel deployments (same app across multiple servers).

I am considering using ObjectDB, because of its advantages and easy usage, but I'm afraid that it might get corrupted because the manual says that we must not access ObjectDB with different versions of a class.

Let's take the following scenario:

  1. The same app is running on 5 machines.
  2. A change is required in one of the persistent classes, thus it's implemented. (Let's say a new field was added)
  3. 3 servers are taken offline, updated, then put online.
  4. The remaining 2 servers are also updated. 
  5. --- I can't update all 5 of them in the same time, because it must be no downtime for the current system.

Question/problem: would that not corrupt the DB? Would ObjectDB support this scenario, where the previous version of a class is used by some servers, then others come with the new version, then finally all of them get the new version?

So...basically...concurrent access with version x and version x+1 of a class.

I would really need your advice on this, because having 100% uptime is mandatory for this new system, thus I need to know if ObjectDB could support this.

Thank you.

edit
delete
#2

Currently schema changes require server restart, as well as restarting the application with the new schema.

ObjectDB servers usually do not have a direct access to your classes, so this is not a problem.

But if you have 5 application servers with the same application against one shared database, changing the schema requires restarting all of them with the new version of your application. With some preparation this could be done in seconds, but still requires a short downtime. We may find a way to eliminate this requirement in future versions.

Alternatively, if you can switch to one active application server for a short time when there is a low load, you can restart that application server, and then add the other application servers, avoiding any downtime.

ObjectDB Support
edit
delete
#3

Thank you very much.

edit
delete

Reply

To post on this website please sign in.