paust-team / paust-db

GNU General Public License v3.0
6 stars 5 forks source link

Design rowkey/metadata structure of rocksdb for query optimization #159

Closed dragon0170 closed 5 years ago

dragon0170 commented 5 years ago

원인, 문제점

목적, 목표

query optimization 즉, query 성능 향상을 위해 rocksdb에서 사용하는 rowkey, metadata 구조를 설계 및 성능비교 실험하는 것이 큰 목표. 또한, 새롭게 추가할 fst와 변경되는 query interface에 최적화하여 설계할 필요가 있음. 물론 블록 구조가 바뀌면서 저장 방식이 바뀌면 rowkey, metadata 설계가 달라질 수 있지만 기본적인 큰 특성은 유지될 것 같음.

Main Experiment

진행 과정 계획

우선 현재 master에 있는 tendermint, abci, rocksdb 활용 구조에서 rowkey, metadata 설계 및 실험을 진행할 생각입니다. 추후 새로운 블록 구조나 consensus가 도입된다면 거기에 맞추어서 디테일한 구현 부분이 수정될 거 같네요.

Sub Task

하나씩 완료되는대로 paust-db에 적용하면서 성능 테스트 필요

  1. query interface 설계 및 interactive shell로 구현
    • NoSQL인 TinkerPop, Hbase 인터페이스 참고(#153)
  2. 통신 데이터 serialization 방식 json에서 protobuf로 변경
  3. fst query optimization 적용
    • dennis가 만든 fst 모듈을 연결
dragon0170 commented 5 years ago

너무 많은 problem을 담고 있어서 앞으로 해야할 issue의 참고용으로만 두고 close 하겠습니다.