原创 Android UI結構源碼研究

android經驗相關(android4.3)         由於之前工作需要,對Android的UI framework做了些許研究,主要針對Android4.3的源碼參考晚上別人的一些流程分析,加上自己打log得出的一些理解和

原创 Androids中的System.loadLibrary對於依賴so的加載分析

        Android雖然基於Linux系統,但Android本身做了大量的修改。其中對於系統C庫更是自己重新實現——Bionic庫。在源碼目錄結構中bionic可以找到相關內容。話題好像偏離有點遠,但System.loadLib

原创 Hadoop的mapreduce.framework.name屬性原理

    配置Tez引擎時,只要我們把Tez的jars和配置文件路徑添加進HADOOP_CLASSPATH裏,然後通過設置mapred-site.xml文件的mapreduce.framework.name屬性爲yarn-tez,就可以替換

原创 Hadoop的一個變長long編碼剖析

    Hadoop對於long、int (化成long進行編碼)的編碼設計了自己的一套編碼方式,這是一個zero-compressed encoded的變長編碼方式,有利於大大壓縮冗餘數據。具體算法其實很簡單,具體來說有如下幾點: 1、

原创 關於boost的shared_ptr以及weak_ptr的研究

boost的智能引用計數指針shared_ptr,其當引用計數爲0,就會執行delete p;刪除堆中分配的對象。 另外由於衆所周知的引用計數循環導致內存泄漏的問題,可以考慮採用weak_ptr。 weak_ptr可以防止循環引用導致內存

原创 HBase的split分析

    HBase在新建一個表的時候,默認會把所有數據都會放在一個HRegion上,主節點HMaster根據一定的策略把HRegion分配到不同的HRegionServer從節點上,客戶端在進行讀寫操作的時候,就會訪問對應HRegion

原创 Java調用重載方法(invokevirtual)和接口方法(invokeinterface)的解析

    多態,作爲面向對象的重要概念之一,是多數的高級語言都有的特性。C++利用編譯期間確定的虛表的offset來進行虛函數的調用,從而實現多態。雖然性能高效,但在升級時很容易造成二進制兼容性的問題。Java則在編譯期確定的函數簽名,通過

原创 LRU-K,2Q,LIRS算法介紹與比較

    研究H2的過程中發現新的存儲引擎MVStore使用了新的cache替換算法——LIRS,經過一系列相關的論文研讀,發現比舊存儲引擎PageStore的LRU算法改良不少。爲了更好地瞭解LIRS的優異性,把同樣屬於LRU變種的基於倒

原创 HBase寫請求分析

    HBase作爲分佈式NoSQL數據庫系統,不單支持寬列表,並且對於隨機讀寫來說也具有較高的性能。在高性能的隨機讀寫事務的同時,HBase也能保持事務的一致性。目前HBase只支持行級別的事務一致性。本文主要探討一下HBase的寫

原创 HBase讀請求分析

    HBase爲了提供實時查詢,以及較高性能的寫請求事務吞吐量,對讀/寫請求都做了大量的優化。經過閱讀源碼和遠程調試,大致瞭解了讀請求的流程。本文主要是基於HBase的0.98.8版本的實現。 客戶端讀請求     HBase爲

原创 Java進程與父子進程的標準輸出流關聯導致線程卡死的故障

故障現象     Java調度系統創建PHP數據腳本後,並且獲取其標準輸出流,然後循環讀取其標準輸出流內容。此時PHP數據腳本執行時間過長,Java調度系統Process.destory()殺掉進程後,ps也無法找到對應PHP數據腳本,但

原创 log4j之個人淺析

    最近稍微大致地閱讀了log4j的源碼,畢竟這是Java開源日誌框架裏幾乎最常用的一個實現。在大多數實際應用中,還需要諸如common-logging、slf4j等Facade模式日誌框架對log4j進行封裝,實際日誌記錄、輸出等級

原创 HDFS新特性Centralized Cache Management介紹

概述     HDFS作爲Hadoop底層存儲架構實現,提供了高可容錯性,以及較高的吞吐量等特性。在Hadoop 2.3版本里,HDFS提供了一個新特性——Centralized Cache Management。該特性能夠讓用戶顯

原创 Hadoop 1.2.1升級2.6.0的一次崎嶇之旅(包括Hive、HBase對應的升級)

 爲了更好地緊跟大數據發展先進性的技術趨勢,追趕業界最頂尖的發展技術,我們把線上環境的Hadoop 1.2.1升級到2.6.0版本。這次的升級其實早有預謀,但鑑於升級過程較爲繁瑣,並且不但涉及HDFS的底層存儲的升級,還涉及Hive、H

原创 Hadoop高可用特性解析

HDFS HA HDFS採用的是fsimage + edits的存儲方式,fsimage是某個時間的內存文件系統鏡像,edits是修改操作,每個修改操作稱爲一個事務,有一個整形的事務id指定。checkpoint的時候就存儲一次fsima