module Nn_db:Namenode access routines to databasesig
..end
class type ro_transaction =object
..end
class type transaction =object
..end
typeinodeinfo =
Pfs_rpcapi_aux.inodeinfo
val init : Pfs_db.db_config -> Unixqueue.event_system -> unit
val ro_esys : unit -> Unixqueue.event_system
val commit_all_prepared_transactions : unit -> unit
val transact : Unixqueue.event_system -> transaction
val ro_transact : unit -> ro_transaction Uq_engines.engine
val with_ro_trans : (Pfs_db.ro_async_connection -> Unixqueue.event_system -> 'a Uq_engines.engine) ->
'a Uq_engines.engine
with_ro_trans f
: Runs e = f conn esys
for a shared read-only
transaction and returns e
val datastore_list_e : Pfs_db.ro_async_connection ->
Unixqueue.event_system -> Nn_datastores.datastore list Uq_engines.engine
val datastore_list_ro_e : unit -> Nn_datastores.datastore list Uq_engines.engine
val datastore_find_e : identity:string ->
Pfs_db.ro_async_connection ->
Unixqueue.event_system -> Nn_datastores.datastore option Uq_engines.engine
val datastore_find_ro_e : identity:string -> Nn_datastores.datastore option Uq_engines.engine
val datastore_upd_e : id:int ->
identity:string ->
size:int64 ->
enabled:bool ->
Pfs_db.rw_async_connection ->
Unixqueue.event_system -> unit Uq_engines.engine
The blockalloc table is updated, too: For new stores, the rows are added. If the size of the existing store is increased, further rows are added.
It is an error to decrease the size.
val datastore_del_e : id:int ->
Pfs_db.rw_async_connection ->
Unixqueue.event_system -> unit Uq_engines.engine
val revision_get_e : Pfs_db.ro_async_connection ->
Unixqueue.event_system -> string Uq_engines.engine
val revision_get_ro_e : unit -> string Uq_engines.engine
val revision_upd_e : revstr:string ->
Pfs_db.rw_async_connection ->
Unixqueue.event_system -> unit Uq_engines.engine
val blockalloc_list_e : datastore:int ->
Pfs_db.ro_async_connection ->
Unixqueue.event_system -> (int64 * string) list Uq_engines.engine
datastore
ID. Returns the table
as pairs (blkidx,blkmap)
val blockalloc_list_ro_e : datastore:int -> (int64 * string) list Uq_engines.engine
val blockalloc_upd_e : datastore:int ->
blkidx:int64 ->
blkmap:string ->
Pfs_db.rw_async_connection ->
Unixqueue.event_system -> unit Uq_engines.engine
blockalloc
tableval inode_listall_e : Pfs_db.ro_async_connection ->
Unixqueue.event_system -> int64 list Uq_engines.engine
val inode_get_e : id:int64 ->
Pfs_db.ro_async_connection ->
Unixqueue.event_system -> inodeinfo option Uq_engines.engine
val inode_get_ro_e : id:int64 -> inodeinfo option Uq_engines.engine
val inode_maxid_e : Pfs_db.ro_async_connection ->
Unixqueue.event_system -> int64 Uq_engines.engine
val inode_maxid_ro_e : unit -> int64 Uq_engines.engine
val inode_ins_e : id:int64 ->
inodeinfo ->
Pfs_db.rw_async_connection ->
Unixqueue.event_system -> unit Uq_engines.engine
inode
val inode_upd_e : id:int64 ->
inodeinfo ->
Pfs_db.rw_async_connection ->
Unixqueue.event_system -> unit Uq_engines.engine
inode
. filetype
cannot be updated, and changes are
silently ignored.val inode_upd_time_e : id:int64 ->
mtime:Pfs_rpcapi_aux.time option ->
ctime:Pfs_rpcapi_aux.time option ->
Pfs_db.rw_async_connection ->
Unixqueue.event_system -> unit Uq_engines.engine
val inode_del_e : id:int64 ->
Pfs_db.rw_async_connection ->
Unixqueue.event_system -> unit Uq_engines.engine
inode
val inodeblocks_get_e : inode:int64 ->
blkidx:int64 ->
len:int64 ->
Pfs_db.ro_async_connection ->
Unixqueue.event_system -> Pfs_rpcapi_aux.blockinfo list Uq_engines.engine
inode
in the range from index
blkidx
to blkidx+len-1
.val inodeblocks_get_ro_e : inode:int64 ->
blkidx:int64 -> len:int64 -> Pfs_rpcapi_aux.blockinfo list Uq_engines.engine
val inodeblocks_getall_e : inode:int64 ->
dsid:int ->
Pfs_db.ro_async_connection ->
Unixqueue.event_system -> (int64 * int64) list Uq_engines.engine
(blkidx,block)
for this inode
and this datastore
dsid
(for fsck)val inodeblocks_del_e : inode:int64 ->
blkidx:int64 ->
len:int64 ->
Pfs_db.rw_async_connection ->
Unixqueue.event_system -> unit Uq_engines.engine
inode
in the range from index
blkidx
to blkidx+len-1
.val inodeblocks_ins_e : inode:int64 ->
Pfs_rpcapi_aux.blockinfo list ->
Pfs_db.rw_async_connection ->
Unixqueue.event_system -> unit Uq_engines.engine
val names_get_e : name:string ->
Pfs_db.ro_async_connection ->
Unixqueue.event_system -> int64 option Uq_engines.engine
val names_get_ro_e : name:string -> int64 option Uq_engines.engine
val names_rev_get_e : inode:int64 ->
Pfs_db.ro_async_connection ->
Unixqueue.event_system -> string list Uq_engines.engine
val names_rev_get_ro_e : inode:int64 -> string list Uq_engines.engine
val names_count_e : inode:int64 ->
Pfs_db.ro_async_connection -> Unixqueue.event_system -> int Uq_engines.engine
val names_count_ro_e : inode:int64 -> int Uq_engines.engine
val names_list_e : name:string ->
Pfs_db.ro_async_connection ->
Unixqueue.event_system -> (string * int64) list Uq_engines.engine
p
for all names n
in the database
so that n = name ^ "/" ^ p ^ rest
. The particle p
does not
contain a slash and is non-empty. rest
is either empty or starts
with a slash.
If name="/"
the function behaves as if name=""
.
Now also returns for every particle the inode number.
val names_list_ro_e : name:string -> (string * int64) list Uq_engines.engine
val names_ins_e : name:string ->
inode:int64 ->
Pfs_db.rw_async_connection ->
Unixqueue.event_system -> unit Uq_engines.engine
val names_del_e : name:string ->
Pfs_db.rw_async_connection ->
Unixqueue.event_system -> unit Uq_engines.engine
typemodification =
[ `Blockalloc_upd of int * int64 * string
| `Datastore_del of int
| `Datastore_upd of int * string * int64 * bool
| `Inode_del of int64
| `Inode_ins of int64 * inodeinfo
| `Inode_upd of int64 * inodeinfo
| `Inode_upd_time of
int64 * Pfs_rpcapi_aux.time option * Pfs_rpcapi_aux.time option
| `Inodeblocks_del of int64 * int64 * int64
| `Inodeblocks_ins of int64 * Pfs_rpcapi_aux.blockinfo list
| `Names_del of string
| `Names_ins of string * int64
| `Revision_upd of string ]
Nn_db
and Nn_slave
.val exec_e : modification ->
Pfs_db.rw_async_connection ->
Unixqueue.event_system -> unit Uq_engines.engine