一切源於一次失眠git
2019年10月份,當時一直在考慮公司的軟件產品中的實時庫部分目前存在的問題。目前公司的產品可以達到10萬點秒級記錄的水品,瓶頸在歷史記錄的存儲使用的是第三方關係型數據庫,在大量歷史數據須要存儲時,記錄存儲跟不上;即便後來優化也就能達到20萬的水平,離主流單機100萬的水平差距較大,距離業界翹楚PI聽說達到了千萬級別更是一個天上,一個地下。可否設計一種合理的文件存儲結構,能達到快速存儲以及快速檢索就成了要考慮的內容。快速存儲的問題不大,目前固態硬盤寫入速度那是剛剛的,即便機械硬盤寫入速度也可以勝任百萬點歷史記錄存儲。在長時間大量數據寫入後,快速檢索是問題的關鍵。檢索的時間不會隨着數據量的增大有明顯的衰減,是文件結構設計是否合理的關鍵。 一次失眠,在展轉反側之際,考慮下快速檢索的問題。忽然想到,若是咱們想要在全中國14億怎麼找到一我的和在北京2000人口中找到一我的所需的步驟幾乎差很少,這裏的關鍵是,每一個人都一個按照行政進行編碼的地址。若是對一個點數據的全部歷史數據進行編碼,檢索時按照這個編碼進行檢索,能夠很是快的檢索到數據。在自動化系統中,大部分數據都是時序型數據(即數據隨着時間變化着),結合操做系統存儲數據是以文件爲單位的,同時在文件中不一樣的位置使用指針來表示;因此時間,文件,指針就是咱們的編碼參考依據。數據庫
一切源於執着優化
把總體構想和公司反饋後,沒有被採用,緣由是和目前的方案相比,變更較大。可是心裏裏不想放棄,這偶爾的靈感,怕時間長了,一切都忘了。因此下定決心,把想法變成現實,也就是如今的Mars 實時物聯數據庫 。 從構想到發佈第一個版本,我打算用時1年的時間,同時將其總體開源。編碼