DAOS API (v2.1 - dev)
Loading...
Searching...
No Matches
daos_task.h
1
10#ifndef __DAOS_TASK_H__
11#define __DAOS_TASK_H__
12
13#if defined(__cplusplus)
14extern "C" {
15#endif
16
17#include <daos_types.h>
18#include <daos_obj.h>
19#include <daos_kv.h>
20#include <daos_array.h>
21#include <daos_errno.h>
22#include <daos_prop.h>
23#include <daos_cont.h>
24#include <daos_pool.h>
25#include <daos_mgmt.h>
26#include <daos/tse.h>
27
29typedef enum {
30 DAOS_OPC_INVALID = -1,
31
33 /* Starting at 0 will break Application Binary Interface backward
34 * compatibility */
35 DAOS_OPC_SET_PARAMS = 3,
36 DAOS_OPC_MGMT_GET_BS_STATE,
37
39 DAOS_OPC_POOL_CONNECT = 5,
40 DAOS_OPC_POOL_DISCONNECT,
41 DAOS_OPC_POOL_EXCLUDE,
42 DAOS_OPC_POOL_EXCLUDE_OUT,
43 DAOS_OPC_POOL_ADD,
44 DAOS_OPC_POOL_QUERY,
45 DAOS_OPC_POOL_QUERY_INFO,
46 DAOS_OPC_POOL_LIST_ATTR,
47 DAOS_OPC_POOL_GET_ATTR,
48 DAOS_OPC_POOL_SET_ATTR,
49 DAOS_OPC_POOL_DEL_ATTR,
50 DAOS_OPC_POOL_STOP_SVC,
51 DAOS_OPC_POOL_LIST_CONT,
52
54 DAOS_OPC_CONT_CREATE = 18,
55 DAOS_OPC_CONT_OPEN,
56 DAOS_OPC_CONT_CLOSE,
57 DAOS_OPC_CONT_DESTROY,
58 DAOS_OPC_CONT_QUERY,
59 DAOS_OPC_CONT_SET_PROP,
60 DAOS_OPC_CONT_UPDATE_ACL,
61 DAOS_OPC_CONT_DELETE_ACL,
62 DAOS_OPC_CONT_AGGREGATE,
63 DAOS_OPC_CONT_ROLLBACK,
64 DAOS_OPC_CONT_SUBSCRIBE,
65 DAOS_OPC_CONT_LIST_ATTR,
66 DAOS_OPC_CONT_GET_ATTR,
67 DAOS_OPC_CONT_SET_ATTR,
68 DAOS_OPC_CONT_DEL_ATTR,
69 DAOS_OPC_CONT_ALLOC_OIDS,
70 DAOS_OPC_CONT_LIST_SNAP,
71 DAOS_OPC_CONT_CREATE_SNAP,
72 DAOS_OPC_CONT_DESTROY_SNAP,
73
75 DAOS_OPC_TX_OPEN = 37,
76 DAOS_OPC_TX_COMMIT,
77 DAOS_OPC_TX_ABORT,
78 DAOS_OPC_TX_OPEN_SNAP,
79 DAOS_OPC_TX_CLOSE,
80 DAOS_OPC_TX_RESTART,
81
83 DAOS_OPC_OBJ_QUERY_CLASS = 44,
84 DAOS_OPC_OBJ_LIST_CLASS,
85 DAOS_OPC_OBJ_OPEN,
86 DAOS_OPC_OBJ_CLOSE,
87 DAOS_OPC_OBJ_PUNCH,
88 DAOS_OPC_OBJ_PUNCH_DKEYS,
89 DAOS_OPC_OBJ_PUNCH_AKEYS,
90 DAOS_OPC_OBJ_QUERY,
91 DAOS_OPC_OBJ_QUERY_KEY,
92 DAOS_OPC_OBJ_SYNC,
93 DAOS_OPC_OBJ_FETCH,
94 DAOS_OPC_OBJ_UPDATE,
95 DAOS_OPC_OBJ_LIST_DKEY,
96 DAOS_OPC_OBJ_LIST_AKEY,
97 DAOS_OPC_OBJ_LIST_RECX,
98 DAOS_OPC_OBJ_LIST_OBJ,
99
101 DAOS_OPC_ARRAY_CREATE = 60,
102 DAOS_OPC_ARRAY_OPEN,
103 DAOS_OPC_ARRAY_CLOSE,
104 DAOS_OPC_ARRAY_DESTROY,
105 DAOS_OPC_ARRAY_READ,
106 DAOS_OPC_ARRAY_WRITE,
107 DAOS_OPC_ARRAY_PUNCH,
108 DAOS_OPC_ARRAY_GET_SIZE,
109 DAOS_OPC_ARRAY_SET_SIZE,
110 DAOS_OPC_ARRAY_STAT,
111
113 DAOS_OPC_KV_OPEN = 70,
114 DAOS_OPC_KV_CLOSE,
115 DAOS_OPC_KV_DESTROY,
116 DAOS_OPC_KV_GET,
117 DAOS_OPC_KV_PUT,
118 DAOS_OPC_KV_REMOVE,
119 DAOS_OPC_KV_LIST,
120
121 DAOS_OPC_MAX
122} daos_opc_t;
123
125typedef struct {
127 const char *grp;
129 d_rank_t rank;
131 uint32_t key_id;
133 uint64_t value;
135 uint64_t value_extra;
137
139typedef struct {
144 uuid_t uuid;
146 const char *grp;
148 unsigned int flags;
154 const char *pool;
156
162
164typedef struct {
166 uuid_t uuid;
168 const char *grp;
170 d_rank_list_t *svc;
174
184
196
208
218
220typedef struct {
224 char *buf;
226 size_t *size;
228
230typedef struct {
234 int n;
236 char const *const *names;
238 void *const *values;
240 size_t *sizes;
242
244typedef struct {
248 int n;
250 char const *const *names;
252 void const *const *values;
254 size_t const *sizes;
256
258typedef struct {
262 int n;
264 char const *const *names;
266
268typedef struct {
270 uuid_t uuid;
272 const char *group;
274 d_rank_list_t *targets;
276 d_rank_list_t *failed;
278
280typedef struct {
282 const char *grp;
284 uuid_t uuid;
286 int *state;
288
294
309
311typedef struct {
318 uuid_t uuid;
320 unsigned int flags;
326 const char *cont;
328
334
336typedef struct {
343 uuid_t uuid;
345 int force;
347 const char *cont;
349
359
367
375
377typedef struct {
381 uint8_t type;
383 d_string_t name;
385
387typedef struct {
391 daos_epoch_t epoch;
393
395typedef struct {
399 daos_epoch_t epoch;
401
403typedef struct {
410 daos_epoch_t *epoch;
412
414typedef struct {
418 char *buf;
420 size_t *size;
422
424typedef struct {
428 int n;
430 char const *const *names;
432 void *const *values;
434 size_t *sizes;
436
438typedef struct {
442 int n;
444 char const *const *names;
446 void const *const *values;
448 size_t const *sizes;
450
452typedef struct {
456 int n;
458 char const *const *names;
460
462typedef struct {
466 daos_size_t num_oids;
468 uint64_t *oid;
470
472typedef struct {
479 int *nr;
481 daos_epoch_t *epochs;
483 char **names;
487
489typedef struct {
493 unsigned int opts;
495 daos_epoch_t *epoch;
497 char *name;
499
507
517
519typedef struct {
523 uint32_t flags;
525
527typedef struct {
531
541
543typedef struct {
547
549typedef struct {
553
555typedef struct {
559 daos_oclass_id_t cid;
563
573
585
587typedef struct {
591
600typedef struct {
606 daos_key_t *dkey;
608 daos_key_t *akeys;
610 uint64_t flags;
612 unsigned int akey_nr;
614
616typedef struct {
624 d_rank_list_t *ranks;
626
628typedef struct {
637 daos_key_t *dkey;
642 daos_key_t *akey;
646 uint64_t flags;
648 daos_epoch_t *max_epoch;
650
652typedef struct {
658 uint64_t flags;
660 daos_key_t *dkey;
662 uint32_t nr;
664 uint32_t extra_flags;
668 d_sg_list_t *sgls;
676 d_iov_t *csum_iov;
678
683
689 daos_epoch_t epoch;
691 daos_epoch_t **epochs_p;
693 int *nr;
694};
695
741
752
764
781
801
817
837
843
855
865
875
885
893
905
907typedef struct {
911
919
921typedef struct {
927 uint64_t flags;
929 const char *key;
931 daos_size_t *buf_size;
933 void *buf;
935
937typedef struct {
943 uint64_t flags;
945 const char *key;
947 daos_size_t buf_size;
949 const void *buf;
951
953typedef struct {
959 uint64_t flags;
961 const char *key;
963
982
1007int
1008daos_task_create(daos_opc_t opc, tse_sched_t *sched,
1009 unsigned int num_deps, tse_task_t *dep_tasks[],
1010 tse_task_t **taskp);
1011
1026int
1027daos_task_reset(tse_task_t *task, daos_opc_t opc);
1028
1039void *
1040daos_task_get_args(tse_task_t *task);
1041
1050void *
1051daos_task_get_priv(tse_task_t *task);
1052
1061void *
1062daos_task_set_priv(tse_task_t *task, void *priv);
1063
1077int
1078daos_progress(tse_sched_t *sched, int64_t timeout, bool *is_empty);
1079
1080#if defined(__cplusplus)
1081}
1082#endif
1083
1084#endif /* __DAOS_TASK_H__ */
daos_handle_t oh
Definition daos_task.h:841
daos_size_t chunk_size
Definition daos_task.h:813
daos_handle_t coh
Definition daos_task.h:805
daos_handle_t th
Definition daos_task.h:809
daos_obj_id_t oid
Definition daos_task.h:807
daos_size_t cell_size
Definition daos_task.h:811
daos_handle_t * oh
Definition daos_task.h:815
daos_handle_t th
Definition daos_task.h:891
daos_handle_t oh
Definition daos_task.h:889
daos_size_t * size
Definition daos_task.h:863
daos_handle_t th
Definition daos_task.h:861
daos_handle_t oh
Definition daos_task.h:859
d_sg_list_t * sgl
Definition daos_task.h:853
daos_handle_t th
Definition daos_task.h:849
daos_array_iod_t * iod
Definition daos_task.h:851
daos_handle_t oh
Definition daos_task.h:847
daos_size_t * chunk_size
Definition daos_task.h:833
daos_size_t * cell_size
Definition daos_task.h:831
daos_handle_t coh
Definition daos_task.h:821
daos_handle_t th
Definition daos_task.h:825
daos_obj_id_t oid
Definition daos_task.h:823
unsigned int open_with_attr
Definition daos_task.h:829
daos_handle_t * oh
Definition daos_task.h:835
unsigned int mode
Definition daos_task.h:827
daos_handle_t th
Definition daos_task.h:881
daos_handle_t oh
Definition daos_task.h:879
daos_array_stbuf_t * stbuf
Definition daos_task.h:873
daos_handle_t th
Definition daos_task.h:871
daos_handle_t oh
Definition daos_task.h:869
daos_epoch_t epoch
Definition daos_task.h:391
daos_handle_t coh
Definition daos_task.h:389
daos_handle_t coh
Definition daos_task.h:464
daos_handle_t coh
Definition daos_task.h:332
daos_epoch_t * epoch
Definition daos_task.h:495
daos_prop_t * prop
Definition daos_task.h:305
daos_handle_t poh
Definition daos_task.h:298
daos_handle_t coh
Definition daos_task.h:454
char const *const * names
Definition daos_task.h:458
daos_handle_t coh
Definition daos_task.h:379
daos_epoch_range_t epr
Definition daos_task.h:505
const char * cont
Definition daos_task.h:347
daos_handle_t poh
Definition daos_task.h:338
daos_handle_t coh
Definition daos_task.h:426
void *const * values
Definition daos_task.h:432
char const *const * names
Definition daos_task.h:430
daos_handle_t coh
Definition daos_task.h:416
daos_handle_t coh
Definition daos_task.h:474
daos_anchor_t * anchor
Definition daos_task.h:485
daos_epoch_t * epochs
Definition daos_task.h:481
const char * cont
Definition daos_task.h:326
daos_handle_t * coh
Definition daos_task.h:322
unsigned int flags
Definition daos_task.h:320
daos_handle_t poh
Definition daos_task.h:313
daos_cont_info_t * info
Definition daos_task.h:324
daos_handle_t coh
Definition daos_task.h:353
daos_prop_t * prop
Definition daos_task.h:357
daos_cont_info_t * info
Definition daos_task.h:355
daos_epoch_t epoch
Definition daos_task.h:399
daos_handle_t coh
Definition daos_task.h:397
daos_handle_t coh
Definition daos_task.h:440
void const *const * values
Definition daos_task.h:446
size_t const * sizes
Definition daos_task.h:448
char const *const * names
Definition daos_task.h:444
daos_handle_t coh
Definition daos_task.h:363
daos_prop_t * prop
Definition daos_task.h:365
daos_epoch_t * epoch
Definition daos_task.h:410
daos_handle_t coh
Definition daos_task.h:405
daos_handle_t coh
Definition daos_task.h:371
struct daos_acl * acl
Definition daos_task.h:373
daos_handle_t oh
Definition daos_task.h:909
daos_handle_t th
Definition daos_task.h:917
daos_handle_t oh
Definition daos_task.h:915
daos_size_t * buf_size
Definition daos_task.h:931
uint64_t flags
Definition daos_task.h:927
daos_handle_t th
Definition daos_task.h:925
const char * key
Definition daos_task.h:929
daos_handle_t oh
Definition daos_task.h:923
d_sg_list_t * sgl
Definition daos_task.h:978
uint32_t * nr
Definition daos_task.h:974
daos_handle_t th
Definition daos_task.h:969
daos_anchor_t * anchor
Definition daos_task.h:980
daos_key_desc_t * kds
Definition daos_task.h:976
daos_handle_t oh
Definition daos_task.h:967
daos_handle_t coh
Definition daos_task.h:897
daos_obj_id_t oid
Definition daos_task.h:899
daos_handle_t * oh
Definition daos_task.h:903
unsigned int mode
Definition daos_task.h:901
const void * buf
Definition daos_task.h:949
uint64_t flags
Definition daos_task.h:943
daos_handle_t th
Definition daos_task.h:941
const char * key
Definition daos_task.h:945
daos_handle_t oh
Definition daos_task.h:939
daos_size_t buf_size
Definition daos_task.h:947
daos_handle_t th
Definition daos_task.h:957
const char * key
Definition daos_task.h:961
daos_handle_t oh
Definition daos_task.h:955
daos_handle_t oh
Definition daos_task.h:589
struct daos_oclass_list * clist
Definition daos_task.h:569
daos_handle_t coh
Definition daos_task.h:567
daos_anchor_t * anchor
Definition daos_task.h:571
d_sg_list_t * sgl
Definition daos_task.h:711
uint32_t * nr
Definition daos_task.h:707
d_iov_t * csum
Definition daos_task.h:737
daos_size_t * size
Definition daos_task.h:713
daos_recx_t * recxs
Definition daos_task.h:717
uint32_t * versions
Definition daos_task.h:733
daos_anchor_t * dkey_anchor
Definition daos_task.h:729
daos_handle_t th
Definition daos_task.h:701
daos_key_t * akey
Definition daos_task.h:705
daos_key_t * dkey
Definition daos_task.h:703
daos_epoch_range_t * eprs
Definition daos_task.h:719
daos_iod_type_t type
Definition daos_task.h:715
daos_anchor_t * anchor
Definition daos_task.h:727
daos_key_desc_t * kds
Definition daos_task.h:709
daos_anchor_t * akey_anchor
Definition daos_task.h:731
daos_handle_t oh
Definition daos_task.h:699
daos_handle_t coh
Definition daos_task.h:577
daos_obj_id_t oid
Definition daos_task.h:579
daos_handle_t * oh
Definition daos_task.h:583
unsigned int mode
Definition daos_task.h:581
unsigned int akey_nr
Definition daos_task.h:612
daos_handle_t th
Definition daos_task.h:602
daos_key_t * dkey
Definition daos_task.h:606
daos_key_t * akeys
Definition daos_task.h:608
daos_handle_t oh
Definition daos_task.h:604
daos_oclass_id_t cid
Definition daos_task.h:559
daos_handle_t coh
Definition daos_task.h:557
struct daos_oclass_attr * cattr
Definition daos_task.h:561
daos_epoch_t * max_epoch
Definition daos_task.h:648
daos_handle_t th
Definition daos_task.h:632
daos_recx_t * recx
Definition daos_task.h:644
daos_key_t * akey
Definition daos_task.h:642
daos_key_t * dkey
Definition daos_task.h:637
daos_handle_t oh
Definition daos_task.h:630
struct daos_obj_attr * oa
Definition daos_task.h:622
d_rank_list_t * ranks
Definition daos_task.h:624
daos_handle_t th
Definition daos_task.h:620
daos_handle_t oh
Definition daos_task.h:618
daos_oclass_id_t cid
Definition daos_task.h:180
struct daos_oclass_attr * cattr
Definition daos_task.h:182
daos_iod_t * iods
Definition daos_task.h:666
uint32_t nr
Definition daos_task.h:662
d_iov_t * csum_iov
Definition daos_task.h:676
void * extra_arg
Definition daos_task.h:672
uint64_t flags
Definition daos_task.h:658
daos_handle_t th
Definition daos_task.h:654
daos_iom_t * ioms
Definition daos_task.h:670
daos_key_t * dkey
Definition daos_task.h:660
uint32_t extra_flags
Definition daos_task.h:664
daos_handle_t oh
Definition daos_task.h:656
d_sg_list_t * sgls
Definition daos_task.h:668
daos_epoch_t epoch
Definition daos_task.h:689
daos_handle_t oh
Definition daos_task.h:687
daos_epoch_t ** epochs_p
Definition daos_task.h:691
const char * pool
Definition daos_task.h:154
const char * grp
Definition daos_task.h:146
daos_handle_t * poh
Definition daos_task.h:150
daos_pool_info_t * info
Definition daos_task.h:152
unsigned int flags
Definition daos_task.h:148
char const *const * names
Definition daos_task.h:264
daos_handle_t poh
Definition daos_task.h:260
daos_handle_t poh
Definition daos_task.h:160
void *const * values
Definition daos_task.h:238
char const *const * names
Definition daos_task.h:236
daos_handle_t poh
Definition daos_task.h:232
daos_handle_t poh
Definition daos_task.h:222
struct daos_pool_cont_info * cont_buf
Definition daos_task.h:216
daos_size_t * ncont
Definition daos_task.h:214
daos_handle_t poh
Definition daos_task.h:212
daos_prop_t * prop
Definition daos_task.h:194
daos_pool_info_t * info
Definition daos_task.h:192
d_rank_list_t ** ranks
Definition daos_task.h:190
daos_handle_t poh
Definition daos_task.h:188
daos_target_info_t * info
Definition daos_task.h:206
d_rank_list_t * failed
Definition daos_task.h:276
const char * group
Definition daos_task.h:272
d_rank_list_t * targets
Definition daos_task.h:274
void const *const * values
Definition daos_task.h:252
size_t const * sizes
Definition daos_task.h:254
char const *const * names
Definition daos_task.h:250
daos_handle_t poh
Definition daos_task.h:246
daos_handle_t poh
Definition daos_task.h:292
struct d_tgt_list * tgts
Definition daos_task.h:172
const char * grp
Definition daos_task.h:168
d_rank_list_t * svc
Definition daos_task.h:170
const char * grp
Definition daos_task.h:127
uint64_t value_extra
Definition daos_task.h:135
daos_handle_t th
Definition daos_task.h:529
daos_handle_t th
Definition daos_task.h:545
daos_handle_t th
Definition daos_task.h:521
daos_epoch_t epoch
Definition daos_task.h:537
daos_handle_t coh
Definition daos_task.h:535
daos_handle_t * th
Definition daos_task.h:539
daos_handle_t coh
Definition daos_task.h:511
uint64_t flags
Definition daos_task.h:515
daos_handle_t * th
Definition daos_task.h:513
daos_handle_t th
Definition daos_task.h:551