Task #3935

Project WP #697: WP10 - Interfacing Infrastructures [Months: 1-30]

Project Task #700: T10.3 Federated Resources Management [Months: 1-29]

Task #3473: Assess OrientDB for information system

Test OriendDB Security to use a Single DB for Multiple Context

Added by Luca Frosini over 3 years ago. Updated over 3 years ago.

Status:ClosedStart date:May 09, 2016
Priority:NormalDue date:
Assignee:Luca Frosini% Done:

100%

Category:Default
Sprint:WP10
Infrastructure:
Milestones:
Duration:

History

#1 Updated by Luca Frosini over 3 years ago

  • Status changed from New to Rejected

#2 Updated by Luca Frosini over 3 years ago

  • % Done changed from 0 to 100

#3 Updated by Luca Frosini over 3 years ago

  • Status changed from Rejected to Closed

The test was performed and seems working as expected.
After some discussion we opt out for a solution using a separated DB for each context

#4 Updated by Pasquale Pagano over 3 years ago

  • Status changed from Closed to In Progress

Well this has to be clarified a bit better. Di you mean different Dbs hosted on the same cluster?

#5 Updated by Luca Frosini over 3 years ago

No, I mean the use of a single DB for all context in a tree (i.e. multi-tenancy). Let me explain better.

Multi-tenancy feature could be addressed in two ways:

  1. Different DB for Different context
  2. Single DB for all the hierarchy context.

Let’s examine pros and cons of each solution:

  1. Different DB for Different Context
  • Pro

    • Should scale better
  • Cons

    • No possibility to get all resource of all the context in the tree with a single query. Need to query different db and merge the results (merging can be an hard task)
    • Need to define our own ID (i.e. UUID) and keep aligned the ID in different DB to identify the same resource in different context.
    • Difficult to keep the hierarchy context consistent. No guarantees from DB
  1. Single DB for all the hierarchy context.

The context can be manage using OrientDB Security https://orientdb.com/docs/last/Security.html#record_level_security in a similar way as suggested from the following documentation example https://orientdb.com/docs/last/Partitioned-Graphs.html)

  • Pro

    • No needs to create our own ID
    • Possibility to query in multiple context
    • Hierarchy context consistency can be relied on DB
  • Cons

    • Should be slower.
    • Could create Scaling Issue

If we decide to use a different DB for a different context, we will create an index on our UUID.
The first release will use the default index but in future release we should investigate the other available https://orientdb.com/docs/last/Indexes.html.

#6 Updated by Pasquale Pagano over 3 years ago

I would test the Single DB for all the hierarchy context with 50 thousand resources before to exclude this solution. I think that advantages of this approach are consistent and we should select the other approach only if strictly needed.

#7 Updated by Luca Frosini over 3 years ago

  • Status changed from In Progress to Closed

Also available in: Atom PDF