Motr  M0
crate_client.h
Go to the documentation of this file.
1 /* -*- C -*- */
2 /*
3  * Copyright (c) 2017-2020 Seagate Technology LLC and/or its Affiliates
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  * For any questions about this software or licensing,
18  * please email opensource@seagate.com or cortx-questions@seagate.com.
19  *
20  */
21 
22 
23 #pragma once
24 
25 #ifndef __MOTR_M0CRATE_CRATE_H__
26 #define __MOTR_M0CRATE_CRATE_H__
27 
34 #include "fid/fid.h"
35 #include "motr/client.h"
36 #include "motr/m0crate/workload.h"
38 
39 struct crate_conf {
40  /* Client parameters */
44  char *local_addr;
45  char *ha_addr;
46  char *prof;
47  char *process_fid;
48  int layout_id;
49  char *index_dir;
56  int log_level;
57  uint64_t addb_size;
59 };
60 
64 };
65 
66 enum cr_opcode {
75 };
76 
78  struct m0_uint128 *ids;
79  int *op_status;
80  int num_index;
81  int num_kvs;
82  int mode;
83  int opcode;
86 
90  int op_count;
91 
95  int exec_time;
96 
101 
104 
106  int key_size;
111 
113 
115 
116  uint64_t seed;
117 };
118 
120  int task_idx;
121  int *op_status;
122  struct m0_obj *objs;
123  struct m0_op **ops;
124  struct timeval *op_list_time;
126 };
127 
138 };
139 
144 };
145 
149 };
150 
151 struct cwi_global {
157 };
158 
162  uint32_t cwi_layout_id;
164  uint64_t cwi_bs;
171  uint64_t cwi_io_size;
173  uint32_t cwi_max_nr_ops;
174  int32_t cwi_mode;
175  int32_t cwi_nr_objs;
176  uint32_t cwi_rounds;
179  int32_t cwi_opcode;
186 };
187 
188 struct cti_global {
189  struct m0_obj obj;
190 };
191 
192 struct m0_task_io {
195  uint32_t *cti_op_status;
196  uint32_t *cti_op_rcs;
197  int32_t cti_progress;
199  struct m0_obj *cti_objs;
200  struct m0_op **cti_ops;
201  uint64_t cti_nr_ops;
202  uint64_t cti_nr_ops_done;
203  struct timeval *cti_op_list_time;
212 };
213 
214 int parse_crate(int argc, char **argv, struct workload *w);
215 void run(struct workload *w, struct workload_task *task);
216 void m0_op_run(struct workload *w, struct workload_task *task,
217  const struct workload_op *op);
218 void run_index(struct workload *w, struct workload_task *tasks);
219 void m0_op_run_index(struct workload *w, struct workload_task *task,
220  const struct workload_op *op);
221 
222 
224 #endif /* __MOTR_M0CRATE_CRATE_H__ */
225 
226 /*
227  * Local variables:
228  * c-indentation-style: "K&R"
229  * c-basic-offset: 8
230  * tab-width: 8
231  * fill-column: 80
232  * scroll-step: 1
233  * End:
234  */
235 /*
236  * vim: tabstop=8 shiftwidth=8 noexpandtab textwidth=80 nowrap
237  */
char * prof
Definition: crate_client.h:46
void m0_op_run_index(struct workload *w, struct workload_task *task, const struct workload_op *op)
Definition: crate_index.c:1557
uint32_t cwi_rounds
Definition: crate_client.h:176
struct m0_mutex cg_mutex
Definition: crate_client.h:156
Definition: client.h:794
uint64_t cwi_ops_done[CR_OPS_NR]
Definition: crate_client.h:172
thread_operation
Definition: crate_client.h:146
struct m0_semaphore cti_max_ops_sem
Definition: crate_client.h:211
int32_t cwi_nr_objs
Definition: crate_client.h:175
uint64_t cti_nr_ops_done
Definition: crate_client.h:202
char * cass_cluster_ep
Definition: crate_client.h:51
uint64_t m0_time_t
Definition: time.h:37
void m0_op_run(struct workload *w, struct workload_task *task, const struct workload_op *op)
Definition: crate_io.c:1094
void run_index(struct workload *w, struct workload_task *tasks)
Definition: crate_index.c:1551
void run(struct workload *w, struct workload_task *task)
Definition: crate_io.c:1010
char * local_addr
Definition: crate_client.h:44
uint32_t * cti_op_status
Definition: crate_client.h:195
uint64_t cwi_bs
Definition: crate_client.h:164
bool is_oostrore
Definition: crate_client.h:42
struct cti_global cti_g
Definition: crate_client.h:209
struct m0_fid index_fid
Definition: crate_client.h:114
uint64_t cti_start_offset
Definition: crate_client.h:198
struct m0_fid key_prefix
Definition: crate_client.h:102
m0_operations
Definition: crate_client.h:128
char * cwi_filename
Definition: crate_client.h:185
char * ha_addr
Definition: crate_client.h:45
struct m0_uint128 cg_oid
Definition: crate_client.h:152
int32_t cwi_opcode
Definition: crate_client.h:179
bool is_addb_init
Definition: crate_client.h:41
int opcode_prcnt[CRATE_OP_TYPES]
Definition: crate_client.h:84
m0_time_t cwi_finish_time
Definition: crate_client.h:182
m0_time_t cwi_time[CR_OPS_NR]
Definition: crate_client.h:184
struct cwi_global cwi_g
Definition: crate_client.h:161
op
Definition: libdemo.c:64
m0_time_t cg_cwi_acc_time[CR_OPS_NR]
Definition: crate_client.h:155
struct m0_thread mthread
Definition: crate_client.h:125
cr_opcode
Definition: crate_client.h:66
struct m0_op ** cti_ops
Definition: crate_client.h:200
uint32_t cwi_bcount_per_op
Definition: crate_client.h:169
Definition: client.h:647
struct timeval * op_list_time
Definition: crate_client.h:124
struct timeval * cti_op_list_time
Definition: crate_client.h:203
m0_time_t cti_op_acc_time
Definition: crate_client.h:208
int parse_crate(int argc, char **argv, struct workload *w)
struct m0_bufvec * cti_bufvec
Definition: crate_client.h:205
uint64_t addb_size
Definition: crate_client.h:57
struct m0_uint128 * cti_ids
Definition: crate_client.h:207
int max_rpc_msg_size
Definition: crate_client.h:54
struct m0_workload_io * cti_cwi
Definition: crate_client.h:193
m0_time_t cwi_start_time
Definition: crate_client.h:181
struct m0_uint128 * ids
Definition: crate_client.h:78
struct m0_fid cwi_pool_id
Definition: crate_client.h:170
m0_operation_type
Definition: crate_client.h:61
uint32_t * cti_op_rcs
Definition: crate_client.h:196
int32_t cwi_mode
Definition: crate_client.h:174
struct m0_op ** ops
Definition: crate_client.h:123
uint64_t cti_nr_ops
Definition: crate_client.h:201
bool is_enf_meta
Definition: crate_client.h:58
Definition: fid.h:38
struct m0_uint128 cwi_start_obj_id
Definition: crate_client.h:180
uint32_t cwi_max_nr_ops
Definition: crate_client.h:173
m0_operation_status
Definition: crate_client.h:140
struct m0_obj obj
Definition: crate_client.h:189
int cti_task_idx
Definition: crate_client.h:194
int col_family
Definition: crate_client.h:55
char * index_dir
Definition: crate_client.h:49
Definition: tasks.py:1
int index_service_id
Definition: crate_client.h:50
struct m0_obj * cti_objs
Definition: crate_client.h:199
uint32_t cwi_layout_id
Definition: crate_client.h:162
char * cass_keyspace
Definition: crate_client.h:52
uint64_t cwi_io_size
Definition: crate_client.h:171
struct m0_bufvec * cti_rd_bufvec
Definition: crate_client.h:206
int32_t cti_progress
Definition: crate_client.h:197
struct m0_obj * objs
Definition: crate_client.h:122
char * process_fid
Definition: crate_client.h:47
struct m0_thread * cti_mthread
Definition: crate_client.h:204
Definition: mutex.h:47
bool is_read_verify
Definition: crate_client.h:43
bool cg_created
Definition: crate_client.h:153
m0_time_t cwi_execution_time
Definition: crate_client.h:183
Definition: vec.h:145
int tm_recv_queue_min_len
Definition: crate_client.h:53