Since tables are regular UNIX files, I have so far found no need to implement, and have the associated overhead of, general data access controls in NoSQL. Setting the UNIX permissions on files or directories has proven very useful and effective. This is another example of how the NoSQL system works "with" UNIX, not in addition to it, e.g., not duplicating UNIX functions.
The Revision Control System (RCS) is one of the best configuration management tools available. RCS can be used for version control of many types of files, including tables. Most NoSQL operators can utilize tables that are under RCS control by using a command like:
co -p table | row ... | column ... | justify
This checks out a table, sends it to 'row,' then to 'column,' and finally prints the data with 'justify.' In general, any needed series of commands can be constructed to do a given task regardless of whether the tables are checked into RCS.
The Concurrent Versioning System (CVS) takes RCS consepts one step further, providing distributed, client-server access to NoSQL tables. A CVS-managed collection of NoSQL tables can be seen as a type of Distributed Relational Database Architecture (DRDA). And one that also provides for disconnected operations!
When the 'edittable' operator is used to modify a table in place there could be a possibility of silmultaneous writing of a table by multiple users. That is, if two or more users, on the same computer or perhaps on different computers on a network, attempted to modify a given table with 'edittable' at the same time, the table could become corrupted. To prevent data corruption, write concurrency control is provided by the use of a lockfile. The lock is in effect whenever a user runs 'edittable' against the table.
The name of the lockfile is the name of the table being modified, with a suffix of ".lock." For example, a table named "main" would have a lockfile named "main.lock." The lockfile is placed in the same directory as the table itself and is removed after the modification process is complete, even if the operation is aborted with an INTERRUPT signal (CONTROL-C or <DEL>). When an attempt to use this utility is made and there is already a valid lockfile associated with the referenced table an error message is produced and the utility exits.