1 
   2 
   3 
   4 
   5 
   6 
   7 
   8 
   9 
  10 
  11 
  12 
  13 
  14 
  15 
  16 
  17 
  18 
  19 
  20 
  21 #ifndef MCA_SSTORE_H
  22 #define MCA_SSTORE_H
  23 
  24 #include "orte_config.h"
  25 #include "orte/constants.h"
  26 #include "orte/types.h"
  27 #include "orte/runtime/orte_globals.h"
  28 
  29 #include "orte/mca/mca.h"
  30 #include "opal/mca/base/base.h"
  31 
  32 #include "opal/class/opal_object.h"
  33 
  34 BEGIN_C_DECLS
  35 
  36 
  37 
  38 
  39 typedef uint32_t orte_sstore_base_key_t;
  40 
  41 #define SSTORE_METADATA_LOCAL_CRS_COMP          0
  42 
  43 #define SSTORE_METADATA_LOCAL_COMPRESS_COMP     1
  44 
  45 #define SSTORE_METADATA_LOCAL_COMPRESS_POSTFIX  2
  46 
  47 #define SSTORE_METADATA_LOCAL_PID               3
  48 
  49 #define SSTORE_METADATA_LOCAL_CONTEXT           4
  50 
  51 #define SSTORE_METADATA_LOCAL_MKDIR             5
  52 
  53 #define SSTORE_METADATA_LOCAL_TOUCH             6
  54 
  55 
  56 #define SSTORE_METADATA_LOCAL_SNAP_REF          7
  57 
  58 #define SSTORE_METADATA_LOCAL_SNAP_REF_FMT      8
  59 
  60 #define SSTORE_METADATA_LOCAL_SNAP_LOC          9
  61 
  62 #define SSTORE_METADATA_LOCAL_SNAP_REF_LOC_FMT 10
  63 
  64 #define SSTORE_METADATA_LOCAL_SNAP_META        11
  65 
  66 
  67 #define SSTORE_METADATA_GLOBAL_SNAP_REF        12
  68 
  69 #define SSTORE_METADATA_GLOBAL_SNAP_LOC        13
  70 
  71 #define SSTORE_METADATA_GLOBAL_SNAP_LOC_ABS    14
  72 
  73 #define SSTORE_METADATA_GLOBAL_SNAP_META       15
  74 
  75 #define SSTORE_METADATA_GLOBAL_SNAP_SEQ        16
  76 
  77 #define SSTORE_METADATA_GLOBAL_AMCA_PARAM      17
  78 
  79 
  80 #define SSTORE_METADATA_GLOBAL_SNAP_NUM_SEQ    18
  81 
  82 #define SSTORE_METADATA_GLOBAL_SNAP_ALL_SEQ    19
  83 
  84 
  85 #define SSTORE_METADATA_BASE_LOC               20
  86 
  87 
  88 
  89 
  90 #define SSTORE_METADATA_LOCAL_SKIP_CKPT        21
  91 
  92 
  93 
  94 
  95 #define SSTORE_METADATA_GLOBAL_MIGRATING       22
  96 
  97 
  98 #define SSTORE_METADATA_GLOBAL_TUNE_PARAM      23
  99 
 100 
 101 #define SSTORE_METADATA_MAX                    24
 102 
 103 
 104 
 105 
 106 #define ORTE_SSTORE_HANDLE OPAL_UINT32
 107 typedef uint32_t orte_sstore_base_handle_t;
 108 ORTE_DECLSPEC extern orte_sstore_base_handle_t orte_sstore_handle_current;
 109 ORTE_DECLSPEC extern orte_sstore_base_handle_t orte_sstore_handle_last_stable;
 110 #define ORTE_SSTORE_HANDLE_INVALID 0
 111 
 112 
 113 
 114 
 115 
 116 struct orte_sstore_base_local_snapshot_info_1_0_0_t {
 117     
 118     opal_list_item_t super;
 119 
 120     
 121     orte_sstore_base_handle_t ss_handle;
 122 
 123     
 124     orte_process_name_t process_name;
 125 
 126     
 127     char *crs_comp;
 128 
 129     
 130     char *compress_comp;
 131 
 132     
 133     char *compress_postfix;
 134 
 135     
 136     char *start_time;
 137     char *end_time;
 138 };
 139 typedef struct orte_sstore_base_local_snapshot_info_1_0_0_t orte_sstore_base_local_snapshot_info_1_0_0_t;
 140 typedef struct orte_sstore_base_local_snapshot_info_1_0_0_t orte_sstore_base_local_snapshot_info_t;
 141 
 142 ORTE_DECLSPEC OBJ_CLASS_DECLARATION(orte_sstore_base_local_snapshot_info_t);
 143 
 144 struct orte_sstore_base_global_snapshot_info_1_0_0_t {
 145     
 146     opal_list_item_t super;
 147 
 148     
 149     opal_list_t local_snapshots;
 150 
 151     
 152     orte_sstore_base_handle_t ss_handle;
 153 
 154     
 155     char * start_time;
 156 
 157     
 158     char * end_time;
 159 
 160     
 161     int seq_num;
 162 
 163     
 164     char *reference;
 165 
 166     
 167     char *amca_param;
 168 
 169     
 170     char *tune_param;
 171 
 172     
 173     int num_seqs;
 174     char ** all_seqs;
 175     char *basedir;
 176     char *metadata_filename;
 177 };
 178 typedef struct orte_sstore_base_global_snapshot_info_1_0_0_t orte_sstore_base_global_snapshot_info_1_0_0_t;
 179 typedef struct orte_sstore_base_global_snapshot_info_1_0_0_t orte_sstore_base_global_snapshot_info_t;
 180 
 181 ORTE_DECLSPEC OBJ_CLASS_DECLARATION(orte_sstore_base_global_snapshot_info_t);
 182 
 183 
 184 
 185 
 186 
 187 typedef int (*orte_sstore_base_module_init_fn_t)
 188      (void);
 189 
 190 
 191 
 192 
 193 
 194 typedef int (*orte_sstore_base_module_finalize_fn_t)
 195      (void);
 196 
 197 
 198 
 199 
 200 
 201 
 202 
 203 
 204 
 205 
 206 
 207 typedef int (*orte_sstore_base_request_checkpoint_handle_fn_t)
 208     (orte_sstore_base_handle_t *handle, int seq, orte_jobid_t jobid);
 209 
 210 
 211 
 212 
 213 
 214 
 215 
 216 
 217 
 218 
 219 
 220 
 221 typedef int (*orte_sstore_base_request_restart_handle_fn_t)
 222     (orte_sstore_base_handle_t *handle,
 223      char *basedir, char *ref, int seq,
 224      orte_sstore_base_global_snapshot_info_t *snapshot);
 225 
 226 
 227 
 228 
 229 
 230 
 231 
 232 
 233 
 234 
 235 typedef int (*orte_sstore_base_request_global_snapshot_data_fn_t)
 236     (orte_sstore_base_handle_t *handle,
 237      orte_sstore_base_global_snapshot_info_t *snapshot);
 238 
 239 
 240 
 241 
 242 
 243 
 244 
 245 
 246 
 247 typedef int (*orte_sstore_base_register_handle_fn_t)
 248     (orte_sstore_base_handle_t handle);
 249 
 250 
 251 
 252 
 253 
 254 
 255 
 256 
 257 
 258 
 259 
 260 typedef int (*orte_sstore_base_get_attribute_fn_t)
 261     (orte_sstore_base_handle_t handle, orte_sstore_base_key_t key, char **value);
 262 
 263 
 264 
 265 
 266 
 267 
 268 
 269 
 270 
 271 
 272 
 273 typedef int (*orte_sstore_base_set_attribute_fn_t)
 274     (orte_sstore_base_handle_t handle, orte_sstore_base_key_t key, char *value);
 275 
 276 
 277 
 278 
 279 
 280 
 281 
 282 
 283 
 284 typedef int (*orte_sstore_base_sync_fn_t)
 285     (orte_sstore_base_handle_t handle);
 286 
 287 
 288 
 289 
 290 
 291 
 292 
 293 
 294 
 295 typedef int (*orte_sstore_base_remove_fn_t)
 296     (orte_sstore_base_handle_t handle);
 297 
 298 
 299 
 300 
 301 
 302 
 303 
 304 
 305 
 306 
 307 
 308 
 309 typedef int (*orte_sstore_base_pack_fn_t)
 310     (orte_process_name_t* peer, opal_buffer_t* buffer, orte_sstore_base_handle_t handle);
 311 
 312 
 313 
 314 
 315 
 316 
 317 
 318 
 319 
 320 
 321 
 322 
 323 typedef int (*orte_sstore_base_unpack_fn_t)
 324     (orte_process_name_t* peer, opal_buffer_t* buffer, orte_sstore_base_handle_t *handle);
 325 
 326 
 327 
 328 
 329 
 330 
 331 
 332 
 333 
 334 typedef int (*orte_sstore_base_fetch_app_deps_fn_t)
 335     (orte_app_context_t *app);
 336 
 337 
 338 
 339 
 340 
 341 
 342 
 343 typedef int (*orte_sstore_base_wait_all_deps_fn_t)
 344     (void);
 345 
 346 
 347 
 348 
 349 struct orte_sstore_base_component_2_0_0_t {
 350     
 351     mca_base_component_t base_version;
 352     
 353     mca_base_component_data_t base_data;
 354 
 355     
 356     int verbose;
 357     
 358     int output_handle;
 359     
 360     int priority;
 361 };
 362 typedef struct orte_sstore_base_component_2_0_0_t orte_sstore_base_component_2_0_0_t;
 363 typedef struct orte_sstore_base_component_2_0_0_t orte_sstore_base_component_t;
 364 
 365 
 366 
 367 
 368 struct orte_sstore_base_module_1_0_0_t {
 369     
 370     orte_sstore_base_module_init_fn_t           sstore_init;
 371     
 372     orte_sstore_base_module_finalize_fn_t       sstore_finalize;
 373 
 374     
 375     orte_sstore_base_request_checkpoint_handle_fn_t    request_checkpoint_handle;
 376     orte_sstore_base_request_restart_handle_fn_t       request_restart_handle;
 377     orte_sstore_base_request_global_snapshot_data_fn_t request_global_snapshot_data;
 378     orte_sstore_base_register_handle_fn_t              register_handle;
 379 
 380     
 381     orte_sstore_base_get_attribute_fn_t         get_attr;
 382     orte_sstore_base_set_attribute_fn_t         set_attr;
 383 
 384     
 385     orte_sstore_base_sync_fn_t                  sync;
 386 
 387     
 388     orte_sstore_base_remove_fn_t                remove;
 389 
 390     
 391     orte_sstore_base_pack_fn_t                  pack_handle;
 392     orte_sstore_base_unpack_fn_t                unpack_handle;
 393 
 394     
 395     orte_sstore_base_fetch_app_deps_fn_t        fetch_app_deps;
 396     orte_sstore_base_wait_all_deps_fn_t         wait_all_deps;
 397 };
 398 typedef struct orte_sstore_base_module_1_0_0_t orte_sstore_base_module_1_0_0_t;
 399 typedef struct orte_sstore_base_module_1_0_0_t orte_sstore_base_module_t;
 400 
 401 ORTE_DECLSPEC extern orte_sstore_base_module_t orte_sstore;
 402 
 403 
 404 
 405 
 406 #define ORTE_SSTORE_BASE_VERSION_2_0_0 \
 407     ORTE_MCA_BASE_VERSION_2_1_0("sstore", 2, 0, 0)
 408 
 409 END_C_DECLS
 410 
 411 #endif 
 412