aicers / giganto

Raw-Event Storage System for AICE
Apache License 2.0
5 stars 2 forks source link

Modify rocks opt to improve compaction performance #731

Closed kimhanbeom closed 4 months ago

kimhanbeom commented 4 months ago

PR 설명

Close: #732

sophie-cluml commented 4 months ago

좋은 것 같은데요, 혹시 "tokio async runtime이 사용하는 multithread 갯수" < "config에서 설정한 db thread 갯수" 인 경우에는 문제 없을까요?

그리고 issue가 있다면 링크 / 없다면 생성 부탁드립니다.

kimhanbeom commented 4 months ago

@sophie-cluml
compaction의 경우 자주 발생하는 이벤트가 아니기 때문에 thread가 항상 활성화 되지 않을 것입니다. 또한 발생한 경우에도 config에서 설정한 갯수의 병렬thread 내에서 subcompaction의 thread들이 concurrently 하게 동작할 것이므로 기존 giganto에서 동작되는 tokio async runtime multithread에 큰 영향은 없을 것입니다.

현재 전체 동작에 영향을 최소화 하기 위해서 increase_parallelism와 set_max_subcompactions의 default 설정을 각각 서버 cpu의 core 갯수의 1/3 값과 2를 기본값으로 생각 중이고, 각 프로젝트별 환경(traffic/hw spec)에 따라서 해당 값들을 추가 조절 할 예정입니다.

sehkone commented 4 months ago

@kimhanbeom 이 PR은 관련 이슈가 없나요?

kimhanbeom commented 4 months ago

@sehkone rocksdb 설정에 대한 기존 이슈 #280 가 존재하나 해당 이슈의 목표(write시의 sst파일 생성 및 관련 튜닝)와 현재 튜닝의 목표(compaction 성능 개선)가 달라서 참조로 두지 않았습니다.

sehkone commented 4 months ago

@kimhanbeom 소통 규칙을 꼭 지켜 주세요. 이슈 없는 PR은 이제 없는 겁니다. 참조할 이슈가 없다면 새로 이슈를 만들고 그걸 프로젝트에도 등록해야죠. 규칙 2번, 7번, 9번, 10번을 위반했습니다.

sehkone commented 4 months ago

@syncpark 리뷰할 때에는 코드 자체도 리뷰하는 것이지만 우리 규칙을 잘 지키고 있는지도 함께 봐 주세요.

sehkone commented 4 months ago

@kimhanbeom 규칙에 맞도록 이슈 새로 만들어 주세요.

syncpark commented 4 months ago

@kimhanbeom 규칙에 맞도록 이슈 새로 만들어 주세요.

@kimhanbeom 이 옵션을 찾게된 계기가 Giganto가 Compaction하는 도중에 DB가 깨지는 현상이 발견되었던 문제때문이니 그 내용으로 이슈를 정리해주세요. 그래서 Compaction 시간을 단축하기 위한 방법으로 parallelism을 검토하게되었으니까요.