paust-team / paust-db

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

Problem about query plan using fst algorithm #148

Closed kwjooo closed 5 years ago

kwjooo commented 5 years ago

Reference

124

Tendermint를 이용해 p2p환경을 구성한 paust-db는 data가 put될 때, tendermint block의 생성 주기에 따라 batch processing을 통해 rocksdb에 저장한다.

tendermint block의 생성 주기는 validator간의 consensus가 완료되는 시점에 따라 달라지므로 일정한 주기를 가지고 생성하지 못하고 있다. 블록 생성 주기가 2/3 이상의 표(지분)을 얻기에 걸리는 시간에 따라 달라 질 수 있기 때문이다. 또한 2/3이상의 표(지분)을 얻지 못할 경우 다음 라운드로 넘어가게 되므로 블록 생성 주기가 일정하지 않는 상황도 존재한다.

그러므로 #124 Query Plan의 fst를 생성할 때 tendermint의 block 생성에 맞추어 생성할 경우 일정한 주기를 생성하는 것이 어렵다.

그렇다면 fst의 일정한 주기를 유지하기 위해 tendermint block이 아닌 다른 trigger를 통해 해결할 수 있을 지, fst를 구성하는 데 있어 일정한 시간 단위를 통해 구성하는 것이 필수 사항인 지(어느 정도 오차가 존재해도 되는 지), 필수 사항이라면 block이 일정하게 생성되는 consensus는 존재하는 지에 대한 조사가 필요하다.

elon0823 commented 5 years ago

fst 를 paust-db 에 올려보고 실제 어떻게 사용하게될지 직접 코드로 짜면서 시작해보시는게 좋을것같습니다.

kwjooo commented 5 years ago

fst state 생성 주기가 일정하지 않아도 approximately search를 통해 data를 조회할 수 있습니다.