分類目錄歸檔:葉翔的博客

MongoDB權限驗證流程–基本請求

上篇文章說到,MongoDB的網絡通訊協議流程。拿到請求對象后,會調用assemblyResonse函數處理。這部分的代碼實在沒什么章法可言,if-else遍地,實在不怎么優雅。可以感受到隨著需求的增長,很多代碼都是硬套上去的。本篇介紹的是基本的處理請求,基本請求所指的是command命令以外的處理[......]

閱讀全文

MongoDB的網絡協議

這篇文章主要來說明MongoDB的網絡協議,總結性的說MongoDB通訊基于TCP之上,數據采用BSON封裝。

關于TCP

TCP具有良好的擁塞控制,可靠傳輸等特性,比較適合數據庫產品的通訊協議。一些對數據一致性,可靠性要求不高的產品也有采用UDP協議實現。如Redis,Memcached都支持[......]

閱讀全文

MongoDB的索引代碼實現–BtreeBasedAccessMethod

前言

學習開源軟件的最好的辦法就是閱讀代碼,MongoDB整個代碼庫有接近90萬行代碼,DB核心層大概50萬行,代碼量確實非常多。本文作為MongoDB代碼導讀的第一篇,從Index部分上入手分析代碼實現。
為何從索引部分開始介紹,首先代碼量較少,總共5000多行,且相對其他模塊來說比較獨立;其次[......]

閱讀全文

基于MongoDB的全國電影票預定系統

前言

受到中文社區《電商參考架構第二部分:庫存優化方法》啟發,想到了去年做過類似的電影票預定系統,如果用MongoDB去做存儲支撐,那應該是怎樣架構的呢?本文的目的是為了更好的學習掌握MongoDB,所以某些設計上更偏向于功能的展示,在實際使用上要因地制宜的改變,合適才是最好的。

需求

電影票[......]

閱讀全文