1 #ifndef ESDM_DATATYPES_INTERNAL_H
2 #define ESDM_DATATYPES_INTERNAL_H
10 #include <smd-datatype.h>
24 enum { ESDM_ID_LENGTH = 23 };
26 enum esdm_data_status_e {
33 typedef enum esdm_data_status_e esdm_data_status_e;
47 esdm_data_status_e status;
65 smd_attr_t *fill_value;
69 int64_t gridCount, incompleteGridCount, gridSlotCount;
73 esdm_data_status_e status;
89 esdm_data_status_e status;
103 typedef enum esdm_module_type_t {
106 } esdm_module_type_t;
137 int (*fragment_metadata_free) (
esdm_backend_t * b,
void * options);
185 typedef enum esdmI_fragmentation_method_t {
186 ESDMI_FRAGMENTATION_METHOD_CONTIGUOUS,
187 ESDMI_FRAGMENTATION_METHOD_EQUALIZED
188 } esdmI_fragmentation_method_t;
200 esdm_module_type_t type;
206 GThreadPool *threadPool;
217 typedef enum io_operation_t {
223 atomic_int pending_ops;
225 GCond done_condition;
257 int max_threads_per_node;
258 int max_global_threads;
259 uint64_t max_fragment_size;
260 esdmI_fragmentation_method_t fragmentation_method;
261 data_accessibility_t data_accessibility;
262 uint32_t write_stream_blocksize;
264 json_t *performance_model;
280 esdm_module_type_t *module;
293 BOUND_LIST_IMPLEMENTATION_ARRAY = 0,
294 BOUND_LIST_IMPLEMENTATION_BTREE = 1
299 uint8_t boundListImplementation;
303 int data_backend_count;
315 GThreadPool *thread_pool;
316 GAsyncQueue *read_queue;
317 GAsyncQueue *write_queue;
341 typedef struct esdm_bytesequence_t esdm_bytesyquence_t;
369 int64_t allocatedCount;
392 void (*add)(
void* me, int64_t bound,
bool isStart, int64_t cubeIndex);
395 void (*destruct)(
void* me);
403 static inline void boundList_add(
esdmI_boundList_t* me, int64_t bound,
bool isStart, int64_t cubeIndex) { me->vtable->add(me, bound, isStart, cubeIndex); }
406 static inline void boundList_destruct(
esdmI_boundList_t* me) { me->vtable->destruct(me); }
417 int64_t count, allocatedCount;
428 #define BOUND_TREE_MAX_BRANCH_FACTOR 21
429 #define BOUND_TREE_MAX_ENTRY_COUNT (BOUND_TREE_MAX_BRANCH_FACTOR - 1)
441 int64_t neighbourCount, allocatedCount, *neighbourIndices;
447 int64_t allocatedCount;
458 double coverageCheck;
467 double backendDistribution;
468 double backendDispatch;
485 double performance_estimate;
486 double estimate_throughput;
487 double fragment_create;
488 double fragment_retrieve;
489 double fragment_update;
490 double fragment_delete;
491 double fragment_metadata_create;
492 double fragment_metadata_load;
493 double fragment_metadata_free;
496 double fragment_write_stream_blocksize;
502 double fragmentAdding;
503 double fragmentLookup;
504 double metadataCreation;
507 int64_t fragmentAddCalls;
508 int64_t fragmentLookupCalls;
509 int64_t metadataCreationCalls;
510 int64_t setCreationCalls;
Datatype primitives provided by ESDM.
esdm_status
Definition: esdm-datatypes.h:37
Definition: esdm-datatypes-internal.h:414
Definition: esdm-datatypes-internal.h:374
Definition: esdm-datatypes-internal.h:399
Definition: esdm-datatypes-internal.h:391
Definition: esdm-datatypes-internal.h:430
Definition: esdm-datatypes-internal.h:360
Definition: esdm-datatypes-internal.h:445
Definition: esdm-datatypes-internal.h:367
Definition: esdm-datatypes-internal.h:354
Definition: esdm-datatypes-internal.h:440
Definition: esdm-datatypes-internal.h:349
Definition: esdm-datatypes-internal.h:483
Definition: esdm-datatypes-internal.h:123
int(* fragment_write_stream_blocksize)(esdm_backend_t *b, estream_write_t *state, void *cur_buf, size_t cur_offset, uint64_t cur_size)
Definition: esdm-datatypes-internal.h:158
Definition: esdm-datatypes-internal.h:197
Definition: esdm-datatypes-internal.h:342
Definition: esdm-datatypes-internal.h:252
Definition: esdm-datatypes-internal.h:269
Definition: esdm-datatypes-internal.h:297
Definition: esdm-datatypes-internal.h:41
Definition: esdm-datatypes-internal.h:475
Definition: esdm-datatypes-internal.h:59
Definition: esdm-datatypes-internal.h:35
Definition: esdm-datatypes.h:81
Definition: esdm-datatypes-internal.h:78
Definition: esdm-datatypes-internal.h:501
Definition: esdm-datatypes-internal.h:53
Definition: esdm-grid.c:18
Definition: esdm-datatypes-internal.h:326
Definition: esdm-datatypes-internal.h:285
Definition: esdm-datatypes-internal.h:309
Definition: esdm-datatypes-internal.h:161
Definition: esdm-datatypes-internal.h:209
Definition: esdm-datatypes-internal.h:278
Definition: esdm-datatypes-internal.h:302
Definition: esdm-datatypes-internal.h:456
Definition: esdm-datatypes-internal.h:313
Definition: esdm-datatypes.h:101
Definition: esdm-datatypes-internal.h:466
Definition: esdm-stream.h:158
Definition: esdm-datatypes-internal.h:222
Definition: esdm-datatypes-internal.h:229
Definition: esdm-datatypes-internal.h:236
Definition: esdm-datatypes-internal.h:16
Definition: esdm-datatypes-internal.h:380