Strategies for "checkout" or explicit file locking

Sunday, 15 June 2014 · 2 messages · last reply 16 Jun 2014
AP
Alister Pillow15 Jun 2014 12:13 #
Hi all, BaseX doesn’t appear to have explicit document-level access control (ownership and permissions). I understand that Write and Read locks are applied during queries - but these are not explicit and only apply during the course of the query. I wonder what strategies other people use to lock a file for “editing”, or “checkout” a file so that only a single user has access (in a multi-user environment). Does anyone manage more than a few users within one instance of BaseX? (e.g. more than 10) Thanks, Alister.
CG
Christian Grün16 Jun 2014 13:08 #
Dear Alister,
Quoted text · Alister Pillow · 1 line
> I wonder what strategies other people use to lock a file for “editing”, or “checkout” a file so that only a single user has access (in a multi-user environment).
We usually apply the XQuery locking options [1]: From all XQuery expressions that reference the same lock string, only one writing process will be run one at the same time. This can e. g. look as follows: read.xq:
  declare option query:read-lock "config";
  file:read-text("config.xml")
write.xq:
  declare option query:write-lock "config";
  file:write-text("config.xml", 'blablabla')

⚡Generated with XQuery