原创 大型電商網站兩年之技術總結

        轉眼已經是在互聯網第三個年頭了。跟公司一起成長,從經歷過2次雙十一大促,還有數不清楚的小促銷。跟公司一起遇到了不少坑,這裏站在宏觀的角度爲公司總結下經驗和教訓。 web架構,幾個問題比較突出, 一個是經常出問題的就是數據

原创 Data Structure and Algorithm

Index數據結構 red-black treeB-TreeDancing-TreeR-Tree LSM-tree log structure merge treecola-b-tree COLA(cache oblivous al

原创 openstack vs docker

openstack在硬件資源的管理方面已經比較成熟了: 單機的虛擬化技術優化 計算:kvm用的最多,已經非常成熟了;目前的一些重點在虛機熱遷移的優化上。存儲/網絡:SR-IOV或者vhost-net/vhost-block已經可以把

原创 系統設計的角度看GlusterFS&&ceph

GlusterFS和ceph是開源領域很火的兩個分佈式文件系統。技術文章也有不少。這裏只談下個人的一些看法,大家討論比較多就不提了。 GlusterFS的幾大特點: 1.所見即所得,一個文件究竟長什麼樣,完全取決於client對於posi

原创 關係數據庫實現的一些基本技術

併發控制和事務引擎 redo log undo logMVCC基於樂觀鎖的併發控制 對於undo和MVCC大致有兩種實現,oracle、mysql等在表空間文件只保留一個版本,舊版本放到undolog中。pg的做法比較特殊,會在表空間文件

原创 web項目上雲的思考

      對於傳統的web項目來說,上雲(公有云)部署,在技術成熟度是比較高的;目前公有云IaaS類業務可以支持數據庫、分佈式緩存、負載均衡等web相關的掛件組件。這裏主要討論下,應用上雲之後,技術上的優劣勢和管理上的問題。本文主要分析

原创 skip-list vs red-black tree

紅黑樹是常見的數據結構,主要用來建內存索引,內核較爲常見。 skip-list的數據結構,大學裏面接觸的少,近些年比較流行; skip-list優點: skiplist併發效果好,插入刪除時具有很好的局部性,只涉及前後左右節點的指針調整

原创 容器網絡之方法論和技術選型

容器技術發展很快,網絡逐漸成爲瓶頸,遇到的需求和問題: 跨主機的容器互聯:很多中間件(jboss/redis/kafka)部署,要求跨主機實現分佈式和高可用容器與外部互聯:容器內訪問外部的物理數據庫;外部服務調用容器中的服務,需要非NAT

原创 關於redis的一些總結

redis是一個全內存的數據結構服務器: 支持多種常用數據結構,例如list set hash map 多種內存索引(hash索引,skip list,rtree索引、組合索引、二級索引等)可以靈活的配置數據的存儲格式(是否進行壓縮)支持

原创 raft算法的核心思想

raft算法跟paxos,zab(zookeeper atomic broadcast)算法類似,設計一個一致性算法,在一個分佈式系統中實現一個分佈式的、高可用的、一致性的存儲系統。 raft的特點是設計簡單,易於程序員的理解和實現,並不

原创 Web架構/技術的一些演進

最近跟一個前同事聊了下前東家的web技術的發展和最新的一些web開發技術。 前東家的一些發展 前臺已經在瘦身了,目前傾向於採用nginx+lua+redis的方式,不再使用apache+jbosscassandra之類還沒都用起來,

原创 近期分佈式存儲技術實踐的總結和思考

1.從硬件發展趨勢看,server san概念的提出,pcie ssd加速將深刻的改變傳統的OLTP和近期流行的nosql kv store技術架構

原创 redis集羣實現分佈式鎖

      好久沒寫博客了,突然想起來以前看老外博客上redis做分佈式鎖的想法。       實現一個DLM(distributed lock manager)主要需要考慮一下幾個問題:  lock server本身需要是高可用的,如

原创 impala

Impala是什麼        Impala是cloudera發佈的基於hadoop平臺的sql查詢引擎,本質上一個MPP(massive parallel process)查詢引擎。 目的 提供類似傳統商用數據庫的交互式查詢功能 解決

原创 容器技術當前的不足和發展方向

內核在有些關鍵的資源隔離還不支持,或者需要比較高的版本,例如slab 內存,文件描述符,inode等等,容器環境獨立的root,有待於內核功能的進一步完善;當然有些問題在容器這種輕量級虛擬化方案中很難解決。例如當內核發現物理頁不足時,需要