如何實現單機版DataBase:概覽
從分而治之的角度,我們首先對“DataBase”分而治之拆分為以下幾個模組:
CLI:客戶端呼叫介面。接收Client的請求和輸入,響應請求由後端處理後返回結果或資料。實現上面,可以選用開源的使用廣泛的介面,如RDBMS可選擇PostgreSQL、MySQL的介面,NoSQL可選擇Redis,可以很好的適配現有的程式或者降低開發門檻,減少使用者的學習成本。
Data Manager:資料管理器。CLI接收請求,交由Data Manager進行處理,諸如解析命令生成執行計劃、實際執行命令以及序列化資料、反序列化資料、記錄日誌等操作都在此處完成。可以做得非常簡單,比如使用單執行緒類似Redis的處理方式;也可以做的很複雜,如Oracle,使用不同的程式和不同記憶體結構進行處理。
Data Storage:資料儲存。這是資料實際儲存的地方,職責是儲存資料,輸入是Binary的資料,輸出也是Binary的資料,如何組裝和解析由高層負責。這部分可以自己實現,也可以用現成的儲存引擎,比如RocksDB、LevelDB等等。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/6906/viewspace-2374925/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Database Connection Pool 資料庫連線池-01-概覽及簡單手寫實現Database資料庫
- Oracle Database 11G 效能優化工具概覽OracleDatabase優化
- Express 實戰(一):概覽Express
- 概覽,如何管控資料
- 概覽
- Flink原理與實現:架構和拓撲概覽架構
- 機器學習概覽機器學習
- React事件機制 – 原始碼概覽(下)React事件原始碼
- React事件機制 - 原始碼概覽(上)React事件原始碼
- React事件機制 - 原始碼概覽(下)React事件原始碼
- python版:單機redis實現秒殺,防止超限PythonRedis
- h5+js實現單機版貪吃蛇H5JS
- 簡單版Promise實現Promise
- MMN實用架構過程概覽架構
- Babel 社群概覽Babel
- Hooks概覽(譯)Hook
- 推理框架概覽框架
- Flutter框架概覽Flutter框架
- Java NIO 概覽Java
- 學習概覽
- IT專案概覽
- 實踐005-elasticsearch的Search API概覽ElasticsearchAPI
- PyQt5 概覽QT
- Dart語言概覽Dart
- React Hooks-概覽ReactHook
- Flutter技術概覽Flutter
- HTTP報文 概覽HTTP
- Redis分散式概覽Redis分散式
- BIO,NIO,AIO概覽AI
- Vuex - 原始碼概覽Vue原始碼
- 概覽【JavaScript那些事】JavaScript
- 編譯原理概覽編譯原理
- Goolge AppEngine概覽GoAPP
- SOE開發概覽
- redis基本操作概覽Redis
- REST SOE模板概覽REST
- 設計模式概覽設計模式
- 感知機簡單實現