hbase 原始碼分析(20) 總結
相關推薦
hbase 原始碼分析(20) 總結
放在最後的話 第一次寫這麼長時間的部落格。有點辛苦,主要是白天上班還不能寫。晚上會寫到一兩點。還好沒有放棄,hbase的基本寫完了。之後會不斷補充,完善。 第一次寫,很多地方可能沒有考慮清楚。 第一次寫,帶著學習的目的。不好請大家多擔待。 第一次寫,學到
jdk 原始碼分析(20)java NIO包簡單分析
BIO 是一種阻塞的io,主要體現在: 1)accept 時候或者客戶端嘗試連線時是阻塞的, 2)資料讀寫是阻塞的,即使是沒有讀到資料,而且每次都是讀寫一個位元組。 對於服務端一般系統中常用的方式是沒接收一個請求new 一個thread,然後由這個handler去
hbase 原始碼分析(6)get 過程 詳解
上一個章節將getregionLocator的客戶端分析完了,服務端就是一個scan方法,這個等到分析SCAN的時候再做說明。 這一章節將分析GET過程。 **GET過程, 1)找到zk,拿到MATA裡的RegionService地址。 2)訪問第一
hbase 原始碼分析 (15)compact 過程
上一個章節分析了spit過程。當時遺留了compact問題沒有分析。這個章節將重點分析一下。 compact流程: 這個流程沒有寫完,涉及都行太多了,都沒有心情寫了。先留著吧, 入口:HStore.java 結束flush之後,會做這樣一個判斷。 p
(萊昂氏unix原始碼分析導讀-20)中斷、陷入的入口和出口
陷入處理程式的入口都為“trap”(這裡是指一個彙編程式,而非PDP11指令); 中斷則不同。他們有不同的入口,如: 525 .=60^. 當前地址設定為60 octal 526 klin; br4
Giraph 原始碼分析(五)—— 載入資料+同步總結
作者|白松 關於Giraph 共有九個章節,本文第五個章節。 環境:在單機上(機器名:giraphx)啟動了2個workers。
Android ADB 原始碼分析(三)
前言 之前分析的兩篇文章 Android Adb 原始碼分析(一) 嵌入式Linux:Android root破解原理(二) 寫完之後,都沒有寫到相關的實現程式碼,這篇文章寫下ADB的通訊流程的一些細節 看這篇文章之前,請先閱讀 Linux的SOCKET
Mybatis 原始碼分析(2)—— 引數處理
Mybatis對引數的處理是值得推敲的,不然在使用的過程中對發生的一系列錯誤直接懵逼了。 以前遇到引數繫結相關的錯誤我就是直接給加@param註解,也稀裡糊塗地解決了,但是後來遇到了一些問題推翻了我的假設:單個引數不需要使用 @param 。由此產生了一個疑問,Mybatis到底是怎
Mybatis 原始碼分析(9)—— 事物管理
Mybatis 提供了事物的頂層介面: public interface Transaction { /** * Retrieve inner database connection * @return DataBase connection * @throw
Mybatis 原始碼分析(8)—— 一二級快取
一級快取 其實關於 Mybatis 的一級快取是比較抽象的,並沒有什麼特別的配置,都是在程式碼中體現出來的。 當呼叫 Configuration 的 newExecutor 方法來建立 executor: public Executor newExecutor(Transac
Mybatis原始碼分析(7)—— 結果集處理
解析封裝 ResultMap 是和結果集相關的東西,最初在解析 XML 的時候,於 parseStatementNode 方法中,針對每一個 select 節點進行解析,轉換為 MappedStatement(類似 Spring 的 bean 配置和 BeanDefinition 的
Mybatis原始碼分析(6)—— 從JDBC看Mybatis的設計
Java資料庫連線,(Java Database Connectivity,簡稱JDBC)是Java語言中用來規範客戶端程式如何來訪問資料庫的應用程式介面,提供了諸如查詢和更新資料庫中資料的方法。 六步流程: 載入驅動(5.x驅動包不需要這步了) 建立
Mybatis原始碼分析(5)—— 外掛的原理
MyBatis 允許你在已對映語句執行過程中的某一點進行攔截呼叫。 預設情況下,可以使用外掛來攔截的方法呼叫包括: Executor (update, query, flushStatements, commit, rollback, getTransaction, cl
Mybatis原始碼分析(4)—— Mapper的建立和獲取
Mybatis我們一般都是和Spring一起使用的,它們是怎麼融合到一起的,又各自發揮了什麼作用? 就拿這個Mapper來說,我們定義了一個介面,聲明瞭一個方法,然後對應的xml寫了這個sql語句, 它怎麼就執行成功了?這傢伙是怎麼實現的,帶著這個好奇心,我一步步跟蹤,慢慢揭開了它的
Mybatis原始碼分析(3)—— 從Mybatis的視角去看Bean的初始化流程
不涉及Spring完整的啟動流程,僅僅從Mybatis的視角去分析幾個關鍵的方法,找到Mybatis是如何通過這幾個擴充套件點植入進去的,反過來看Spring是如何設計,埋下這些伏筆,實現其可擴充套件性。 springContext-mybatis.xml的配置: <!--
Mybatis原始碼分析(1)—— Mapper檔案解析
感覺CSDN對markdown的支援不夠友好,總是伴隨各種問題,很惱火! xxMapper.xml的解析主要由XMLMapperBuilder類完成,parse方法來完成解析: public void parse() { if (!configuration.isRes
Flume NG原始碼分析(七)ChannelSelector
前幾篇介紹了Flume NG Source元件的基本情況,接下來看看Channel相關的元件,Channel相關元件有: 1. Channel 2. ChannelSelector 3. Interceptor / InterceptorChain 4. ChannelProcess
Flume NG原始碼分析(六)應用程式使用的RpcClient設計
上一篇Flume NG原始碼分析(五)使用ThriftSource通過RPC方式收集日誌 介紹了ThriftSource利用Thrfit服務ThriftSourceProtocol來收集日誌。這篇說說flume-ng-sdk中提供給應用層序使用的RpcClient的設計和實現。繼續使用ThriftR
Flume NG原始碼分析(五)使用ThriftSource通過RPC方式收集日誌
上一篇說了利用ExecSource從本地日誌檔案非同步的收集日誌,這篇說說採用RPC方式同步收集日誌的方式。筆者對Thrift比較熟悉,所以用ThriftSource來介紹RPC的日誌收集方式。 整體的結構圖如下: 1. ThriftSource包含了一個Thrift Server,以及一個
Flume NG原始碼分析(四)使用ExecSource從本地日誌檔案中收集日誌
常見的日誌收集方式有兩種,一種是經由本地日誌檔案做媒介,非同步地傳送到遠端日誌倉庫,一種是基於RPC方式的同步日誌收集,直接傳送到遠端日誌倉庫。這篇講講Flume NG如何從本地日誌檔案中收集日誌。 ExecSource是用來執行本地shell命令,並把本地日誌檔案中的資料封裝成Event