Ticket #14 (closed task: fixed)

Opened 3 years ago

Last modified 3 years ago

Can variant records exist without corresponding master record?

Reported by: bruno Owned by: evert
Priority: major Milestone:
Component: Repository Version:
Keywords: Cc:

Description (last modified by bruno) (diff)

See summary, we should think about this and make a decision.

Current situation is that upon create a variant record, it is required that its master record exists, but afterward you can delete the master record anyway.

Reasons to require the existence of a master record:

  • enables to take a hbase-row-lock on the master for operations over its variants that we want to be serialized (todo: examples)
    • UPDATE: since HBase allows to take a lock on a row without knowing it exists, this is not an argument.
  • the record type of the master might specify what the record types for the variants should be (this is more of an optional feature, not a reason to require master records)
  • ...

Reasons to not require the existence of a master record:

  • If you don't have anything to store on the level of the master record, you are required to have an empty record in the repository that you do not need. (actually, it can not be an empty record: lily requires at least one field)
  • ...

Change History

comment:1 Changed 3 years ago by bruno

  • Description modified (diff)

comment:2 Changed 3 years ago by bruno

  • Description modified (diff)

If we want to required master-record existence, then we will have to, as in #20, assure everything works correctly in a concurrent situation. For example make it impossible for someone to delete the master record while we are adding a new variant.

comment:3 Changed 3 years ago by bruno

  • Description modified (diff)

comment:4 Changed 3 years ago by bruno

(In [4038]) Remove the check that prevents creation of a variant record when its master does not exist. See #14.

comment:5 Changed 3 years ago by bruno

  • Status changed from new to closed
  • Resolution set to fixed

I'm closing this issue, the decision is to not require the master record to exist, corresponding code removed.

Note: See TracTickets for help on using tickets.