1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
/*-
* Copyright (c) 2014-2015 MongoDB, Inc.
* Copyright (c) 2008-2014 WiredTiger, Inc.
* All rights reserved.
*
* See the file LICENSE for redistribution information.
*/
#define WT_WIREDTIGER "WiredTiger" /* Version file */
#define WT_SINGLETHREAD "WiredTiger.lock" /* Locking file */
#define WT_BASECONFIG "WiredTiger.basecfg" /* Base configuration */
#define WT_BASECONFIG_SET "WiredTiger.basecfg.set"/* Base config temp */
#define WT_USERCONFIG "WiredTiger.config" /* User configuration */
#define WT_METADATA_BACKUP "WiredTiger.backup" /* Hot backup file */
#define WT_INCREMENTAL_BACKUP "WiredTiger.ibackup" /* Incremental backup */
#define WT_METADATA_TURTLE "WiredTiger.turtle" /* Metadata metadata */
#define WT_METADATA_TURTLE_SET "WiredTiger.turtle.set" /* Turtle temp file */
#define WT_METADATA_URI "metadata:" /* Metadata alias */
#define WT_METAFILE_URI "file:WiredTiger.wt" /* Metadata table URI */
#define WT_LAS_URI "file:WiredTigerLAS.wt" /* Lookaside table URI*/
/*
* Pre computed hash for the metadata file. Used to optimize comparisons
* against the metafile URI. The validity is checked on connection open
* when diagnostic is enabled.
*/
#define WT_METAFILE_NAME_HASH 1045034099109282882LLU /* Metadata file hash */
#define WT_IS_METADATA(dh) \
((dh)->name_hash == WT_METAFILE_NAME_HASH && \
strcmp((dh)->name, WT_METAFILE_URI) == 0)
#define WT_METAFILE_ID 0 /* Metadata file ID */
#define WT_METADATA_VERSION "WiredTiger version" /* Version keys */
#define WT_METADATA_VERSION_STR "WiredTiger version string"
/*
* WT_WITH_TURTLE_LOCK --
* Acquire the turtle file lock, perform an operation, drop the lock.
*/
#define WT_WITH_TURTLE_LOCK(session, op) do { \
WT_ASSERT(session, !F_ISSET(session, WT_SESSION_LOCKED_TURTLE));\
WT_WITH_LOCK(session, \
&S2C(session)->turtle_lock, WT_SESSION_LOCKED_TURTLE, op); \
} while (0)
/*
* WT_CKPT --
* Encapsulation of checkpoint information, shared by the metadata, the
* btree engine, and the block manager.
*/
#define WT_CHECKPOINT "WiredTigerCheckpoint"
#define WT_CKPT_FOREACH(ckptbase, ckpt) \
for ((ckpt) = (ckptbase); (ckpt)->name != NULL; ++(ckpt))
struct __wt_ckpt {
char *name; /* Name or NULL */
WT_ITEM addr; /* Checkpoint cookie string */
WT_ITEM raw; /* Checkpoint cookie raw */
int64_t order; /* Checkpoint order */
uintmax_t sec; /* Timestamp */
uint64_t ckpt_size; /* Checkpoint size */
uint64_t write_gen; /* Write generation */
void *bpriv; /* Block manager private */
#define WT_CKPT_ADD 0x01 /* Checkpoint to be added */
#define WT_CKPT_DELETE 0x02 /* Checkpoint to be deleted */
#define WT_CKPT_FAKE 0x04 /* Checkpoint is a fake */
#define WT_CKPT_UPDATE 0x08 /* Checkpoint requires update */
uint32_t flags;
};
|