HBASE-26458 Update Snapshot TTL doc (#3852)

Signed-off-by: Duo Zhang <zhangduo@apache.org>
Signed-off-by: Viraj Jasani <vjasani@apache.org>
This commit is contained in:
Joel Swiatek 2021-11-23 22:44:01 -08:00 committed by GitHub
parent 96d699a8f0
commit e702aaee6d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 16 additions and 8 deletions

View File

@ -3150,23 +3150,31 @@ TTL some notion of optional TTL (and optional default TTL) for snapshots could b
hbase> snapshot 'mytable', 'snapshot1234', {TTL => 86400}
----
The above command creates snapshot `snapshot1234` with TTL of 86400 sec(24 hours)
The above command creates snapshot `snapshot1234` with TTL of 86400 sec (24 hours)
and hence, the snapshot is supposed to be cleaned up after 24 hours
.Default Snapshot TTL:
- User specified default TTL with config `hbase.master.snapshot.ttl`
- FOREVER if `hbase.master.snapshot.ttl` is not set
- FOREVER by default
- User specified Default TTL with config `hbase.master.snapshot.ttl`
While creating a snapshot, if TTL in seconds is not explicitly specified, the above logic will be
followed to determine the TTL. If no configs are changed, the default behavior is that all snapshots
will be retained forever (until manual deletion). If a different default TTL behavior is desired,
`hbase.master.snapshot.ttl` can be set to a default TTL in seconds. Any snapshot created without
an explicit TTL will take this new value.
NOTE: If `hbase.master.snapshot.ttl` is set, a snapshot with an explicit {TTL => 0} or
{TTL => -1} will also take this value. In this case, a TTL < -1 (such as {TTL => -2} should be used
to indicate FOREVER.
While creating a Snapshot, if TTL in seconds is not specified, by default the snapshot
would not be deleted automatically. i.e. it would be retained forever until it is
manually deleted. However, the user can update this default TTL behavior by
providing default TTL in sec for key: `hbase.master.snapshot.ttl`.
Value 0 for this config indicates TTL: FOREVER
To summarize concisely,
1. Snapshot with TTL value < -1 will stay forever regardless of any server side config changes (until deleted manually by user).
2. Snapshot with TTL value > 0 will be deleted automatically soon after TTL expires.
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).
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`.
.Take a snapshot with custom MAX_FILESIZE