| 1 | /* -*- mode: C++; c-basic-offset: 4; indent-tabs-mode: nil -*- */ |
| 2 | // vim: ft=cpp:expandtab:ts=8:sw=4:softtabstop=4: |
| 3 | #pragma once |
| 4 | /* Do not edit this file. This code generated by logformat.c. Copyright (c) 2006, 2015, Percona and/or its affiliates. All rights reserved. */ |
| 5 | #ident "Copyright (c) 2006, 2015, Percona and/or its affiliates. All rights reserved." |
| 6 | #include <ft/ft-internal.h> |
| 7 | #include <util/bytestring.h> |
| 8 | #include <util/memarena.h> |
| 9 | enum lt_cmd { |
| 10 | LT_begin_checkpoint = 'x', |
| 11 | LT_end_checkpoint = 'X', |
| 12 | LT_fassociate = 'f', |
| 13 | LT_xstillopen = 's', |
| 14 | LT_xstillopenprepared = 'p', |
| 15 | LT_xbegin = 'b', |
| 16 | LT_xcommit = 'C', |
| 17 | LT_xprepare = 'P', |
| 18 | LT_xabort = 'q', |
| 19 | LT_fcreate = 'F', |
| 20 | LT_fopen = 'O', |
| 21 | LT_fclose = 'e', |
| 22 | LT_fdelete = 'U', |
| 23 | LT_frename = 'n', |
| 24 | LT_enq_insert = 'I', |
| 25 | LT_enq_insert_no_overwrite = 'i', |
| 26 | LT_enq_delete_any = 'E', |
| 27 | LT_enq_insert_multiple = 'm', |
| 28 | LT_enq_delete_multiple = 'M', |
| 29 | = 'T', |
| 30 | LT_shutdown_up_to_19 = 'Q', |
| 31 | LT_shutdown = '0', |
| 32 | LT_load = 'l', |
| 33 | LT_hot_index = 'h', |
| 34 | LT_enq_update = 'u', |
| 35 | LT_enq_updatebroadcast = 'B', |
| 36 | LT_change_fdescriptor = 'D' |
| 37 | }; |
| 38 | |
| 39 | enum rt_cmd { |
| 40 | RT_fdelete = 'U', |
| 41 | RT_fcreate = 'F', |
| 42 | RT_frename = 'n', |
| 43 | RT_cmdinsert = 'i', |
| 44 | RT_cmddelete = 'd', |
| 45 | RT_rollinclude = 'r', |
| 46 | RT_load = 'l', |
| 47 | RT_hot_index = 'h', |
| 48 | RT_dictionary_redirect = 'R', |
| 49 | RT_cmdupdate = 'u', |
| 50 | RT_cmdupdatebroadcast = 'B', |
| 51 | RT_change_fdescriptor = 'D' |
| 52 | }; |
| 53 | |
| 54 | struct logtype_begin_checkpoint { |
| 55 | LSN lsn; |
| 56 | uint64_t timestamp; |
| 57 | TXNID last_xid; |
| 58 | uint32_t crc; |
| 59 | uint32_t len; |
| 60 | }; |
| 61 | struct logtype_end_checkpoint { |
| 62 | LSN lsn; |
| 63 | LSN lsn_begin_checkpoint; |
| 64 | uint64_t timestamp; |
| 65 | uint32_t num_fassociate_entries; |
| 66 | uint32_t num_xstillopen_entries; |
| 67 | uint32_t crc; |
| 68 | uint32_t len; |
| 69 | }; |
| 70 | struct logtype_fassociate { |
| 71 | LSN lsn; |
| 72 | FILENUM filenum; |
| 73 | uint32_t treeflags; |
| 74 | BYTESTRING iname; |
| 75 | uint8_t unlink_on_close; |
| 76 | uint32_t crc; |
| 77 | uint32_t len; |
| 78 | }; |
| 79 | struct logtype_xstillopen { |
| 80 | LSN lsn; |
| 81 | TXNID_PAIR xid; |
| 82 | TXNID_PAIR parentxid; |
| 83 | uint64_t rollentry_raw_count; |
| 84 | FILENUMS open_filenums; |
| 85 | uint8_t force_fsync_on_commit; |
| 86 | uint64_t num_rollback_nodes; |
| 87 | uint64_t num_rollentries; |
| 88 | BLOCKNUM spilled_rollback_head; |
| 89 | BLOCKNUM spilled_rollback_tail; |
| 90 | BLOCKNUM current_rollback; |
| 91 | uint32_t crc; |
| 92 | uint32_t len; |
| 93 | }; |
| 94 | struct logtype_xstillopenprepared { |
| 95 | LSN lsn; |
| 96 | TXNID_PAIR xid; |
| 97 | XIDP xa_xid; |
| 98 | uint64_t rollentry_raw_count; |
| 99 | FILENUMS open_filenums; |
| 100 | uint8_t force_fsync_on_commit; |
| 101 | uint64_t num_rollback_nodes; |
| 102 | uint64_t num_rollentries; |
| 103 | BLOCKNUM spilled_rollback_head; |
| 104 | BLOCKNUM spilled_rollback_tail; |
| 105 | BLOCKNUM current_rollback; |
| 106 | uint32_t crc; |
| 107 | uint32_t len; |
| 108 | }; |
| 109 | struct logtype_xbegin { |
| 110 | LSN lsn; |
| 111 | TXNID_PAIR xid; |
| 112 | TXNID_PAIR parentxid; |
| 113 | uint32_t crc; |
| 114 | uint32_t len; |
| 115 | }; |
| 116 | struct logtype_xcommit { |
| 117 | LSN lsn; |
| 118 | TXNID_PAIR xid; |
| 119 | uint32_t crc; |
| 120 | uint32_t len; |
| 121 | }; |
| 122 | struct logtype_xprepare { |
| 123 | LSN lsn; |
| 124 | TXNID_PAIR xid; |
| 125 | XIDP xa_xid; |
| 126 | uint32_t crc; |
| 127 | uint32_t len; |
| 128 | }; |
| 129 | struct logtype_xabort { |
| 130 | LSN lsn; |
| 131 | TXNID_PAIR xid; |
| 132 | uint32_t crc; |
| 133 | uint32_t len; |
| 134 | }; |
| 135 | struct logtype_fcreate { |
| 136 | LSN lsn; |
| 137 | TXNID_PAIR xid; |
| 138 | FILENUM filenum; |
| 139 | BYTESTRING iname; |
| 140 | uint32_t mode; |
| 141 | uint32_t treeflags; |
| 142 | uint32_t nodesize; |
| 143 | uint32_t basementnodesize; |
| 144 | uint32_t compression_method; |
| 145 | uint32_t crc; |
| 146 | uint32_t len; |
| 147 | }; |
| 148 | struct logtype_fopen { |
| 149 | LSN lsn; |
| 150 | BYTESTRING iname; |
| 151 | FILENUM filenum; |
| 152 | uint32_t treeflags; |
| 153 | uint32_t crc; |
| 154 | uint32_t len; |
| 155 | }; |
| 156 | struct logtype_fclose { |
| 157 | LSN lsn; |
| 158 | BYTESTRING iname; |
| 159 | FILENUM filenum; |
| 160 | uint32_t crc; |
| 161 | uint32_t len; |
| 162 | }; |
| 163 | struct logtype_fdelete { |
| 164 | LSN lsn; |
| 165 | TXNID_PAIR xid; |
| 166 | FILENUM filenum; |
| 167 | uint32_t crc; |
| 168 | uint32_t len; |
| 169 | }; |
| 170 | struct logtype_frename { |
| 171 | LSN lsn; |
| 172 | TXNID_PAIR xid; |
| 173 | BYTESTRING old_iname; |
| 174 | FILENUM old_filenum; |
| 175 | BYTESTRING new_iname; |
| 176 | uint32_t crc; |
| 177 | uint32_t len; |
| 178 | }; |
| 179 | struct logtype_enq_insert { |
| 180 | LSN lsn; |
| 181 | FILENUM filenum; |
| 182 | TXNID_PAIR xid; |
| 183 | BYTESTRING key; |
| 184 | BYTESTRING value; |
| 185 | uint32_t crc; |
| 186 | uint32_t len; |
| 187 | }; |
| 188 | struct logtype_enq_insert_no_overwrite { |
| 189 | LSN lsn; |
| 190 | FILENUM filenum; |
| 191 | TXNID_PAIR xid; |
| 192 | BYTESTRING key; |
| 193 | BYTESTRING value; |
| 194 | uint32_t crc; |
| 195 | uint32_t len; |
| 196 | }; |
| 197 | struct logtype_enq_delete_any { |
| 198 | LSN lsn; |
| 199 | FILENUM filenum; |
| 200 | TXNID_PAIR xid; |
| 201 | BYTESTRING key; |
| 202 | uint32_t crc; |
| 203 | uint32_t len; |
| 204 | }; |
| 205 | struct logtype_enq_insert_multiple { |
| 206 | LSN lsn; |
| 207 | FILENUM src_filenum; |
| 208 | FILENUMS dest_filenums; |
| 209 | TXNID_PAIR xid; |
| 210 | BYTESTRING src_key; |
| 211 | BYTESTRING src_val; |
| 212 | uint32_t crc; |
| 213 | uint32_t len; |
| 214 | }; |
| 215 | struct logtype_enq_delete_multiple { |
| 216 | LSN lsn; |
| 217 | FILENUM src_filenum; |
| 218 | FILENUMS dest_filenums; |
| 219 | TXNID_PAIR xid; |
| 220 | BYTESTRING src_key; |
| 221 | BYTESTRING src_val; |
| 222 | uint32_t crc; |
| 223 | uint32_t len; |
| 224 | }; |
| 225 | struct { |
| 226 | LSN ; |
| 227 | uint64_t ; |
| 228 | BYTESTRING ; |
| 229 | uint32_t ; |
| 230 | uint32_t ; |
| 231 | }; |
| 232 | struct logtype_shutdown_up_to_19 { |
| 233 | LSN lsn; |
| 234 | uint64_t timestamp; |
| 235 | uint32_t crc; |
| 236 | uint32_t len; |
| 237 | }; |
| 238 | struct logtype_shutdown { |
| 239 | LSN lsn; |
| 240 | uint64_t timestamp; |
| 241 | TXNID last_xid; |
| 242 | uint32_t crc; |
| 243 | uint32_t len; |
| 244 | }; |
| 245 | struct logtype_load { |
| 246 | LSN lsn; |
| 247 | TXNID_PAIR xid; |
| 248 | FILENUM old_filenum; |
| 249 | BYTESTRING new_iname; |
| 250 | uint32_t crc; |
| 251 | uint32_t len; |
| 252 | }; |
| 253 | struct logtype_hot_index { |
| 254 | LSN lsn; |
| 255 | TXNID_PAIR xid; |
| 256 | FILENUMS hot_index_filenums; |
| 257 | uint32_t crc; |
| 258 | uint32_t len; |
| 259 | }; |
| 260 | struct logtype_enq_update { |
| 261 | LSN lsn; |
| 262 | FILENUM filenum; |
| 263 | TXNID_PAIR xid; |
| 264 | BYTESTRING key; |
| 265 | BYTESTRING ; |
| 266 | uint32_t crc; |
| 267 | uint32_t len; |
| 268 | }; |
| 269 | struct logtype_enq_updatebroadcast { |
| 270 | LSN lsn; |
| 271 | FILENUM filenum; |
| 272 | TXNID_PAIR xid; |
| 273 | BYTESTRING ; |
| 274 | bool is_resetting_op; |
| 275 | uint32_t crc; |
| 276 | uint32_t len; |
| 277 | }; |
| 278 | struct logtype_change_fdescriptor { |
| 279 | LSN lsn; |
| 280 | FILENUM filenum; |
| 281 | TXNID_PAIR xid; |
| 282 | BYTESTRING old_descriptor; |
| 283 | BYTESTRING new_descriptor; |
| 284 | bool update_cmp_descriptor; |
| 285 | uint32_t crc; |
| 286 | uint32_t len; |
| 287 | }; |
| 288 | struct rolltype_fdelete { |
| 289 | FILENUM filenum; |
| 290 | }; |
| 291 | int toku_rollback_fdelete (FILENUM filenum,TOKUTXN txn, LSN oplsn); |
| 292 | int toku_commit_fdelete (FILENUM filenum,TOKUTXN txn, LSN oplsn); |
| 293 | struct rolltype_fcreate { |
| 294 | FILENUM filenum; |
| 295 | BYTESTRING iname; |
| 296 | }; |
| 297 | int toku_rollback_fcreate (FILENUM filenum,BYTESTRING iname,TOKUTXN txn, LSN oplsn); |
| 298 | int toku_commit_fcreate (FILENUM filenum,BYTESTRING iname,TOKUTXN txn, LSN oplsn); |
| 299 | struct rolltype_frename { |
| 300 | BYTESTRING old_iname; |
| 301 | BYTESTRING new_iname; |
| 302 | }; |
| 303 | int toku_rollback_frename (BYTESTRING old_iname,BYTESTRING new_iname,TOKUTXN txn, LSN oplsn); |
| 304 | int toku_commit_frename (BYTESTRING old_iname,BYTESTRING new_iname,TOKUTXN txn, LSN oplsn); |
| 305 | struct rolltype_cmdinsert { |
| 306 | FILENUM filenum; |
| 307 | BYTESTRING key; |
| 308 | }; |
| 309 | int toku_rollback_cmdinsert (FILENUM filenum,BYTESTRING key,TOKUTXN txn, LSN oplsn); |
| 310 | int toku_commit_cmdinsert (FILENUM filenum,BYTESTRING key,TOKUTXN txn, LSN oplsn); |
| 311 | struct rolltype_cmddelete { |
| 312 | FILENUM filenum; |
| 313 | BYTESTRING key; |
| 314 | }; |
| 315 | int toku_rollback_cmddelete (FILENUM filenum,BYTESTRING key,TOKUTXN txn, LSN oplsn); |
| 316 | int toku_commit_cmddelete (FILENUM filenum,BYTESTRING key,TOKUTXN txn, LSN oplsn); |
| 317 | struct rolltype_rollinclude { |
| 318 | TXNID_PAIR xid; |
| 319 | uint64_t num_nodes; |
| 320 | BLOCKNUM spilled_head; |
| 321 | BLOCKNUM spilled_tail; |
| 322 | }; |
| 323 | int toku_rollback_rollinclude (TXNID_PAIR xid,uint64_t num_nodes,BLOCKNUM spilled_head,BLOCKNUM spilled_tail,TOKUTXN txn, LSN oplsn); |
| 324 | int toku_commit_rollinclude (TXNID_PAIR xid,uint64_t num_nodes,BLOCKNUM spilled_head,BLOCKNUM spilled_tail,TOKUTXN txn, LSN oplsn); |
| 325 | struct rolltype_load { |
| 326 | FILENUM old_filenum; |
| 327 | BYTESTRING new_iname; |
| 328 | }; |
| 329 | int toku_rollback_load (FILENUM old_filenum,BYTESTRING new_iname,TOKUTXN txn, LSN oplsn); |
| 330 | int toku_commit_load (FILENUM old_filenum,BYTESTRING new_iname,TOKUTXN txn, LSN oplsn); |
| 331 | struct rolltype_hot_index { |
| 332 | FILENUMS hot_index_filenums; |
| 333 | }; |
| 334 | int toku_rollback_hot_index (FILENUMS hot_index_filenums,TOKUTXN txn, LSN oplsn); |
| 335 | int toku_commit_hot_index (FILENUMS hot_index_filenums,TOKUTXN txn, LSN oplsn); |
| 336 | struct rolltype_dictionary_redirect { |
| 337 | FILENUM old_filenum; |
| 338 | FILENUM new_filenum; |
| 339 | }; |
| 340 | int toku_rollback_dictionary_redirect (FILENUM old_filenum,FILENUM new_filenum,TOKUTXN txn, LSN oplsn); |
| 341 | int toku_commit_dictionary_redirect (FILENUM old_filenum,FILENUM new_filenum,TOKUTXN txn, LSN oplsn); |
| 342 | struct rolltype_cmdupdate { |
| 343 | FILENUM filenum; |
| 344 | BYTESTRING key; |
| 345 | }; |
| 346 | int toku_rollback_cmdupdate (FILENUM filenum,BYTESTRING key,TOKUTXN txn, LSN oplsn); |
| 347 | int toku_commit_cmdupdate (FILENUM filenum,BYTESTRING key,TOKUTXN txn, LSN oplsn); |
| 348 | struct rolltype_cmdupdatebroadcast { |
| 349 | FILENUM filenum; |
| 350 | bool is_resetting_op; |
| 351 | }; |
| 352 | int toku_rollback_cmdupdatebroadcast (FILENUM filenum,bool is_resetting_op,TOKUTXN txn, LSN oplsn); |
| 353 | int toku_commit_cmdupdatebroadcast (FILENUM filenum,bool is_resetting_op,TOKUTXN txn, LSN oplsn); |
| 354 | struct rolltype_change_fdescriptor { |
| 355 | FILENUM filenum; |
| 356 | BYTESTRING old_descriptor; |
| 357 | }; |
| 358 | int toku_rollback_change_fdescriptor (FILENUM filenum,BYTESTRING old_descriptor,TOKUTXN txn, LSN oplsn); |
| 359 | int toku_commit_change_fdescriptor (FILENUM filenum,BYTESTRING old_descriptor,TOKUTXN txn, LSN oplsn); |
| 360 | struct log_entry { |
| 361 | enum lt_cmd cmd; |
| 362 | union { |
| 363 | struct logtype_begin_checkpoint begin_checkpoint; |
| 364 | struct logtype_end_checkpoint end_checkpoint; |
| 365 | struct logtype_fassociate fassociate; |
| 366 | struct logtype_xstillopen xstillopen; |
| 367 | struct logtype_xstillopenprepared xstillopenprepared; |
| 368 | struct logtype_xbegin xbegin; |
| 369 | struct logtype_xcommit xcommit; |
| 370 | struct logtype_xprepare xprepare; |
| 371 | struct logtype_xabort xabort; |
| 372 | struct logtype_fcreate fcreate; |
| 373 | struct logtype_fopen fopen; |
| 374 | struct logtype_fclose fclose; |
| 375 | struct logtype_fdelete fdelete; |
| 376 | struct logtype_frename frename; |
| 377 | struct logtype_enq_insert enq_insert; |
| 378 | struct logtype_enq_insert_no_overwrite enq_insert_no_overwrite; |
| 379 | struct logtype_enq_delete_any enq_delete_any; |
| 380 | struct logtype_enq_insert_multiple enq_insert_multiple; |
| 381 | struct logtype_enq_delete_multiple enq_delete_multiple; |
| 382 | struct logtype_comment ; |
| 383 | struct logtype_shutdown_up_to_19 shutdown_up_to_19; |
| 384 | struct logtype_shutdown shutdown; |
| 385 | struct logtype_load load; |
| 386 | struct logtype_hot_index hot_index; |
| 387 | struct logtype_enq_update enq_update; |
| 388 | struct logtype_enq_updatebroadcast enq_updatebroadcast; |
| 389 | struct logtype_change_fdescriptor change_fdescriptor; |
| 390 | } u; |
| 391 | }; |
| 392 | struct roll_entry { |
| 393 | enum rt_cmd cmd; |
| 394 | struct roll_entry *prev; /* for in-memory list of log entries. Threads from newest to oldest. */ |
| 395 | union { |
| 396 | struct rolltype_fdelete fdelete; |
| 397 | struct rolltype_fcreate fcreate; |
| 398 | struct rolltype_frename frename; |
| 399 | struct rolltype_cmdinsert cmdinsert; |
| 400 | struct rolltype_cmddelete cmddelete; |
| 401 | struct rolltype_rollinclude rollinclude; |
| 402 | struct rolltype_load load; |
| 403 | struct rolltype_hot_index hot_index; |
| 404 | struct rolltype_dictionary_redirect dictionary_redirect; |
| 405 | struct rolltype_cmdupdate cmdupdate; |
| 406 | struct rolltype_cmdupdatebroadcast cmdupdatebroadcast; |
| 407 | struct rolltype_change_fdescriptor change_fdescriptor; |
| 408 | } u; |
| 409 | }; |
| 410 | #define rolltype_dispatch(s, funprefix) ({ switch((s)->cmd) {\ |
| 411 | case RT_fdelete: funprefix ## fdelete (&(s)->u.fdelete); break;\ |
| 412 | case RT_fcreate: funprefix ## fcreate (&(s)->u.fcreate); break;\ |
| 413 | case RT_frename: funprefix ## frename (&(s)->u.frename); break;\ |
| 414 | case RT_cmdinsert: funprefix ## cmdinsert (&(s)->u.cmdinsert); break;\ |
| 415 | case RT_cmddelete: funprefix ## cmddelete (&(s)->u.cmddelete); break;\ |
| 416 | case RT_rollinclude: funprefix ## rollinclude (&(s)->u.rollinclude); break;\ |
| 417 | case RT_load: funprefix ## load (&(s)->u.load); break;\ |
| 418 | case RT_hot_index: funprefix ## hot_index (&(s)->u.hot_index); break;\ |
| 419 | case RT_dictionary_redirect: funprefix ## dictionary_redirect (&(s)->u.dictionary_redirect); break;\ |
| 420 | case RT_cmdupdate: funprefix ## cmdupdate (&(s)->u.cmdupdate); break;\ |
| 421 | case RT_cmdupdatebroadcast: funprefix ## cmdupdatebroadcast (&(s)->u.cmdupdatebroadcast); break;\ |
| 422 | case RT_change_fdescriptor: funprefix ## change_fdescriptor (&(s)->u.change_fdescriptor); break;\ |
| 423 | }}) |
| 424 | #define logtype_dispatch_assign(s, funprefix, var, ...) do { switch((s)->cmd) {\ |
| 425 | case LT_begin_checkpoint: var = funprefix ## begin_checkpoint (&(s)->u.begin_checkpoint, __VA_ARGS__); break;\ |
| 426 | case LT_end_checkpoint: var = funprefix ## end_checkpoint (&(s)->u.end_checkpoint, __VA_ARGS__); break;\ |
| 427 | case LT_fassociate: var = funprefix ## fassociate (&(s)->u.fassociate, __VA_ARGS__); break;\ |
| 428 | case LT_xstillopen: var = funprefix ## xstillopen (&(s)->u.xstillopen, __VA_ARGS__); break;\ |
| 429 | case LT_xstillopenprepared: var = funprefix ## xstillopenprepared (&(s)->u.xstillopenprepared, __VA_ARGS__); break;\ |
| 430 | case LT_xbegin: var = funprefix ## xbegin (&(s)->u.xbegin, __VA_ARGS__); break;\ |
| 431 | case LT_xcommit: var = funprefix ## xcommit (&(s)->u.xcommit, __VA_ARGS__); break;\ |
| 432 | case LT_xprepare: var = funprefix ## xprepare (&(s)->u.xprepare, __VA_ARGS__); break;\ |
| 433 | case LT_xabort: var = funprefix ## xabort (&(s)->u.xabort, __VA_ARGS__); break;\ |
| 434 | case LT_fcreate: var = funprefix ## fcreate (&(s)->u.fcreate, __VA_ARGS__); break;\ |
| 435 | case LT_fopen: var = funprefix ## fopen (&(s)->u.fopen, __VA_ARGS__); break;\ |
| 436 | case LT_fclose: var = funprefix ## fclose (&(s)->u.fclose, __VA_ARGS__); break;\ |
| 437 | case LT_fdelete: var = funprefix ## fdelete (&(s)->u.fdelete, __VA_ARGS__); break;\ |
| 438 | case LT_frename: var = funprefix ## frename (&(s)->u.frename, __VA_ARGS__); break;\ |
| 439 | case LT_enq_insert: var = funprefix ## enq_insert (&(s)->u.enq_insert, __VA_ARGS__); break;\ |
| 440 | case LT_enq_insert_no_overwrite: var = funprefix ## enq_insert_no_overwrite (&(s)->u.enq_insert_no_overwrite, __VA_ARGS__); break;\ |
| 441 | case LT_enq_delete_any: var = funprefix ## enq_delete_any (&(s)->u.enq_delete_any, __VA_ARGS__); break;\ |
| 442 | case LT_enq_insert_multiple: var = funprefix ## enq_insert_multiple (&(s)->u.enq_insert_multiple, __VA_ARGS__); break;\ |
| 443 | case LT_enq_delete_multiple: var = funprefix ## enq_delete_multiple (&(s)->u.enq_delete_multiple, __VA_ARGS__); break;\ |
| 444 | case LT_comment: var = funprefix ## comment (&(s)->u.comment, __VA_ARGS__); break;\ |
| 445 | case LT_shutdown_up_to_19: var = funprefix ## shutdown_up_to_19 (&(s)->u.shutdown_up_to_19, __VA_ARGS__); break;\ |
| 446 | case LT_shutdown: var = funprefix ## shutdown (&(s)->u.shutdown, __VA_ARGS__); break;\ |
| 447 | case LT_load: var = funprefix ## load (&(s)->u.load, __VA_ARGS__); break;\ |
| 448 | case LT_hot_index: var = funprefix ## hot_index (&(s)->u.hot_index, __VA_ARGS__); break;\ |
| 449 | case LT_enq_update: var = funprefix ## enq_update (&(s)->u.enq_update, __VA_ARGS__); break;\ |
| 450 | case LT_enq_updatebroadcast: var = funprefix ## enq_updatebroadcast (&(s)->u.enq_updatebroadcast, __VA_ARGS__); break;\ |
| 451 | case LT_change_fdescriptor: var = funprefix ## change_fdescriptor (&(s)->u.change_fdescriptor, __VA_ARGS__); break;\ |
| 452 | }} while (0) |
| 453 | #define rolltype_dispatch_assign(s, funprefix, var, ...) do { \ |
| 454 | switch((s)->cmd) {\ |
| 455 | case RT_fdelete: var = funprefix ## fdelete ((s)->u.fdelete.filenum, __VA_ARGS__); break;\ |
| 456 | case RT_fcreate: var = funprefix ## fcreate ((s)->u.fcreate.filenum,(s)->u.fcreate.iname, __VA_ARGS__); break;\ |
| 457 | case RT_frename: var = funprefix ## frename ((s)->u.frename.old_iname,(s)->u.frename.new_iname, __VA_ARGS__); break;\ |
| 458 | case RT_cmdinsert: var = funprefix ## cmdinsert ((s)->u.cmdinsert.filenum,(s)->u.cmdinsert.key, __VA_ARGS__); break;\ |
| 459 | case RT_cmddelete: var = funprefix ## cmddelete ((s)->u.cmddelete.filenum,(s)->u.cmddelete.key, __VA_ARGS__); break;\ |
| 460 | case RT_rollinclude: var = funprefix ## rollinclude ((s)->u.rollinclude.xid,(s)->u.rollinclude.num_nodes,(s)->u.rollinclude.spilled_head,(s)->u.rollinclude.spilled_tail, __VA_ARGS__); break;\ |
| 461 | case RT_load: var = funprefix ## load ((s)->u.load.old_filenum,(s)->u.load.new_iname, __VA_ARGS__); break;\ |
| 462 | case RT_hot_index: var = funprefix ## hot_index ((s)->u.hot_index.hot_index_filenums, __VA_ARGS__); break;\ |
| 463 | case RT_dictionary_redirect: var = funprefix ## dictionary_redirect ((s)->u.dictionary_redirect.old_filenum,(s)->u.dictionary_redirect.new_filenum, __VA_ARGS__); break;\ |
| 464 | case RT_cmdupdate: var = funprefix ## cmdupdate ((s)->u.cmdupdate.filenum,(s)->u.cmdupdate.key, __VA_ARGS__); break;\ |
| 465 | case RT_cmdupdatebroadcast: var = funprefix ## cmdupdatebroadcast ((s)->u.cmdupdatebroadcast.filenum,(s)->u.cmdupdatebroadcast.is_resetting_op, __VA_ARGS__); break;\ |
| 466 | case RT_change_fdescriptor: var = funprefix ## change_fdescriptor ((s)->u.change_fdescriptor.filenum,(s)->u.change_fdescriptor.old_descriptor, __VA_ARGS__); break;\ |
| 467 | default: assert(0);} } while (0) |
| 468 | #define logtype_dispatch_args(s, funprefix, ...) do { switch((s)->cmd) {\ |
| 469 | case LT_begin_checkpoint: funprefix ## begin_checkpoint ((s)->u.begin_checkpoint.lsn,(s)->u.begin_checkpoint.timestamp,(s)->u.begin_checkpoint.last_xid, __VA_ARGS__); break;\ |
| 470 | case LT_end_checkpoint: funprefix ## end_checkpoint ((s)->u.end_checkpoint.lsn,(s)->u.end_checkpoint.lsn_begin_checkpoint,(s)->u.end_checkpoint.timestamp,(s)->u.end_checkpoint.num_fassociate_entries,(s)->u.end_checkpoint.num_xstillopen_entries, __VA_ARGS__); break;\ |
| 471 | case LT_fassociate: funprefix ## fassociate ((s)->u.fassociate.lsn,(s)->u.fassociate.filenum,(s)->u.fassociate.treeflags,(s)->u.fassociate.iname,(s)->u.fassociate.unlink_on_close, __VA_ARGS__); break;\ |
| 472 | case LT_xstillopen: funprefix ## xstillopen ((s)->u.xstillopen.lsn,(s)->u.xstillopen.xid,(s)->u.xstillopen.parentxid,(s)->u.xstillopen.rollentry_raw_count,(s)->u.xstillopen.open_filenums,(s)->u.xstillopen.force_fsync_on_commit,(s)->u.xstillopen.num_rollback_nodes,(s)->u.xstillopen.num_rollentries,(s)->u.xstillopen.spilled_rollback_head,(s)->u.xstillopen.spilled_rollback_tail,(s)->u.xstillopen.current_rollback, __VA_ARGS__); break;\ |
| 473 | case LT_xstillopenprepared: funprefix ## xstillopenprepared ((s)->u.xstillopenprepared.lsn,(s)->u.xstillopenprepared.xid,(s)->u.xstillopenprepared.xa_xid,(s)->u.xstillopenprepared.rollentry_raw_count,(s)->u.xstillopenprepared.open_filenums,(s)->u.xstillopenprepared.force_fsync_on_commit,(s)->u.xstillopenprepared.num_rollback_nodes,(s)->u.xstillopenprepared.num_rollentries,(s)->u.xstillopenprepared.spilled_rollback_head,(s)->u.xstillopenprepared.spilled_rollback_tail,(s)->u.xstillopenprepared.current_rollback, __VA_ARGS__); break;\ |
| 474 | case LT_xbegin: funprefix ## xbegin ((s)->u.xbegin.lsn,(s)->u.xbegin.xid,(s)->u.xbegin.parentxid, __VA_ARGS__); break;\ |
| 475 | case LT_xcommit: funprefix ## xcommit ((s)->u.xcommit.lsn,(s)->u.xcommit.xid, __VA_ARGS__); break;\ |
| 476 | case LT_xprepare: funprefix ## xprepare ((s)->u.xprepare.lsn,(s)->u.xprepare.xid,(s)->u.xprepare.xa_xid, __VA_ARGS__); break;\ |
| 477 | case LT_xabort: funprefix ## xabort ((s)->u.xabort.lsn,(s)->u.xabort.xid, __VA_ARGS__); break;\ |
| 478 | case LT_fcreate: funprefix ## fcreate ((s)->u.fcreate.lsn,(s)->u.fcreate.xid,(s)->u.fcreate.filenum,(s)->u.fcreate.iname,(s)->u.fcreate.mode,(s)->u.fcreate.treeflags,(s)->u.fcreate.nodesize,(s)->u.fcreate.basementnodesize,(s)->u.fcreate.compression_method, __VA_ARGS__); break;\ |
| 479 | case LT_fopen: funprefix ## fopen ((s)->u.fopen.lsn,(s)->u.fopen.iname,(s)->u.fopen.filenum,(s)->u.fopen.treeflags, __VA_ARGS__); break;\ |
| 480 | case LT_fclose: funprefix ## fclose ((s)->u.fclose.lsn,(s)->u.fclose.iname,(s)->u.fclose.filenum, __VA_ARGS__); break;\ |
| 481 | case LT_fdelete: funprefix ## fdelete ((s)->u.fdelete.lsn,(s)->u.fdelete.xid,(s)->u.fdelete.filenum, __VA_ARGS__); break;\ |
| 482 | case LT_frename: funprefix ## frename ((s)->u.frename.lsn,(s)->u.frename.xid,(s)->u.frename.old_iname,(s)->u.frename.old_filenum,(s)->u.frename.new_iname, __VA_ARGS__); break;\ |
| 483 | case LT_enq_insert: funprefix ## enq_insert ((s)->u.enq_insert.lsn,(s)->u.enq_insert.filenum,(s)->u.enq_insert.xid,(s)->u.enq_insert.key,(s)->u.enq_insert.value, __VA_ARGS__); break;\ |
| 484 | case LT_enq_insert_no_overwrite: funprefix ## enq_insert_no_overwrite ((s)->u.enq_insert_no_overwrite.lsn,(s)->u.enq_insert_no_overwrite.filenum,(s)->u.enq_insert_no_overwrite.xid,(s)->u.enq_insert_no_overwrite.key,(s)->u.enq_insert_no_overwrite.value, __VA_ARGS__); break;\ |
| 485 | case LT_enq_delete_any: funprefix ## enq_delete_any ((s)->u.enq_delete_any.lsn,(s)->u.enq_delete_any.filenum,(s)->u.enq_delete_any.xid,(s)->u.enq_delete_any.key, __VA_ARGS__); break;\ |
| 486 | case LT_enq_insert_multiple: funprefix ## enq_insert_multiple ((s)->u.enq_insert_multiple.lsn,(s)->u.enq_insert_multiple.src_filenum,(s)->u.enq_insert_multiple.dest_filenums,(s)->u.enq_insert_multiple.xid,(s)->u.enq_insert_multiple.src_key,(s)->u.enq_insert_multiple.src_val, __VA_ARGS__); break;\ |
| 487 | case LT_enq_delete_multiple: funprefix ## enq_delete_multiple ((s)->u.enq_delete_multiple.lsn,(s)->u.enq_delete_multiple.src_filenum,(s)->u.enq_delete_multiple.dest_filenums,(s)->u.enq_delete_multiple.xid,(s)->u.enq_delete_multiple.src_key,(s)->u.enq_delete_multiple.src_val, __VA_ARGS__); break;\ |
| 488 | case LT_comment: funprefix ## comment ((s)->u.comment.lsn,(s)->u.comment.timestamp,(s)->u.comment.comment, __VA_ARGS__); break;\ |
| 489 | case LT_shutdown_up_to_19: funprefix ## shutdown_up_to_19 ((s)->u.shutdown_up_to_19.lsn,(s)->u.shutdown_up_to_19.timestamp, __VA_ARGS__); break;\ |
| 490 | case LT_shutdown: funprefix ## shutdown ((s)->u.shutdown.lsn,(s)->u.shutdown.timestamp,(s)->u.shutdown.last_xid, __VA_ARGS__); break;\ |
| 491 | case LT_load: funprefix ## load ((s)->u.load.lsn,(s)->u.load.xid,(s)->u.load.old_filenum,(s)->u.load.new_iname, __VA_ARGS__); break;\ |
| 492 | case LT_hot_index: funprefix ## hot_index ((s)->u.hot_index.lsn,(s)->u.hot_index.xid,(s)->u.hot_index.hot_index_filenums, __VA_ARGS__); break;\ |
| 493 | case LT_enq_update: funprefix ## enq_update ((s)->u.enq_update.lsn,(s)->u.enq_update.filenum,(s)->u.enq_update.xid,(s)->u.enq_update.key,(s)->u.enq_update.extra, __VA_ARGS__); break;\ |
| 494 | case LT_enq_updatebroadcast: funprefix ## enq_updatebroadcast ((s)->u.enq_updatebroadcast.lsn,(s)->u.enq_updatebroadcast.filenum,(s)->u.enq_updatebroadcast.xid,(s)->u.enq_updatebroadcast.extra,(s)->u.enq_updatebroadcast.is_resetting_op, __VA_ARGS__); break;\ |
| 495 | case LT_change_fdescriptor: funprefix ## change_fdescriptor ((s)->u.change_fdescriptor.lsn,(s)->u.change_fdescriptor.filenum,(s)->u.change_fdescriptor.xid,(s)->u.change_fdescriptor.old_descriptor,(s)->u.change_fdescriptor.new_descriptor,(s)->u.change_fdescriptor.update_cmp_descriptor, __VA_ARGS__); break;\ |
| 496 | }} while (0) |
| 497 | static const size_t toku_log_begin_checkpoint_overhead = (+4+1+8+sizeof(uint64_t)+sizeof(TXNID)+8); |
| 498 | void toku_log_begin_checkpoint (TOKULOGGER logger, LSN *lsnp, int do_fsync, uint64_t timestamp, TXNID last_xid); |
| 499 | static const size_t toku_log_end_checkpoint_overhead = (+4+1+8+sizeof(LSN)+sizeof(uint64_t)+sizeof(uint32_t)+sizeof(uint32_t)+8); |
| 500 | void toku_log_end_checkpoint (TOKULOGGER logger, LSN *lsnp, int do_fsync, LSN lsn_begin_checkpoint, uint64_t timestamp, uint32_t num_fassociate_entries, uint32_t num_xstillopen_entries); |
| 501 | static const size_t toku_log_fassociate_overhead = (+4+1+8+sizeof(FILENUM)+sizeof(uint32_t)+sizeof(BYTESTRING)+sizeof(uint8_t)+8); |
| 502 | void toku_log_fassociate (TOKULOGGER logger, LSN *lsnp, int do_fsync, FILENUM filenum, uint32_t treeflags, BYTESTRING iname, uint8_t unlink_on_close); |
| 503 | static const size_t toku_log_xstillopen_overhead = (+4+1+8+sizeof(TXNID_PAIR)+sizeof(TXNID_PAIR)+sizeof(uint64_t)+sizeof(FILENUMS)+sizeof(uint8_t)+sizeof(uint64_t)+sizeof(uint64_t)+sizeof(BLOCKNUM)+sizeof(BLOCKNUM)+sizeof(BLOCKNUM)+8); |
| 504 | void toku_log_xstillopen (TOKULOGGER logger, LSN *lsnp, int do_fsync, TOKUTXN txn, TXNID_PAIR xid, TXNID_PAIR parentxid, uint64_t rollentry_raw_count, FILENUMS open_filenums, uint8_t force_fsync_on_commit, uint64_t num_rollback_nodes, uint64_t num_rollentries, BLOCKNUM spilled_rollback_head, BLOCKNUM spilled_rollback_tail, BLOCKNUM current_rollback); |
| 505 | static const size_t toku_log_xstillopenprepared_overhead = (+4+1+8+sizeof(TXNID_PAIR)+sizeof(XIDP)+sizeof(uint64_t)+sizeof(FILENUMS)+sizeof(uint8_t)+sizeof(uint64_t)+sizeof(uint64_t)+sizeof(BLOCKNUM)+sizeof(BLOCKNUM)+sizeof(BLOCKNUM)+8); |
| 506 | void toku_log_xstillopenprepared (TOKULOGGER logger, LSN *lsnp, int do_fsync, TOKUTXN txn, TXNID_PAIR xid, XIDP xa_xid, uint64_t rollentry_raw_count, FILENUMS open_filenums, uint8_t force_fsync_on_commit, uint64_t num_rollback_nodes, uint64_t num_rollentries, BLOCKNUM spilled_rollback_head, BLOCKNUM spilled_rollback_tail, BLOCKNUM current_rollback); |
| 507 | static const size_t toku_log_xbegin_overhead = (+4+1+8+sizeof(TXNID_PAIR)+sizeof(TXNID_PAIR)+8); |
| 508 | void toku_log_xbegin (TOKULOGGER logger, LSN *lsnp, int do_fsync, TXNID_PAIR xid, TXNID_PAIR parentxid); |
| 509 | static const size_t toku_log_xcommit_overhead = (+4+1+8+sizeof(TXNID_PAIR)+8); |
| 510 | void toku_log_xcommit (TOKULOGGER logger, LSN *lsnp, int do_fsync, TOKUTXN txn, TXNID_PAIR xid); |
| 511 | static const size_t toku_log_xprepare_overhead = (+4+1+8+sizeof(TXNID_PAIR)+sizeof(XIDP)+8); |
| 512 | void toku_log_xprepare (TOKULOGGER logger, LSN *lsnp, int do_fsync, TOKUTXN txn, TXNID_PAIR xid, XIDP xa_xid); |
| 513 | static const size_t toku_log_xabort_overhead = (+4+1+8+sizeof(TXNID_PAIR)+8); |
| 514 | void toku_log_xabort (TOKULOGGER logger, LSN *lsnp, int do_fsync, TOKUTXN txn, TXNID_PAIR xid); |
| 515 | static const size_t toku_log_fcreate_overhead = (+4+1+8+sizeof(TXNID_PAIR)+sizeof(FILENUM)+sizeof(BYTESTRING)+sizeof(uint32_t)+sizeof(uint32_t)+sizeof(uint32_t)+sizeof(uint32_t)+sizeof(uint32_t)+8); |
| 516 | void toku_log_fcreate (TOKULOGGER logger, LSN *lsnp, int do_fsync, TOKUTXN txn, TXNID_PAIR xid, FILENUM filenum, BYTESTRING iname, uint32_t mode, uint32_t treeflags, uint32_t nodesize, uint32_t basementnodesize, uint32_t compression_method); |
| 517 | static const size_t toku_log_fopen_overhead = (+4+1+8+sizeof(BYTESTRING)+sizeof(FILENUM)+sizeof(uint32_t)+8); |
| 518 | void toku_log_fopen (TOKULOGGER logger, LSN *lsnp, int do_fsync, BYTESTRING iname, FILENUM filenum, uint32_t treeflags); |
| 519 | static const size_t toku_log_fclose_overhead = (+4+1+8+sizeof(BYTESTRING)+sizeof(FILENUM)+8); |
| 520 | void toku_log_fclose (TOKULOGGER logger, LSN *lsnp, int do_fsync, BYTESTRING iname, FILENUM filenum); |
| 521 | static const size_t toku_log_fdelete_overhead = (+4+1+8+sizeof(TXNID_PAIR)+sizeof(FILENUM)+8); |
| 522 | void toku_log_fdelete (TOKULOGGER logger, LSN *lsnp, int do_fsync, TOKUTXN txn, TXNID_PAIR xid, FILENUM filenum); |
| 523 | static const size_t toku_log_frename_overhead = (+4+1+8+sizeof(TXNID_PAIR)+sizeof(BYTESTRING)+sizeof(FILENUM)+sizeof(BYTESTRING)+8); |
| 524 | void toku_log_frename (TOKULOGGER logger, LSN *lsnp, int do_fsync, TXNID_PAIR xid, BYTESTRING old_iname, FILENUM old_filenum, BYTESTRING new_iname); |
| 525 | static const size_t toku_log_enq_insert_overhead = (+4+1+8+sizeof(FILENUM)+sizeof(TXNID_PAIR)+sizeof(BYTESTRING)+sizeof(BYTESTRING)+8); |
| 526 | void toku_log_enq_insert (TOKULOGGER logger, LSN *lsnp, int do_fsync, TOKUTXN txn, FILENUM filenum, TXNID_PAIR xid, BYTESTRING key, BYTESTRING value); |
| 527 | static const size_t toku_log_enq_insert_no_overwrite_overhead = (+4+1+8+sizeof(FILENUM)+sizeof(TXNID_PAIR)+sizeof(BYTESTRING)+sizeof(BYTESTRING)+8); |
| 528 | void toku_log_enq_insert_no_overwrite (TOKULOGGER logger, LSN *lsnp, int do_fsync, TOKUTXN txn, FILENUM filenum, TXNID_PAIR xid, BYTESTRING key, BYTESTRING value); |
| 529 | static const size_t toku_log_enq_delete_any_overhead = (+4+1+8+sizeof(FILENUM)+sizeof(TXNID_PAIR)+sizeof(BYTESTRING)+8); |
| 530 | void toku_log_enq_delete_any (TOKULOGGER logger, LSN *lsnp, int do_fsync, TOKUTXN txn, FILENUM filenum, TXNID_PAIR xid, BYTESTRING key); |
| 531 | static const size_t toku_log_enq_insert_multiple_overhead = (+4+1+8+sizeof(FILENUM)+sizeof(FILENUMS)+sizeof(TXNID_PAIR)+sizeof(BYTESTRING)+sizeof(BYTESTRING)+8); |
| 532 | void toku_log_enq_insert_multiple (TOKULOGGER logger, LSN *lsnp, int do_fsync, TOKUTXN txn, FILENUM src_filenum, FILENUMS dest_filenums, TXNID_PAIR xid, BYTESTRING src_key, BYTESTRING src_val); |
| 533 | static const size_t toku_log_enq_delete_multiple_overhead = (+4+1+8+sizeof(FILENUM)+sizeof(FILENUMS)+sizeof(TXNID_PAIR)+sizeof(BYTESTRING)+sizeof(BYTESTRING)+8); |
| 534 | void toku_log_enq_delete_multiple (TOKULOGGER logger, LSN *lsnp, int do_fsync, TOKUTXN txn, FILENUM src_filenum, FILENUMS dest_filenums, TXNID_PAIR xid, BYTESTRING src_key, BYTESTRING src_val); |
| 535 | static const size_t = (+4+1+8+sizeof(uint64_t)+sizeof(BYTESTRING)+8); |
| 536 | void (TOKULOGGER logger, LSN *lsnp, int do_fsync, uint64_t timestamp, BYTESTRING ); |
| 537 | static const size_t toku_log_shutdown_up_to_19_overhead = (+4+1+8+sizeof(uint64_t)+8); |
| 538 | void toku_log_shutdown_up_to_19 (TOKULOGGER logger, LSN *lsnp, int do_fsync, uint64_t timestamp); |
| 539 | static const size_t toku_log_shutdown_overhead = (+4+1+8+sizeof(uint64_t)+sizeof(TXNID)+8); |
| 540 | void toku_log_shutdown (TOKULOGGER logger, LSN *lsnp, int do_fsync, uint64_t timestamp, TXNID last_xid); |
| 541 | static const size_t toku_log_load_overhead = (+4+1+8+sizeof(TXNID_PAIR)+sizeof(FILENUM)+sizeof(BYTESTRING)+8); |
| 542 | void toku_log_load (TOKULOGGER logger, LSN *lsnp, int do_fsync, TOKUTXN txn, TXNID_PAIR xid, FILENUM old_filenum, BYTESTRING new_iname); |
| 543 | static const size_t toku_log_hot_index_overhead = (+4+1+8+sizeof(TXNID_PAIR)+sizeof(FILENUMS)+8); |
| 544 | void toku_log_hot_index (TOKULOGGER logger, LSN *lsnp, int do_fsync, TOKUTXN txn, TXNID_PAIR xid, FILENUMS hot_index_filenums); |
| 545 | static const size_t toku_log_enq_update_overhead = (+4+1+8+sizeof(FILENUM)+sizeof(TXNID_PAIR)+sizeof(BYTESTRING)+sizeof(BYTESTRING)+8); |
| 546 | void toku_log_enq_update (TOKULOGGER logger, LSN *lsnp, int do_fsync, TOKUTXN txn, FILENUM filenum, TXNID_PAIR xid, BYTESTRING key, BYTESTRING ); |
| 547 | static const size_t toku_log_enq_updatebroadcast_overhead = (+4+1+8+sizeof(FILENUM)+sizeof(TXNID_PAIR)+sizeof(BYTESTRING)+sizeof(bool)+8); |
| 548 | void toku_log_enq_updatebroadcast (TOKULOGGER logger, LSN *lsnp, int do_fsync, TOKUTXN txn, FILENUM filenum, TXNID_PAIR xid, BYTESTRING , bool is_resetting_op); |
| 549 | static const size_t toku_log_change_fdescriptor_overhead = (+4+1+8+sizeof(FILENUM)+sizeof(TXNID_PAIR)+sizeof(BYTESTRING)+sizeof(BYTESTRING)+sizeof(bool)+8); |
| 550 | void toku_log_change_fdescriptor (TOKULOGGER logger, LSN *lsnp, int do_fsync, TOKUTXN txn, FILENUM filenum, TXNID_PAIR xid, BYTESTRING old_descriptor, BYTESTRING new_descriptor, bool update_cmp_descriptor); |
| 551 | int toku_log_fread (FILE *infile, struct log_entry *le); |
| 552 | // Return 0 if there is something to read, -1 if nothing to read, >0 on error |
| 553 | int toku_log_fread_backward (FILE *infile, struct log_entry *le); |
| 554 | void toku_log_free_log_entry_resources (struct log_entry *le); |
| 555 | void toku_logger_save_rollback_fdelete (TOKUTXN txn, FILENUM filenum); |
| 556 | void toku_logger_save_rollback_fcreate (TOKUTXN txn, FILENUM filenum, BYTESTRING *iname_ptr); |
| 557 | void toku_logger_save_rollback_frename (TOKUTXN txn, BYTESTRING *old_iname_ptr, BYTESTRING *new_iname_ptr); |
| 558 | void toku_logger_save_rollback_cmdinsert (TOKUTXN txn, FILENUM filenum, BYTESTRING *key_ptr); |
| 559 | void toku_logger_save_rollback_cmddelete (TOKUTXN txn, FILENUM filenum, BYTESTRING *key_ptr); |
| 560 | void toku_logger_save_rollback_rollinclude (TOKUTXN txn, TXNID_PAIR xid, uint64_t num_nodes, BLOCKNUM spilled_head, BLOCKNUM spilled_tail); |
| 561 | void toku_logger_save_rollback_load (TOKUTXN txn, FILENUM old_filenum, BYTESTRING *new_iname_ptr); |
| 562 | void toku_logger_save_rollback_hot_index (TOKUTXN txn, FILENUMS *hot_index_filenums_ptr); |
| 563 | void toku_logger_save_rollback_dictionary_redirect (TOKUTXN txn, FILENUM old_filenum, FILENUM new_filenum); |
| 564 | void toku_logger_save_rollback_cmdupdate (TOKUTXN txn, FILENUM filenum, BYTESTRING *key_ptr); |
| 565 | void toku_logger_save_rollback_cmdupdatebroadcast (TOKUTXN txn, FILENUM filenum, bool is_resetting_op); |
| 566 | void toku_logger_save_rollback_change_fdescriptor (TOKUTXN txn, FILENUM filenum, BYTESTRING *old_descriptor_ptr); |
| 567 | void toku_logger_rollback_wbuf_nocrc_write_fdelete (struct wbuf *wbuf, FILENUM filenum); |
| 568 | void toku_logger_rollback_wbuf_nocrc_write_fcreate (struct wbuf *wbuf, FILENUM filenum, BYTESTRING iname); |
| 569 | void toku_logger_rollback_wbuf_nocrc_write_frename (struct wbuf *wbuf, BYTESTRING old_iname, BYTESTRING new_iname); |
| 570 | void toku_logger_rollback_wbuf_nocrc_write_cmdinsert (struct wbuf *wbuf, FILENUM filenum, BYTESTRING key); |
| 571 | void toku_logger_rollback_wbuf_nocrc_write_cmddelete (struct wbuf *wbuf, FILENUM filenum, BYTESTRING key); |
| 572 | void toku_logger_rollback_wbuf_nocrc_write_rollinclude (struct wbuf *wbuf, TXNID_PAIR xid, uint64_t num_nodes, BLOCKNUM spilled_head, BLOCKNUM spilled_tail); |
| 573 | void toku_logger_rollback_wbuf_nocrc_write_load (struct wbuf *wbuf, FILENUM old_filenum, BYTESTRING new_iname); |
| 574 | void toku_logger_rollback_wbuf_nocrc_write_hot_index (struct wbuf *wbuf, FILENUMS hot_index_filenums); |
| 575 | void toku_logger_rollback_wbuf_nocrc_write_dictionary_redirect (struct wbuf *wbuf, FILENUM old_filenum, FILENUM new_filenum); |
| 576 | void toku_logger_rollback_wbuf_nocrc_write_cmdupdate (struct wbuf *wbuf, FILENUM filenum, BYTESTRING key); |
| 577 | void toku_logger_rollback_wbuf_nocrc_write_cmdupdatebroadcast (struct wbuf *wbuf, FILENUM filenum, bool is_resetting_op); |
| 578 | void toku_logger_rollback_wbuf_nocrc_write_change_fdescriptor (struct wbuf *wbuf, FILENUM filenum, BYTESTRING old_descriptor); |
| 579 | void toku_logger_rollback_wbuf_nocrc_write (struct wbuf *wbuf, struct roll_entry *r); |
| 580 | uint32_t toku_logger_rollback_fsize_fdelete (FILENUM filenum); |
| 581 | uint32_t toku_logger_rollback_fsize_fcreate (FILENUM filenum, BYTESTRING iname); |
| 582 | uint32_t toku_logger_rollback_fsize_frename (BYTESTRING old_iname, BYTESTRING new_iname); |
| 583 | uint32_t toku_logger_rollback_fsize_cmdinsert (FILENUM filenum, BYTESTRING key); |
| 584 | uint32_t toku_logger_rollback_fsize_cmddelete (FILENUM filenum, BYTESTRING key); |
| 585 | uint32_t toku_logger_rollback_fsize_rollinclude (TXNID_PAIR xid, uint64_t num_nodes, BLOCKNUM spilled_head, BLOCKNUM spilled_tail); |
| 586 | uint32_t toku_logger_rollback_fsize_load (FILENUM old_filenum, BYTESTRING new_iname); |
| 587 | uint32_t toku_logger_rollback_fsize_hot_index (FILENUMS hot_index_filenums); |
| 588 | uint32_t toku_logger_rollback_fsize_dictionary_redirect (FILENUM old_filenum, FILENUM new_filenum); |
| 589 | uint32_t toku_logger_rollback_fsize_cmdupdate (FILENUM filenum, BYTESTRING key); |
| 590 | uint32_t toku_logger_rollback_fsize_cmdupdatebroadcast (FILENUM filenum, bool is_resetting_op); |
| 591 | uint32_t toku_logger_rollback_fsize_change_fdescriptor (FILENUM filenum, BYTESTRING old_descriptor); |
| 592 | uint32_t toku_logger_rollback_fsize(struct roll_entry *item); |
| 593 | int toku_parse_rollback(unsigned char *buf, uint32_t n_bytes, struct roll_entry **itemp, memarena *ma); |
| 594 | LSN toku_log_entry_get_lsn(struct log_entry *); |
| 595 | int toku_logprint_one_record(FILE *outf, FILE *f); |
| 596 | |