Skip to content

Commit e702aae

Browse files
authored
HBASE-26458 Update Snapshot TTL doc (#3852)
Signed-off-by: Duo Zhang <zhangduo@apache.org> Signed-off-by: Viraj Jasani <vjasani@apache.org>
1 parent 96d699a commit e702aae

File tree

1 file changed

+16
-8
lines changed

1 file changed

+16
-8
lines changed

src/main/asciidoc/_chapters/ops_mgt.adoc

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3150,23 +3150,31 @@ TTL some notion of optional TTL (and optional default TTL) for snapshots could b
31503150
hbase> snapshot 'mytable', 'snapshot1234', {TTL => 86400}
31513151
----
31523152

3153-
The above command creates snapshot `snapshot1234` with TTL of 86400 sec(24 hours)
3153+
The above command creates snapshot `snapshot1234` with TTL of 86400 sec (24 hours)
31543154
and hence, the snapshot is supposed to be cleaned up after 24 hours
31553155

31563156

31573157

31583158
.Default Snapshot TTL:
3159+
- User specified default TTL with config `hbase.master.snapshot.ttl`
3160+
- FOREVER if `hbase.master.snapshot.ttl` is not set
31593161

3160-
- FOREVER by default
3161-
- User specified Default TTL with config `hbase.master.snapshot.ttl`
3162+
While creating a snapshot, if TTL in seconds is not explicitly specified, the above logic will be
3163+
followed to determine the TTL. If no configs are changed, the default behavior is that all snapshots
3164+
will be retained forever (until manual deletion). If a different default TTL behavior is desired,
3165+
`hbase.master.snapshot.ttl` can be set to a default TTL in seconds. Any snapshot created without
3166+
an explicit TTL will take this new value.
31623167

3168+
NOTE: If `hbase.master.snapshot.ttl` is set, a snapshot with an explicit {TTL => 0} or
3169+
{TTL => -1} will also take this value. In this case, a TTL < -1 (such as {TTL => -2} should be used
3170+
to indicate FOREVER.
31633171

3164-
While creating a Snapshot, if TTL in seconds is not specified, by default the snapshot
3165-
would not be deleted automatically. i.e. it would be retained forever until it is
3166-
manually deleted. However, the user can update this default TTL behavior by
3167-
providing default TTL in sec for key: `hbase.master.snapshot.ttl`.
3168-
Value 0 for this config indicates TTL: FOREVER
3172+
To summarize concisely,
31693173

3174+
1. Snapshot with TTL value < -1 will stay forever regardless of any server side config changes (until deleted manually by user).
3175+
2. Snapshot with TTL value > 0 will be deleted automatically soon after TTL expires.
3176+
3. Snapshot created without specifying TTL will always have TTL value represented by config `hbase.master.snapshot.ttl`. Default value of this config is 0, which represents: keep the snapshot forever (until deleted manually by user).
3177+
4. From client side, TTL value 0 or -1 should never be explicitly provided because they will be treated same as snapshot without TTL (same as above point 3) and hence will use TTL as per value represented by config `hbase.master.snapshot.ttl`.
31703178

31713179
.Take a snapshot with custom MAX_FILESIZE
31723180

0 commit comments

Comments
 (0)