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
type allocinfo = {
|
ai_inode : |
(* | inode number | *) |
|
ai_index : |
(* | index position in the file | *) |
|
ai_identity : |
(* | identity of the datanode | *) |
|
ai_block : |
(* | block number of the datanode | *) |
val update_allocinfo : int64 ->
allocinfo list ->
Nn_blocklist.blocklist -> (string, allocinfo) Hashtbl.tupdate_allocinfo inode ailist bilist: Returns a hash table ht
which maps each datanode identity to the selected allocinfo block.
In ailist the old list of allocinfo block is passed. This list
is updated with the information from bilist, which are the
just allocated blocks.val init : Pfs_db.db_config -> Unixqueue.event_system -> unitval ro_esys : unit -> Unixqueue.event_systemval commit_all_prepared_transactions : unit -> unitval transact : Unixqueue.event_system -> transactionval ro_transact : unit -> ro_transaction Uq_engines.engineval with_ro_trans : (Pfs_db.ro_async_connection -> Unixqueue.event_system -> 'a Uq_engines.engine) ->
'a Uq_engines.enginewith_ro_trans f: Runs e = f conn esys for a shared read-only
transaction and returns eval datastore_list_e : Pfs_db.ro_async_connection ->
Unixqueue.event_system -> Nn_datastores.datastore list Uq_engines.engineval datastore_list_ro_e : unit -> Nn_datastores.datastore list Uq_engines.engineval datastore_find_e : identity:string ->
Pfs_db.ro_async_connection ->
Unixqueue.event_system -> Nn_datastores.datastore option Uq_engines.engineval datastore_find_ro_e : identity:string -> Nn_datastores.datastore option Uq_engines.engineval datastore_upd_e : id:int ->
identity:string ->
size:int64 ->
enabled:bool ->
Pfs_db.rw_async_connection ->
Unixqueue.event_system -> unit Uq_engines.engineThe 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.enginetypeds_init_source =[ `Datastores of Nn_datastores.datastore list | `From_datastore_news_channel ]
val ds_cache_init : ds_init_source -> unit`From_datastore_news_channel: Calls Nn_datastore_news.list to
get a list of datastores, and automatically fetches any updates.
This is the right setting for the coordinator.`Datastores l: Uses the mapping l. This is the right setting
for slavesdatastore_* functions above do not
use the cache (they can be called to initialize the cache), and
also do neither set nor update the cache.val ds_cache_contents : unit -> Nn_datastores.datastore listval revision_get_e : Pfs_db.ro_async_connection ->
Unixqueue.event_system -> string Uq_engines.engineval revision_get_ro_e : unit -> string Uq_engines.engineval revision_upd_e : revstr:string ->
Pfs_db.rw_async_connection ->
Unixqueue.event_system -> unit Uq_engines.engineval blockalloc_list_e : datastore:int ->
blkidx_min:int64 ->
blkidx_max:int64 ->
Pfs_db.ro_async_connection ->
Unixqueue.event_system -> (int64 * string) list Uq_engines.enginedatastore ID. Returns the table
as pairs (blkidx,blkmap). Only pairs are returned with
blkidx_min <= blkidx <= blkidx_max.val blockalloc_list_ro_e : datastore:int ->
blkidx_min:int64 ->
blkidx_max:int64 -> (int64 * string) list Uq_engines.engineval blockalloc_upd_e : datastore:int ->
blkidx:int64 ->
blkmap:string ->
Pfs_db.rw_async_connection ->
Unixqueue.event_system -> unit Uq_engines.engineblockalloc tableval inode_listall_e : Pfs_db.ro_async_connection ->
Unixqueue.event_system -> int64 list Uq_engines.engineval inode_get_e : id:int64 ->
Pfs_db.ro_async_connection ->
Unixqueue.event_system -> inodeinfo option Uq_engines.engineval inode_get_ro_e : id:int64 -> inodeinfo option Uq_engines.engineval inode_maxid_e : Pfs_db.ro_async_connection ->
Unixqueue.event_system -> int64 Uq_engines.engineval inode_maxid_ro_e : unit -> int64 Uq_engines.engineval inode_ins_e : id:int64 ->
inodeinfo ->
Pfs_db.rw_async_connection ->
Unixqueue.event_system -> unit Uq_engines.engineinodeval inode_upd_e : id:int64 ->
inodeinfo ->
Pfs_db.rw_async_connection ->
Unixqueue.event_system -> unit Uq_engines.engineinode. 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.engineval inode_del_e : id:int64 ->
Pfs_db.rw_async_connection ->
Unixqueue.event_system -> unit Uq_engines.engineinodeval inodeblocks_get_e : inode:int64 ->
blkidx:int64 ->
len:int64 ->
Pfs_db.ro_async_connection ->
Unixqueue.event_system -> Nn_blocklist.blocklist Uq_engines.engineinode in the range from index
blkidx to blkidx+len-1.
Note that the returned blocks use an empty ticket not granting
any access!
val inodeblocks_get_ro_e : inode:int64 ->
blkidx:int64 -> len:int64 -> Nn_blocklist.blocklist Uq_engines.engineval inodeblocks_getall_e : inode:int64 ->
dsid:int ->
Pfs_db.ro_async_connection ->
Unixqueue.event_system -> (int64 * int64 * int64) list Uq_engines.engine(blkidx,block,length) 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.engineinode in the range from index
blkidx to blkidx+len-1.val inodeblocks_ins_e : inode:int64 ->
Nn_blocklist.blocklist ->
Pfs_db.rw_async_connection ->
Unixqueue.event_system -> unit Uq_engines.engineval allocinfo_get_e : inode:int64 ->
Pfs_db.rw_async_connection ->
Unixqueue.event_system -> allocinfo list Uq_engines.engineval allocinfo_get_ro_e : inode:int64 -> allocinfo list Uq_engines.engineval names_get_e : dir_inode:int64 ->
name:string ->
Pfs_db.ro_async_connection ->
Unixqueue.event_system -> int64 option Uq_engines.engineval names_get_ro_e : dir_inode:int64 -> name:string -> int64 option Uq_engines.engineval names_rev_get_e : inode:int64 ->
Pfs_db.ro_async_connection ->
Unixqueue.event_system -> (int64 * string) list Uq_engines.engineval names_rev_get_ro_e : inode:int64 -> (int64 * string) list Uq_engines.engineval names_get_parent_e : inode:int64 ->
Pfs_db.ro_async_connection ->
Unixqueue.event_system -> int64 option Uq_engines.engineNone is returned.val names_get_parent_ro_e : inode:int64 -> int64 option Uq_engines.engineval names_count_e : inode:int64 ->
Pfs_db.ro_async_connection -> Unixqueue.event_system -> int Uq_engines.engineval names_count_ro_e : inode:int64 -> int Uq_engines.engineval names_list_e : dir_inode:int64 ->
Pfs_db.ro_async_connection ->
Unixqueue.event_system -> (string * int64) list Uq_engines.enginedir_inode.
The contents are the member names and the inodes of the members.val names_list_ro_e : dir_inode:int64 -> (string * int64) list Uq_engines.engineval names_ins_e : dir_inode:int64 ->
name:string ->
inode:int64 ->
Pfs_db.rw_async_connection ->
Unixqueue.event_system -> unit Uq_engines.engineval names_del_e : dir_inode:int64 ->
name:string ->
Pfs_db.rw_async_connection ->
Unixqueue.event_system -> unit Uq_engines.engineval admin_table_get_e : key:string ->
Pfs_db.ro_async_connection ->
Unixqueue.event_system -> string Uq_engines.enginekeyval admin_table_get_ro_e : key:string -> string Uq_engines.engineval admin_table_exists_e : key:string ->
Pfs_db.ro_async_connection ->
Unixqueue.event_system -> bool Uq_engines.engineval admin_table_exists_ro_e : key:string -> bool Uq_engines.engineval admin_table_put_e : key:string ->
contents:string ->
Pfs_db.rw_async_connection ->
Unixqueue.event_system -> unit Uq_engines.engineval read_ug_admin_e : Pfs_db.ro_async_connection ->
Unixqueue.event_system -> (string * string) list Uq_engines.enginetypemodification =[ `Admin_table_put of string * string
| `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 * Nn_blocklist.blocklist
| `Names_del of int64 * string
| `Names_ins of int64 * 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