ObjectDB ObjectDB

Embedded & Activation & Scalation

#1

Hi there,

Our app is highly scalable and can be distributed among multiple processes on multiple machines. ObjectDB Server is not really scalable right now and would be a SPOF for our application. So, we'd like to embedded odb into each instance instead for now and point each to the same database folder, however I've got a few questions I couldn't find answers for:

  • How will locking take place when two instances try to access same db? Is everything synched properly?
  • How does activation work? We'd buy a site license, however, we CAN NOT individually activate every instance on every machine because instances are created and killed on different machines on demand and automatically (!) which can spawn through 1000's of different machines so activation wouldn't make much sense (besides we'd bomb your license server because we'd need to automate activation anyway).

thanks,

Alex

edit
delete
#2

If used properly an ObjectDB Server can handle very high load, especially if you use replication and route READ operations to slave servers. Of course, some NoSQL solutions provide much better scalability but that comes at a high price (no ACID, poor query ability, etc.).

You cannot use embedded mode that way. In embedded mode only a single process can access the database.

If you have a budget for running 1000's machines - consider purchasing an ObjectDB OEM license. With an OEM license you have to activate only development machines (for signing your object model). No further activation is required for deployment and for end user installations.

ObjectDB Support
edit
delete
#3

Hi,

Hmm I still fear it won't scale enough, furthermore we'll always have a SPOF with odb server due the master-write only limitation. Is there a way to spawn multiple server instances "embedded" into our app so we can avoid the single-process restriction though still have multiple processes to avoid a SPOF?

Yes, the OEM License was what I was ment to say when naming it "Site license" ;-) However, how is the object model getting signed? Because as we're in an OSGI Environment, we do receive classes at runtime and do enhance them at runtime, not compile time.. ?

 

Alex

edit
delete
#4

Multiple processes cannot write to the same ObjectDB database concurrently. Future versions may remove this limitation, but this has not been scheduled for implementation yet.

The object model is signed during enhancement, so the enhancement has to be performed before deployment (at compile time). This works well for existing ObjectDB OEM users. It will not work, however, if your object model is unknown at compile time, and in that case we should look for an alternative solution that matches your specific needs. Please open a support ticket to discuss possible options.

ObjectDB Support
edit
delete

Reply

To post on this website please sign in.