Hi,

I think the param number 3 and number 6 can be merged into one parameter.
The checking interval can be the same value for both sequence and unsequence 
memtables.
I don’t think any users will try to set different value for them. 

How do you think?

Thanks,
Haonan Hou

> On Aug 19, 2021, at 6:04 PM, Jialin Qiao <[email protected]> wrote:
> 
> Hi,
> 
>> I am confused whether to open timed flush seq/unseq memtable and timed
> close TsFileProcessor by default, because they can save memory in some user
> cases while they just waste cpu in other user cases.
> 
> It could be enabled by default, both seq and unseq.
> The 12 hours for memtable flush interval and close file interval is fine.
> If it really kept 12 hours in memory, the CPU load should be very low, no
> need to worry.
> 
> Thanks,
> —————————————————
> Jialin Qiao
> School of Software, Tsinghua University
> 
> 乔嘉林
> 清华大学 软件学院
> 
> 
> Haiming Zhu <[email protected]> 于2021年8月19日周四 下午4:37写道:
> 
>> Hi,
>> 
>> 
>> I have already implemented both issues [1][2].
>> 
>> 
>> Timed flush memtable [3] is used to flush inactive memtables periodically
>> according to their created time. For example, if we set
>> seq_memtable_flush_interval_in_ms to 1000, memtable A, created at time
>> 2000, can be flushed after time 3000.
>> 
>> 
>> Timed close TsFileProcessor [4] is used to close inactive TsFileProcessors
>> periodically according to how long they don't process write operations. For
>> example, if we set close_tsfile_interval_after_flushing_in_ms to 1000,
>> TsFileProcessor A, whose last workMemtable was flush at time 2000 and
>> current workMemtable is null (i.e., no more wirite operations after last
>> flush), can be closed after time 3000.
>> 
>> 
>> But, i am confused whether to open timed flush seq/unseq memtable and
>> timed close TsFileProcessor by default, because they can save memory in
>> some user cases while they just waste cpu in other user cases.
>> 
>> 
>> Look forward to your reply.
>> 
>> 
>> [1]&nbsp;https://github.com/apache/iotdb/pull/3776
>> [2]&nbsp;https://github.com/apache/iotdb/pull/3777
>> 
>> [3]&nbsp;https://issues.apache.org/jira/projects/IOTDB/issues/IOTDB-1496
>> [4]&nbsp;https://issues.apache.org/jira/projects/IOTDB/issues/IOTDB-1569
>> 
>> 
>> Thanks,
>> —————————————————
>> Haiming Zhu
>> 
>> 
>> 
>> 
>> ------------------&nbsp;原始邮件&nbsp;------------------
>> 发件人:
>>                                                  "dev"
>> 
>> <[email protected]&gt;;
>> 发送时间:&nbsp;2021年8月16日(星期一) 下午5:18
>> 收件人:&nbsp;"IoTDB邮件列表"<[email protected]&gt;;
>> 
>> 主题:&nbsp;Timed flush memtable and timed close TsFileProcessor
>> 
>> 
>> 
>> Hi,
>> 
>> 
>> If we open a TsFileProcessor and then never write to it, this
>> TsFileProcessor will become a zombie because nothing can trigger a flush or
>> close operation. So, i am implementing timed flush memtable [1] and timed
>> close TsFileProcessor [2]. Timed flush memtable is used to flush inactive
>> memtables periodically according to their created time. Timed close
>> TsFileProcessor is used to close inactive
>> TsFileProcessors&amp;nbsp;periodically according to how long they don't
>> process write operations.
>> 
>> 
>> I add 9 params to control above two functions, and these 9 params all can
>> be hot loaded by 'load configuration' command.
>> 
>> 
>> 1. enable_timed_flush_seq_memtable: whether to timed flush sequence
>> tsfiles' memtables.
>> 2. seq_memtable_flush_interval_in_ms: when a sequence memTable's created
>> time is older than current time minus this, the memtable is flushed to disk.
>> 3. seq_memtable_flush_check_interval_in_ms: the interval to check whether
>> the sequence&amp;nbsp;memtables need flushing.
>> 4. enable_timed_flush_unseq_memtable: whether to timed flush unsequence
>> tsfiles' memtables.
>> 5. unseq_memtable_flush_interval_in_ms: when an unsequence memTable's
>> created time is older than current time minus this, the memtable is flushed
>> to disk.
>> 6. unseq_memtable_flush_check_interval_in_ms: the interval to check
>> whether the unsequence&amp;nbsp;memtables need flushing.
>> 7. enable_timed_close_tsfile: whether to timed close TsfileProcessors.
>> 8.&amp;nbsp;close_tsfile_interval_after_flushing_in_ms: when
>> TsfileProcessor's last working memtable flush time is older than current
>> time minus this and its working memtable is null, this TsfileProcessor will
>> be closed.
>> 9.&amp;nbsp;close_tsfile_check_interval_in_ms: the interval to check
>> whether the TsfileProcessors&amp;nbsp;need closing.
>> 
>> 
>> What do you think?
>> 
>> 
>> [1]&amp;nbsp;
>> https://issues.apache.org/jira/projects/IOTDB/issues/IOTDB-1496
>> [2] https://issues.apache.org/jira/projects/IOTDB/issues/IOTDB-1569
>> 
>> 
>> Thanks,
>> —————————————————
>> Haiming Zhu
> 

Reply via email to