Hi,



Want to do:

Added "Modify Time Series Encoding and Compression Type" interface/command




Application scenarios:

In IoTDB application projects, reasonable setting of encoding and compression 
algorithms can effectively reduce disk space occupancy and reduce server costs 
in disguise. Modifying encoding and compression algorithms is an ideal method.




Encoding and compression type data location:

1. Metadata - File

2. Metadata - Memory

3. tsfile file - unsealed

4. tsfile file - sealed

5. Wirter in memory

6. The reader in memory

7. Files and memory in merge

7. Others in memory to be added...




Divided by data segment:

Sealed historical tsfile file data - unsealed tsfile file data - incremental 
data




plan selection:

Option 1: The modification command only names incremental data, and provides 
historical data modification commands at the same time

Advantages: fast execution of real-time commands, little impact on online 
operation

Disadvantage: If the prompt is inappropriate, the user may mistakenly think 
that all data has been changed by executing the first command




Option 2: The modification command can modify incremental data and historical 
data at the same time

Advantages: One command completes all operations, immediate results, and the 
reduction of disk space usage can be directly observed

Disadvantages: The execution time of a single command is too long, which has a 
great impact on the online, and needs to be controlled




List of possible tasks:

1. When querying and reading tsfile, use the encoding/compression type in the 
chunk header (to be investigated)

2. Modify metadata, including memory and files, so that incremental data 
directly uses the latest encoding/compression type

3. Modify the related Decoder Encoder Compressor in memory

4. Modify the historical tsfile file, the original tsfile->temporary tsfile, 
do the switching operation after the writing is completed, and write in the 
positive sequence

5. When the command is executed, the sealing operation is performed 
immediately, and the sealed file will be rewritten when the history file is 
modified (to be discussed)

6. If currently in merge, reject the command? (to be discussed)

7. Interface development, first modify the part that affects incremental data, 
and then modify the historical tsfile file

8. SQL development (does not support the first version?)

9. Service restart command recovery operation requires persistent execution 
process

10. Perform pre- and post-checking, possibly saving a summary of each tsfile 
before and after modification for verification




Possibly noteworthy:

1. Lock control

2. Concurrency control

3. Permission control




question:

1. If this is feasible, which version is better to develop in, 12/13/14




Best, -----------------------------------

Pengfei Liu

Reply via email to