asu-idi / CaaS-LSM

[SIGMOD '24] CaaS-LSM: Compaction-as-a-Service for LSM-based Key-Value Stores in Storage Disaggregated Infrastructure
GNU General Public License v2.0
59 stars 5 forks source link

Filter condition of memory utilization #2

Closed Dorence closed 3 weeks ago

Dorence commented 3 weeks ago

As memtioned in CaaS-LSM paper 4.2.3, the Scheduler filters out CSAs where the current CPU or memory utilization rate exceeds 80%. In db/compaction/remote_compaction/procp_server.cc, however, the statement is csa_status_map_[best_worker].memory_usage() < 0.3. To what extent does the difference affect scheduling when memory utilization is high?

zhichao-cao commented 3 weeks ago

@Qiaolin-Yu You may take a look and answer it.

Qiaolin-Yu commented 3 weeks ago

Apologies for the confusion caused by the inappropriate variable name. Here, memory_usage actually represents the free memory ratio, calculated in db/compaction/remote_compaction/utils.h as static_cast<double>(m.MemFree) / static_cast<double>(m.MemTotal);. Therefore, the rule here is that the CSA will be filtered out when CPU utilization reaches 70%. If you'd like to use the 80% threshold mentioned in the paper, simply change this value to 0.2.