1 /*- 2 * Copyright (c) 2014-2018 MongoDB, Inc. 3 * Copyright (c) 2008-2014 WiredTiger, Inc. 4 * All rights reserved. 5 * 6 * See the file LICENSE for redistribution information. 7 */ 8 9 #define WT_WIREDTIGER "WiredTiger" /* Version file */ 10 #define WT_SINGLETHREAD "WiredTiger.lock" /* Locking file */ 11 12 #define WT_BASECONFIG "WiredTiger.basecfg" /* Base configuration */ 13 #define WT_BASECONFIG_SET "WiredTiger.basecfg.set"/* Base config temp */ 14 15 #define WT_USERCONFIG "WiredTiger.config" /* User configuration */ 16 17 #define WT_BACKUP_TMP "WiredTiger.backup.tmp" /* Backup tmp file */ 18 #define WT_METADATA_BACKUP "WiredTiger.backup" /* Hot backup file */ 19 #define WT_INCREMENTAL_BACKUP "WiredTiger.ibackup" /* Incremental backup */ 20 #define WT_INCREMENTAL_SRC "WiredTiger.isrc" /* Incremental source */ 21 22 #define WT_METADATA_TURTLE "WiredTiger.turtle" /* Metadata metadata */ 23 #define WT_METADATA_TURTLE_SET "WiredTiger.turtle.set" /* Turtle temp file */ 24 25 #define WT_METADATA_URI "metadata:" /* Metadata alias */ 26 #define WT_METAFILE "WiredTiger.wt" /* Metadata table */ 27 #define WT_METAFILE_SLVG "WiredTiger.wt.orig" /* Metadata copy */ 28 #define WT_METAFILE_URI "file:WiredTiger.wt" /* Metadata table URI */ 29 30 #define WT_LAS_FILE "WiredTigerLAS.wt" /* Lookaside table */ 31 #define WT_LAS_URI "file:WiredTigerLAS.wt" /* Lookaside table URI*/ 32 33 #define WT_SYSTEM_PREFIX "system:" /* System URI prefix */ 34 #define WT_SYSTEM_CKPT_URI "system:checkpoint" /* Checkpoint URI */ 35 36 /* 37 * Optimize comparisons against the metafile URI, flag handles that reference 38 * the metadata file. 39 */ 40 #define WT_IS_METADATA(dh) F_ISSET((dh), WT_DHANDLE_IS_METADATA) 41 #define WT_METAFILE_ID 0 /* Metadata file ID */ 42 43 #define WT_METADATA_COMPAT "Compatibility version" 44 #define WT_METADATA_VERSION "WiredTiger version" /* Version keys */ 45 #define WT_METADATA_VERSION_STR "WiredTiger version string" 46 47 /* 48 * WT_WITH_TURTLE_LOCK -- 49 * Acquire the turtle file lock, perform an operation, drop the lock. 50 */ 51 #define WT_WITH_TURTLE_LOCK(session, op) do { \ 52 WT_ASSERT(session, !F_ISSET(session, WT_SESSION_LOCKED_TURTLE));\ 53 WT_WITH_LOCK_WAIT(session, \ 54 &S2C(session)->turtle_lock, WT_SESSION_LOCKED_TURTLE, op); \ 55 } while (0) 56 57 /* 58 * WT_CKPT -- 59 * Encapsulation of checkpoint information, shared by the metadata, the 60 * btree engine, and the block manager. 61 */ 62 #define WT_CHECKPOINT "WiredTigerCheckpoint" 63 #define WT_CKPT_FOREACH(ckptbase, ckpt) \ 64 for ((ckpt) = (ckptbase); (ckpt)->name != NULL; ++(ckpt)) 65 66 struct __wt_ckpt { 67 char *name; /* Name or NULL */ 68 69 WT_ITEM addr; /* Checkpoint cookie string */ 70 WT_ITEM raw; /* Checkpoint cookie raw */ 71 72 int64_t order; /* Checkpoint order */ 73 74 uintmax_t sec; /* Timestamp */ 75 76 uint64_t ckpt_size; /* Checkpoint size */ 77 78 uint64_t write_gen; /* Write generation */ 79 80 void *bpriv; /* Block manager private */ 81 82 /* AUTOMATIC FLAG VALUE GENERATION START */ 83 #define WT_CKPT_ADD 0x1u /* Checkpoint to be added */ 84 #define WT_CKPT_DELETE 0x2u /* Checkpoint to be deleted */ 85 #define WT_CKPT_FAKE 0x4u /* Checkpoint is a fake */ 86 #define WT_CKPT_UPDATE 0x8u /* Checkpoint requires update */ 87 /* AUTOMATIC FLAG VALUE GENERATION STOP */ 88 uint32_t flags; 89 }; 90