Skip to content

Commit 79a45b9

Browse files
committed
checkpoint
1 parent 6229e8d commit 79a45b9

File tree

9 files changed

+98
-69
lines changed

9 files changed

+98
-69
lines changed

src/api/pdc.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@ PDC_class_init()
4848
FUNC_ENTER(NULL);
4949

5050
perr_t ret_value = SUCCEED;
51-
5251
/* Initialize the atom group for the container property IDs */
5352
if (PDC_register_type(PDC_CLASS, (PDC_free_t)PDC_class__close) < 0)
5453
PGOTO_ERROR(FAIL, "Unable to initialize pdc class interface");

src/api/pdc_client_connect.c

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,24 +47,20 @@
4747
#include "pdc_malloc.h"
4848

4949
#include "mercury.h"
50-
#include "mercury_macros.h"
5150

52-
#include "string_utils.h"
5351
#include "dart_core.h"
5452
#include "timer_utils.h"
5553
#include "query_utils.h"
5654

5755
#include <stdio.h>
5856
#include <stdlib.h>
5957
#include <string.h>
60-
#include <ctype.h>
6158
#include <unistd.h>
6259
#include <fcntl.h>
6360
#include <sys/shm.h>
6461
#include <sys/stat.h>
6562
#include <sys/mman.h>
6663
#include <inttypes.h>
67-
#include <math.h>
6864
#include <sys/time.h>
6965
#include <errno.h>
7066

src/server/pdc_client_server_common.c

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1052,7 +1052,8 @@ perr_t
10521052
PDC_Server_data_write_out_region_per_file(uint64_t obj_id, struct pdc_region_info *region_info, void *buf,
10531053
size_t unit)
10541054
{
1055-
return SUCCEED;
1055+
FUNC_ENTER(NULL);
1056+
FUNC_LEAVE(SUCCEED);
10561057
}
10571058
perr_t
10581059
PDC_Server_data_write_out(uint64_t obj_id ATTRIBUTE(unused),
@@ -2022,17 +2023,16 @@ HG_TEST_RPC_CB(close_server, handle)
20222023

20232024
hg_return_t ret_value = HG_SUCCESS;
20242025
close_server_in_t in;
2025-
// close_server_out_t out;
20262026

2027-
HG_Get_input(handle, &in);
2028-
HG_Free_input(handle, &in);
2027+
if((ret_value = HG_Get_input(handle, &in)) != HG_SUCCESS)
2028+
PGOTO_ERROR(ret_value, "Failed to HG_Get_input");
2029+
if((ret_value = HG_Free_input(handle, &in)) != HG_SUCCESS)
2030+
PGOTO_ERROR(ret_value, "Failed to HG_Get_input");
20292031

20302032
close_all_server_handle_g = handle;
20312033

2032-
PDC_Server_set_close();
2033-
2034-
if (ret_value != HG_SUCCESS)
2035-
PGOTO_ERROR(ret_value, "Error with HG_Destroy");
2034+
if(PDC_Server_set_close() != SUCCEED)
2035+
PGOTO_ERROR(HG_OTHER_ERROR, "Failed to PDC_Server_set_close");
20362036

20372037
done:
20382038
FUNC_LEAVE(ret_value);

src/server/pdc_server.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1113,7 +1113,6 @@ PDC_Server_finalize()
11131113
hg_thread_mutex_destroy(&update_remote_server_addr_mutex_g);
11141114
#endif
11151115
PDC_Server_clear_obj_region();
1116-
11171116
PDC_server_transfer_request_finalize();
11181117

11191118
if (pdc_server_rank_g == 0)

src/server/pdc_server_metadata.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -278,15 +278,16 @@ find_metadata_by_id(uint64_t obj_id)
278278
if (metadata_hash_table_g != NULL) {
279279
// Since we only have the obj id, need to iterate the entire hash table
280280
n_entry = hash_table_num_entries(metadata_hash_table_g);
281+
LOG_INFO("%d entries in hash table\n", n_entry);
281282
hash_table_iterate(metadata_hash_table_g, &hash_table_iter);
282283

283284
while (n_entry != 0 && hash_table_iter_has_more(&hash_table_iter)) {
284-
285285
pair = hash_table_iter_next(&hash_table_iter);
286286
head = pair.value;
287287
// Now iterate the list under this entry
288288
DL_FOREACH(head->metadata, elt)
289289
{
290+
LOG_INFO("CHECKING AGAINST %d\n", elt->obj_id);
290291
if (elt->obj_id == obj_id) {
291292
return elt;
292293
}

src/server/pdc_server_region/pdc_server_data.c

Lines changed: 66 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -2839,7 +2839,6 @@ PDC_Server_update_local_region_storage_loc(region_list_t *region, uint64_t obj_i
28392839

28402840
perr_t ret_value = SUCCEED;
28412841
pdc_metadata_t *target_meta = NULL;
2842-
/* pdc_metadata_t *region_meta = NULL; */
28432842
region_list_t *region_elt = NULL, *new_region = NULL;
28442843
int update_success = -1;
28452844

@@ -4101,10 +4100,23 @@ static perr_t
41014100
PDC_Server_data_io_from_region_per_file(uint64_t obj_id, struct pdc_region_info *region_info, void *buf,
41024101
size_t unit, REGION_PER_FILE_IO_TYPE io_type)
41034102
{
4104-
int ret_value = SUCCEED;
4105-
41064103
FUNC_ENTER(NULL);
41074104

4105+
perr_t ret_value = SUCCEED;
4106+
uint64_t * indices = NULL;
4107+
pdc_metadata_t *obj_meta = NULL;
4108+
data_server_region_t *region = NULL;
4109+
uint64_t * global_size = NULL;
4110+
uint64_t * offset = NULL;
4111+
uint8_t *buf_io_ops = NULL;
4112+
void * target_buf = NULL;
4113+
uint64_t flat_offset, stride, num_elements,
4114+
region_index, region_num_elements, count,
4115+
new_region_index, old_region_size, flat_index,
4116+
temp_stride, offset_region;
4117+
off_t file_offset;
4118+
int ndim, i, d;
4119+
41084120
#ifdef NOAH_DEBUG
41094121
LOG_JUST_PRINT("===============================================\n");
41104122
LOG_JUST_PRINT("IO (%s) called with parameters:\n",
@@ -4114,42 +4126,39 @@ PDC_Server_data_io_from_region_per_file(uint64_t obj_id, struct pdc_region_info
41144126
LOG_JUST_PRINT("\tbuf: %p\n", buf);
41154127
LOG_JUST_PRINT("\tunit: %zu\n", unit);
41164128

4117-
for (int i = 0; i < region_info->ndim; i++) {
4129+
for (i = 0; i < region_info->ndim; i++) {
41184130
printf("\tregion_info->offset[%d] = %" PRIu64 "\n", i, region_info->offset[i]);
41194131
printf("\tregion_info->size[%d] = %" PRIu64 "\n", i, region_info->size[i]);
41204132
}
41214133
#endif
41224134

41234135
// Compute total number of elements
4124-
uint64_t num_elements = 1;
4125-
for (int i = 0; i < region_info->ndim; i++) {
4136+
num_elements = 1;
4137+
for (i = 0; i < region_info->ndim; i++)
41264138
num_elements *= region_info->size[i];
4127-
}
41284139

4129-
if (num_elements == 0 || unit == 0) {
4140+
if (num_elements == 0 || unit == 0)
41304141
PGOTO_ERROR(FAIL, "Requested I/O with 0 size");
4131-
}
41324142

4133-
pdc_metadata_t *obj_meta = PDC_Server_get_obj_metadata(obj_id);
4134-
if (obj_meta == NULL) {
4143+
obj_meta = PDC_Server_get_obj_metadata(obj_id);
4144+
if (obj_meta == NULL)
41354145
PGOTO_ERROR(FAIL, "Object metadata not found");
4136-
}
41374146

4138-
data_server_region_t *region = PDC_Server_get_obj_region(obj_id);
4139-
uint64_t * global_size = obj_meta->dims;
4140-
uint64_t * offset = region_info->offset;
4141-
int ndim = region_info->ndim;
4147+
region = PDC_Server_get_obj_region(obj_id);
4148+
global_size = obj_meta->dims;
4149+
offset = region_info->offset;
4150+
ndim = region_info->ndim;
41424151

41434152
#ifdef NOAH_DEBUG
41444153
LOG_JUST_PRINT("\tobj meta ndim: %d\n", ndim);
4145-
for (int i = 0; i < ndim; i++) {
4154+
for (i = 0; i < ndim; i++) {
41464155
LOG_JUST_PRINT("\tobj meta dims[%d] = %" PRIu64 "\n", i, global_size[i]);
41474156
}
41484157
#endif
41494158

41504159
// Compute flat offset from global start
4151-
uint64_t flat_offset = 0, stride = 1;
4152-
for (int i = ndim - 1; i >= 0; i--) {
4160+
flat_offset = 0, stride = 1;
4161+
for (i = ndim - 1; i >= 0; i--) {
41534162
flat_offset += offset[i] * stride;
41544163
stride *= global_size[i];
41554164
}
@@ -4160,8 +4169,8 @@ PDC_Server_data_io_from_region_per_file(uint64_t obj_id, struct pdc_region_info
41604169
#endif
41614170

41624171
// Determine initial region index
4163-
uint64_t region_index = 0;
4164-
uint64_t region_num_elements;
4172+
region_index = 0;
4173+
region_num_elements = 0;
41654174
if (region == NULL) {
41664175
region_index = flat_offset / num_elements;
41674176
}
@@ -4176,23 +4185,26 @@ PDC_Server_data_io_from_region_per_file(uint64_t obj_id, struct pdc_region_info
41764185
LOG_JUST_PRINT("\tregion_index: %d\n", region_index);
41774186
#endif
41784187
// Register the initial region
4179-
PDC_Server_register_obj_region_by_pointer(&region, obj_id, 0, region_index);
4180-
4188+
if(PDC_Server_register_obj_region_by_pointer(&region, obj_id, 0, region_index) != SUCCEED)
4189+
PGOTO_ERROR(FAIL, "Failed to PDC_Server_register_obj_region_by_pointer");
41814190
if (region == NULL) {
4182-
PGOTO_ERROR(FAIL, "Failed to register obj_region by pointer");
4191+
PGOTO_ERROR(FAIL, "Failed to PDC_Server_register_obj_region_by_pointer");
41834192
}
4184-
41854193
if (region->region_size_elements == UNITIALIZED_DATA_SERVER_REGION_SIZE_ELEMENTS) {
41864194
region->region_size_elements = num_elements;
41874195
}
41884196

41894197
// Used to buffer I/O operations
4190-
uint8_t *buf_io_ops = (uint8_t *)malloc(region->region_size_elements * unit);
4198+
buf_io_ops = (uint8_t *)PDC_malloc(region->region_size_elements * unit);
41914199
errno = 0;
4192-
if (ftruncate(region->fd, region->region_size_elements * unit) != 0) {
4193-
LOG_ERROR("Error: %s\n", strerror(errno));
4194-
PGOTO_ERROR(FAIL, "Failed to tfruncate");
4200+
struct stat st;
4201+
if (fstat(region->fd, &st) == 0 && st.st_size < region->region_size_elements * unit) {
4202+
if (ftruncate(region->fd, region->region_size_elements * unit) != 0) {
4203+
LOG_ERROR("Error: %s\n", strerror(errno));
4204+
PGOTO_ERROR(FAIL, "Failed to ftruncate");
4205+
}
41954206
}
4207+
41964208
errno = 0;
41974209
if (pread(region->fd, buf_io_ops, region->region_size_elements * unit, 0) !=
41984210
region->region_size_elements * unit) {
@@ -4201,27 +4213,28 @@ PDC_Server_data_io_from_region_per_file(uint64_t obj_id, struct pdc_region_info
42014213
}
42024214

42034215
// Allocate indices for iteration
4204-
uint64_t *indices = (uint64_t *)calloc(ndim, sizeof(uint64_t));
4216+
indices = (uint64_t *)calloc(ndim, sizeof(uint64_t));
42054217
if (indices == NULL) {
42064218
PGOTO_ERROR(FAIL, "calloc failed for indices");
42074219
}
42084220

4209-
for (uint64_t count = 0; count < num_elements; count++) {
4221+
for (count = 0; count < num_elements; count++) {
42104222
// Compute flat index
4211-
uint64_t flat_index = 0;
4212-
uint64_t temp_stride = 1;
4213-
for (int i = ndim - 1; i >= 0; i--) {
4223+
flat_index = 0;
4224+
temp_stride = 1;
4225+
for (i = ndim - 1; i >= 0; i--) {
42144226
flat_index += (offset[i] + indices[i]) * temp_stride;
42154227
temp_stride *= global_size[i];
42164228
}
42174229

42184230
// Determine region
4219-
uint64_t new_region_index = flat_index / region->region_size_elements;
4231+
new_region_index = flat_index / region->region_size_elements;
42204232
if (new_region_index != region_index) {
4221-
uint64_t old_region_size = region->region_size_elements;
4233+
old_region_size = region->region_size_elements;
42224234
if (region) {
42234235
pwrite(region->fd, buf_io_ops, region->region_size_elements * unit, 0);
4224-
PDC_Server_unregister_obj_region_by_pointer(region, 0);
4236+
if(PDC_Server_unregister_obj_region_by_pointer(region, 0) != SUCCEED)
4237+
PGOTO_ERROR(FAIL, "Failed to PDC_Server_unregister_obj_region_by_pointer");
42254238
region->fd = -1;
42264239
}
42274240
#ifdef NOAH_DEBUG
@@ -4230,7 +4243,8 @@ PDC_Server_data_io_from_region_per_file(uint64_t obj_id, struct pdc_region_info
42304243
LOG_JUST_PRINT("\tflat index: %d\n", flat_index);
42314244
#endif
42324245
region_index = new_region_index;
4233-
PDC_Server_register_obj_region_by_pointer(&region, obj_id, 0, region_index);
4246+
if(PDC_Server_register_obj_region_by_pointer(&region, obj_id, 0, region_index) != SUCCEED)
4247+
PGOTO_ERROR(FAIL, "Failed to PDC_Server_register_obj_region_by_pointer");
42344248

42354249
errno = 0;
42364250
if (ftruncate(region->fd, region->region_size_elements * unit) != 0) {
@@ -4255,9 +4269,9 @@ PDC_Server_data_io_from_region_per_file(uint64_t obj_id, struct pdc_region_info
42554269
PGOTO_ERROR(FAIL, "Region not properly initialized");
42564270
}
42574271

4258-
uint64_t offset_region = flat_index % region->region_size_elements;
4259-
void * target_buf = (char *)buf + (count * unit);
4260-
off_t file_offset = offset_region * unit;
4272+
offset_region = flat_index % region->region_size_elements;
4273+
target_buf = (char *)buf + (count * unit);
4274+
file_offset = offset_region * unit;
42614275

42624276
if (io_type == REGION_PER_FILE_IO_TYPE_READ) {
42634277
memcpy(target_buf, &(buf_io_ops[file_offset]), unit);
@@ -4267,7 +4281,7 @@ PDC_Server_data_io_from_region_per_file(uint64_t obj_id, struct pdc_region_info
42674281
}
42684282

42694283
// Advance indices
4270-
for (int d = ndim - 1; d >= 0; d--) {
4284+
for (d = ndim - 1; d >= 0; d--) {
42714285
indices[d]++;
42724286
if (indices[d] < region_info->size[d]) {
42734287
break;
@@ -4280,9 +4294,12 @@ PDC_Server_data_io_from_region_per_file(uint64_t obj_id, struct pdc_region_info
42804294

42814295
done:
42824296
if (region) {
4283-
pwrite(region->fd, buf_io_ops, region->region_size_elements * unit, 0);
4284-
PDC_Server_unregister_obj_region_by_pointer(region, 0);
4297+
if(io_type == REGION_PER_FILE_IO_TYPE_WRITE)
4298+
pwrite(region->fd, buf_io_ops, region->region_size_elements * unit, 0);
4299+
if(PDC_Server_unregister_obj_region_by_pointer(region, 0) != SUCCEED)
4300+
PGOTO_ERROR(FAIL, "Failed to PDC_Server_unregister_obj_region_by_pointer");
42854301
region->fd = -1;
4302+
42864303
}
42874304
if (indices)
42884305
indices = PDC_free(indices);
@@ -4315,6 +4332,8 @@ PDC_Server_data_read_from_region_per_file(uint64_t obj_id, struct pdc_region_inf
43154332
perr_t
43164333
PDC_Server_data_write_out(uint64_t obj_id, struct pdc_region_info *region_info, void *buf, size_t unit)
43174334
{
4335+
abort();
4336+
43184337
FUNC_ENTER(NULL);
43194338

43204339
perr_t ret_value = SUCCEED;
@@ -4655,7 +4674,9 @@ PDC_Server_data_write_out(uint64_t obj_id, struct pdc_region_info *region_info,
46554674

46564675
perr_t
46574676
PDC_Server_data_read_from(uint64_t obj_id, struct pdc_region_info *region_info, void *buf, size_t unit)
4658-
{
4677+
{
4678+
abort();
4679+
46594680
FUNC_ENTER(NULL);
46604681

46614682
perr_t ret_value = SUCCEED;
@@ -5105,7 +5126,6 @@ PDC_Server_get_all_storage_meta_with_one_name(storage_meta_query_one_name_args_t
51055126
* \param in[IN] input with type accumulate_storage_meta_t
51065127
*
51075128
* \return Non-negative on success/Negative on failure
5108-
51095129
*/
51105130
static perr_t
51115131
PDC_Server_accumulate_storage_meta_then_read(storage_meta_query_one_name_args_t *in)

src/server/pdc_server_region/pdc_server_region_cache.c

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -706,6 +706,10 @@ sort_by_offset(const void *elem1, const void *elem2)
706706
FUNC_LEAVE(0);
707707
#pragma GCC diagnostic pop
708708
}
709+
710+
/**
711+
* Returns the number of flushed regions
712+
*/
709713
int
710714
PDC_region_cache_flush_by_pointer(uint64_t obj_id, pdc_obj_cache *obj_cache, int flag)
711715
{
@@ -810,8 +814,11 @@ PDC_region_cache_flush_by_pointer(uint64_t obj_id, pdc_obj_cache *obj_cache, int
810814
LOG_ERROR("region_cache_info was null\n");
811815
}
812816

813-
PDC_Server_transfer_request_io(obj_id, obj_cache->ndim, obj_cache->dims, region_cache_info,
814-
region_cache_info->buf, region_cache_info->unit, 1);
817+
if(PDC_Server_transfer_request_io(obj_id, obj_cache->ndim, obj_cache->dims, region_cache_info,
818+
region_cache_info->buf, region_cache_info->unit, 1) != SUCCEED) {
819+
LOG_ERROR("Failed to PDC_Server_transfer_request_io");
820+
FUNC_LEAVE(nflush);
821+
}
815822
if (obj_cache->ndim >= 1)
816823
write_size = region_cache_info->unit * region_cache_info->size[0];
817824
if (obj_cache->ndim >= 2)
@@ -845,7 +852,6 @@ PDC_region_cache_flush_by_pointer(uint64_t obj_id, pdc_obj_cache *obj_cache, int
845852
pdc_server_timings->PDCcache_flush += MPI_Wtime() - start_time;
846853
#endif
847854

848-
/* PDC_get_time_str(cur_time); */
849855
FUNC_LEAVE(nflush);
850856
}
851857

src/server/pdc_server_region/pdc_server_region_transfer.c

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -290,10 +290,13 @@ PDC_Server_transfer_request_io(uint64_t obj_id, int obj_ndim, const uint64_t *ob
290290
}
291291
#else
292292
if (is_write) {
293-
PDC_Server_data_write_out_region_per_file(obj_id, region_info, buf, unit);
293+
LOG_INFO("1\n");
294+
if(PDC_Server_data_write_out_region_per_file(obj_id, region_info, buf, unit) != SUCCEED)
295+
PGOTO_ERROR(FAIL, "Failed to PDC_Server_data_write_out_region_per_file");
294296
}
295297
else {
296-
PDC_Server_data_read_from_region_per_file(obj_id, region_info, buf, unit);
298+
if(PDC_Server_data_read_from_region_per_file(obj_id, region_info, buf, unit) != SUCCEED)
299+
PGOTO_ERROR(FAIL, "Failed to PDC_Server_data_write_out_region_per_file");
297300
}
298301
PGOTO_DONE(SUCCEED);
299302
#endif

0 commit comments

Comments
 (0)