[
https://issues.apache.org/jira/browse/KUDU-3326?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17450910#comment-17450910
]
dengke commented on KUDU-3326:
------------------------------
The following is a summary of the changes involved in this discussion:
1. When do deleting, add a parameter to determine whether to delete the trash
table directly. If not, the trash table will be retained for a period of time
by default.
2. ListTables() does not display the trash table. If we want to display the
trash table, we need to add a new API with new parameters.
3. After deleting a table, we do not need to modify the table name, but
directly manage it through the newly added independent abandoned table list and
use "trashed_time” field to maintains the deletion time. When reloading, the
destination container for loading is determined according to whether there are
“trashed_time” field (a separate container for the trash table).
4. When do recalling, we could have users recall by specifying a table ID, and
potentially giving a new name for the recalled table.
In addition to these contents, is there anything to be added?
> Add Soft Delete Table Supports
> ------------------------------
>
> Key: KUDU-3326
> URL: https://issues.apache.org/jira/browse/KUDU-3326
> Project: Kudu
> Issue Type: New Feature
> Components: api, CLI, client, master, test
> Reporter: dengke
> Assignee: dengke
> Priority: Major
>
> h2. Brief description:
> Soft delete means that the kudu system will not delete the table
> immediately after receiving the command to delete the table. Instead, it will
> mark the table and set a validity period. After the validity period, will try
> again to determine whether the table really needs to be deleted.
> This feature can restore data conveniently and timely in the case of
> accidental deletion.
> h2. Relevant modification points:
> 1. After deleting a table, the original table name will be renamed as
> KUDU_TRASHED: < timestamp >: < original table name >, which becomes a trash
> table.
> 2. The contents of the trash table are exactly the same as those of the
> original table. Although it cannot be renamed, added or deleted directly,
> it can be read and written normally. The trash table will be retained for a
> period of time by default (such as 7 days, which can be modified through
> parameters). The compact priority of the trash table will be set to the
> lowest to save the system resources.
> 3. The master needs to add a thread to process expired trash tables and
> perform real deletion.
> 4. It is allowed to create a table with the same name as the original table,
> and the newly created table with the same name can be deleted normally.
> 5. It is allowed to recall deleted tables, but the following two situations
> cannot be recalled: the same original table name exists and the trash table
> has expired.
> 6. The KUDU_TRASHED is a reserved string for the system. Users are not
> allowed to create a table with table names starting with KUDU_TRASHED.
> 7. Kudu tool adaptation soft deletion.
> 8. Java API adaptation soft deletion.
--
This message was sent by Atlassian Jira
(v8.20.1#820001)