Regions¶
Functions
-
static perr_t pdc_region_close(struct pdc_region_info *op)¶
-
static perr_t pdc_transfer_request_close()¶
-
perr_t PDC_region_init()¶
PDC region initialization.
- Returns:
Non-negative on success/Negative on failure
-
perr_t PDC_transfer_request_init()¶
PDC region transfer instance initialization.
- Returns:
Non-negative on success/Negative on failure
-
perr_t PDC_region_list_null()¶
Check if region list is empty.
- Returns:
SUCCEED if empty/FAIL if not empty
-
perr_t PDCregion_close(pdcid_t region_id)¶
Close a region.
- Parameters:
region_id – [IN] ID of the object
- Returns:
Non-negative on success/Negative on failure
-
perr_t PDC_region_end()¶
PDC region finalize.
- Returns:
Non-negative on success/Negative on failure
-
pdcid_t PDCregion_create(psize_t ndims, uint64_t *offset, uint64_t *size)¶
Create a region.
- Parameters:
ndims – [IN] Number of dimensions
offset – [IN] Offset of each dimension
size – [IN] Size of each dimension
- Returns:
Object id on success/Zero on failure
-
perr_t PDCbuf_obj_map(void *buf, pdc_var_type_t local_type, pdcid_t local_reg, pdcid_t remote_obj, pdcid_t remote_reg)¶
Map an application buffer to an object.
- Parameters:
buf – [IN] Start point of an application buffer
local_type – [IN] Data type of data in memory
local_reg – [IN] ID of the source region
remote_obj – [IN] ID of the target object
remote_reg – [IN] ID of the target region
- Returns:
Non-negative on success/Negative on failure
-
struct pdc_region_info *PDCregion_get_info(pdcid_t reg_id)¶
Get region information.
- Parameters:
reg_id – [IN] ID of the region
obj_id – [IN] ID of the object
- Returns:
Pointer to pdc_region_info struct on success/Null on failure
-
perr_t PDCbuf_obj_unmap(pdcid_t remote_obj_id, pdcid_t remote_reg_id)¶
Unmap all regions within the object from a buffer (write unmap)
- Parameters:
remote_obj_id – [IN] ID of the target object
remote_reg_id – [IN] ID of the target region
- Returns:
Non-negative on success/Negative on failure
-
perr_t PDCreg_obtain_lock(pdcid_t obj_id, pdcid_t reg_id, pdc_access_t access_type, pdc_lock_mode_t lock_mode)¶
Obtain the region lock.
- Parameters:
obj_id – [IN] ID of the object
reg_id – [IN] ID of the region
access_type – [IN] Region access type: READ or WRITE
lock_mode – [IN] Lock mode of the region: BLOCK or NOBLOCK
- Returns:
Non-negative on success/Negative on failure
-
perr_t PDCreg_release_lock(pdcid_t obj_id, pdcid_t reg_id, pdc_access_t access_type)¶
Release the region lock.
- Parameters:
obj_id – [IN] ID of the object
reg_id – [IN] ID of the region
access_type – [IN] Region access type
- Returns:
Non-negative on success/Negative on failure
Typedefs
-
typedef struct pdc_transfer_request pdc_transfer_request¶
-
typedef struct pdc_transfer_request_start_all_pkg pdc_transfer_request_start_all_pkg¶
-
typedef struct pdc_transfer_request_wait_all_pkg pdc_transfer_request_wait_all_pkg¶
Functions
-
static int sort_by_data_server_start_all(const void *elem1, const void *elem2)¶
-
static int sort_by_metadata_server_start_all(const void *elem1, const void *elem2)¶
-
static int sort_by_data_server_wait_all(const void *elem1, const void *elem2)¶
-
pdcid_t PDCregion_transfer_create(void *buf, pdc_access_t access_type, pdcid_t obj_id, pdcid_t local_reg, pdcid_t remote_reg)¶
-
perr_t PDCregion_transfer_close(pdcid_t transfer_request_id)¶
-
static perr_t attach_local_transfer_request(struct _pdc_obj_info *p, pdcid_t transfer_request_id)¶
-
static perr_t remove_local_transfer_request(struct _pdc_obj_info *p, pdcid_t transfer_request_id)¶
-
static perr_t static_region_partition(char *buf, int ndim, uint64_t unit, pdc_access_t access_type, uint64_t *obj_dims, uint64_t *offset, uint64_t *size, int set_output_buf, int *n_data_servers, uint32_t **data_server_ids, uint64_t ***sub_offsets, uint64_t ***output_offsets, uint64_t ***output_sizes, char ***output_buf)¶
-
static perr_t pack_region_buffer(char *buf, uint64_t *obj_dims, size_t total_data_size, int local_ndim, uint64_t *local_offset, uint64_t *local_size, size_t unit, pdc_access_t access_type, char **new_buf)¶
-
static perr_t set_obj_server_bufs(pdc_transfer_request *transfer_request)¶
-
static perr_t pack_region_metadata_query(pdc_transfer_request_start_all_pkg **transfer_request, int size, char **buf_ptr, uint64_t *total_buf_size_ptr)¶
-
static perr_t unpack_region_metadata_query(char *buf, pdc_transfer_request_start_all_pkg **transfer_request_input, pdc_transfer_request_start_all_pkg **transfer_request_head_ptr, pdc_transfer_request_start_all_pkg **transfer_request_end_ptr, int *size_ptr)¶
-
static perr_t register_metadata(pdc_transfer_request_start_all_pkg **transfer_request_input, int input_size, uint8_t is_write, pdc_transfer_request_start_all_pkg ***transfer_request_output_ptr, int *output_size_ptr)¶
-
static int prepare_start_all_requests(pdcid_t *transfer_request_id, int size, pdc_transfer_request_start_all_pkg ***write_transfer_request_ptr, pdc_transfer_request_start_all_pkg ***read_transfer_request_ptr, int *write_size_ptr, int *read_size_ptr, pdcid_t **posix_transfer_request_id_ptr, int *posix_size_ptr)¶
This function prepares lists of read and write requests separately for start_all function.
The lists are sorted in terms of data_server_id. We pack data from user buffer to contiguous buffers. Static partitioning requires having at most n_data_servers number of contiguous regions.
-
static int finish_start_all_requests(pdc_transfer_request_start_all_pkg **write_transfer_request, pdc_transfer_request_start_all_pkg **read_transfer_request, int write_size, int read_size)¶
-
static perr_t PDC_Client_pack_all_requests(int n_objs, pdc_transfer_request_start_all_pkg **transfer_requests, pdc_access_t access_type, char **bulk_buf_ptr, size_t *total_buf_size_ptr, char **read_bulk_buf)¶
-
static perr_t PDC_Client_start_all_requests(pdc_transfer_request_start_all_pkg **transfer_requests, int size)¶
-
perr_t PDCregion_transfer_start_all(pdcid_t *transfer_request_id, int size)¶
-
static int sorted_array_unions(const int **array, const int *input_size, int n_arrays, int **out_array, int *out_size)¶
Input: Sorted arrays Output: A single array that is sorted, and the union of sorted arrays.
-
perr_t PDCregion_transfer_start(pdcid_t transfer_request_id)¶
Start a region transfer from local region to remote region for an object on buf.
- Parameters:
buf – [IN] Start point of an application buffer
obj_id – [IN] ID of the target object
data_type – [IN] Data type of data in memory
local_reg – [IN] ID of the source region
remote_reg – [IN] ID of the target region
- Returns:
Non-negative on success/Negative on failure
-
static perr_t release_region_buffer(char *buf, uint64_t *obj_dims, int local_ndim, uint64_t *local_offset, uint64_t *local_size, size_t unit, pdc_access_t access_type, int bulk_buf_size, char *new_buf, char **bulk_buf, int **bulk_buf_ref, char **read_bulk_buf)¶
-
perr_t PDCregion_transfer_status(pdcid_t transfer_request_id, pdc_transfer_status_t *completed)¶
-
perr_t PDCregion_transfer_wait_all(pdcid_t *transfer_request_id, int size)¶
-
perr_t PDCregion_transfer_wait(pdcid_t transfer_request_id)¶
-
struct pdc_transfer_request
Public Members
-
pdcid_t obj_id¶
-
uint32_t data_server_id¶
-
uint32_t metadata_server_id¶
-
uint64_t *metadata_id¶
-
pdc_access_t access_type¶
-
pdc_var_type_t mem_type¶
-
size_t unit¶
-
char *buf¶
-
char **read_bulk_buf¶
-
char *new_buf¶
-
char **bulk_buf¶
-
int **bulk_buf_ref¶
-
pdc_region_partition_t region_partition¶
-
pdc_consistency_t consistency¶
-
int n_obj_servers¶
-
uint32_t *obj_servers¶
-
uint64_t **output_offsets¶
-
uint64_t **sub_offsets¶
-
uint64_t **output_sizes¶
-
char **output_buf¶
-
int local_region_ndim¶
-
uint64_t *local_region_offset¶
-
uint64_t *local_region_size¶
-
int remote_region_ndim¶
-
uint64_t *remote_region_offset¶
-
uint64_t *remote_region_size¶
-
uint64_t total_data_size¶
-
int obj_ndim¶
-
uint64_t *obj_dims¶
-
struct _pdc_obj_info *obj_pointer¶
-
pdcid_t obj_id¶
-
struct pdc_transfer_request_start_all_pkg
Public Members
-
uint32_t data_server_id¶
-
pdc_transfer_request *transfer_request¶
-
uint64_t *remote_offset¶
-
uint64_t *remote_size¶
-
int index¶
-
char *buf¶
-
struct pdc_transfer_request_start_all_pkg *next¶
-
uint32_t data_server_id¶
-
struct pdc_transfer_request_wait_all_pkg
Public Members
-
uint64_t metadata_id¶
-
uint32_t data_server_id¶
-
int index¶
-
pdc_transfer_request *transfer_request¶
-
struct pdc_transfer_request_wait_all_pkg *next¶
-
uint64_t metadata_id¶