forked from ls4154/YCSB-cpp
-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Description
NVMeVirt의 KVSSD 구현은 2가지 루틴으로 구성되어 있습니다.
첫번째 루틴은 I/O를 직접적으로 HashMap에 저장하는 루틴으로 이 부분은 우리가 건드릴 필요가 없을 것으로 생각됩니다.
하지만 두번째 루틴인 I/O 지연시간 모델링이 이루어지는 부분에 대해서 우리가 직접적으로 건드려야 할 것으로 생각됩니다.
따라서 저희가 해야할 일은 Delay 모델링 하는 부분만 분석해서 그 부분에서 나만의 지연시간을 만들어내는 코드를 보세요.
https://github.com/snu-csl/nvmevirt/blob/main/kv_ftl.c#L60 => 지연시간이 실제 발생하는 부분
https://github.com/snu-csl/nvmevirt/blob/main/kv_ftl.c#L966 => I/O cmd를 받는 부분
kv_proc_nvme_io_cmd에서 커맨드가 처리되는 순서를 내 마음대로 변경을 해봅시다.
전역 큐를 만들고 전역큐에서 순서를 뒤죽박죽으로 만들어서 처리가 되도록 한다.
그 상태에서 kvbench를 돌려서 성능이 바뀌는지를 확인해본다.
nsecs_target 값을 설정하는 과정이라고 보면 됩니다.
Metadata
Metadata
Assignees
Labels
No labels
