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.
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.