This object exists once in the =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_system
method node_config : Nn_config.nn_node_config
method cur_rev_ident : string
method new_rev_ident : unit -> string
method set_rev_ident : string -> unit
cur_rev_ident
method datastore_max_id : int option
method datastore_use_id : int -> unit
method inode_max_id : int64 option
method inode_use_id : int64 -> unit
method inode_get_new_id_serialized : (Unixqueue.event_system -> int64 Uq_engines.engine) ->
int64 Uq_engines.engine
method finish_transaction_serialized : (Unixqueue.event_system -> bool Uq_engines.engine) -> bool Uq_engines.engine
finish_transaction_serialized f
: Run f esys
in a serialized
way. This is intended for finishing the transaction, i.e. that
globally only one commit
or rollback
can be done at a timemethod slaves : (string * Rpc_proxy.ManagedClient.mclient * bool Pervasives.ref) list
method enough_slaves : bool
method master : string
method master_enabled : bool Pervasives.ref
method exists_blockmap : string -> bool
method create_blockmap : Nn_blockmap.blockmap_t -> unit
create_blockmap m
: Creates a map of free/used/reserved
blocks.method blockmaps : Nn_blockmap.blockmap_t list
method get_blockmap : string -> Nn_blockmap.blockmap_t
Not_found
method blockmap_get_e : identity:string -> Nn_blockmap.blockmap_t Uq_engines.engine
method blockmap_prioritizer : unit Uq_engines.prioritizer
The blockmap commit is part of the post_commit
actions.
For simplicity the whole post_commit
is prioritized this way.
The important "other access" is setting the keep bits. This
must not overlap with blockmap commits.
method forget_identity : string -> unit
method lock_inode : int64 -> < > -> (unit -> unit) option
Some unlock
if successful where calling unlock
removes
the lock, or reverts to the previous state (1-step undo)method unlock_inodes : < > -> unit
method lock_filename : int64 * string ->
[ `Exists | `Link | `Unlink ] -> < > -> (unit -> unit) option
lock_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 : < > -> unit