class type shared_state_t =object..end
nn_master container, and collects
information from not yet committed views (such as which ID's are
used), so that the views can avoid clashes between each other.
Also caching of committed values.method event_system : Unixqueue.event_systemmethod node_config : Nn_config.nn_node_configmethod cur_rev_ident : stringmethod new_rev_ident : unit -> stringmethod set_rev_ident : string -> unitcur_rev_identmethod datastore_max_id : int optionmethod datastore_use_id : int -> unitmethod inode_max_id : int64 optionmethod inode_use_id : int64 -> unitmethod inode_get_new_id_serialized : (Unixqueue.event_system -> int64 Uq_engines.engine) ->
int64 Uq_engines.enginemethod commit_monitor : Nn_commit_monitor.commit_monitormethod slaves : (string * Rpc_proxy.ManagedClient.mclient * bool) listmethod disable_slave : string -> unitdisable_slave namemethod is_slave_disabled : string -> boolmethod minimum_slaves : intmethod enough_slaves : boolmethod master : stringmethod master_enabled : boolmethod disable_master : unit -> unitmethod blockmaps : Nn_blockmap.blockmap_t listmethod get_blockmap : string -> Nn_blockmap.blockmap_tNot_foundmethod blockmap_get_e : identity:string -> Nn_blockmap.blockmap_t Uq_engines.enginemethod blockmap_serialized : int64 list ->
(Unixqueue.event_system -> unit Uq_engines.engine) -> unit Uq_engines.engine
Currently we have here inode granularity (each inode has a separate
lock). A possible improvement would be reader/writer locks.
method forget_identity : string -> unitmethod lock_inode : int64 -> owner -> (unit -> unit) optionSome unlock if successful where calling unlock removes
the lock, or reverts to the previous state (1-step undo)method unlock_inodes : owner -> unitmethod lock_filename : int64 * string ->
[ `Exists | `Link | `Unlink ] -> owner -> (unit -> unit) optionlock_filename (dir_inode,name) lock_type owner: Locks the name
member of directory dir_inode.
Lock types:
`Link: States that the file is created, and must not be
created by another transaction. A `Link lock is exlusive. `Unlink: States that the file is removed, and must not be
removed by another transaction. An `Unlink lock is exclusive.`Exists: States that the file exists. Several transactions can
request this. (Used for ensuring that parent directories exist
until the end of the transaction.)`Unlink to `Link). It is also
possible that a lock already exists with stronger guarantees (e.g.
we have already `Link which implies `Exists).
Returns Some unlock if successful where calling unlock removes
the lock, or reverts to the previous state (1-step undo).
method unlock_filenames : owner -> unitmethod inode_modify_use_counts : transactions:(int -> int) -> int64 -> unit
If transactions drops to 0, the entry is automatically removed.
method inode_use_counts : int64 -> int(transactions) numbers (or raises Not_found)method zombie_inodes_exist : boolmethod set_zombie_inodes : bool -> unitmethod cauth : Pfs_auth.client_authmethod db_trans_for_commit : unit -> Nn_db.transactionmethod incr_count : counter_name -> unitmethod reset_count : counter_name -> int