原创 【ClickHouse系列】ClickHouse集羣自動化搭建

爲了測似方便,這裏提供一個搭建2shard,2replica的ClickHouse集羣的腳本 1.構建ClickHouse基於CentOS7的鏡像 官方已經有clickhouse-server的鏡像爲什麼還要自己打一個? 因爲官方

原创 Golang數據庫連接池運行原理(源碼解析)

1.MySQL驅動註冊即連接池啓動 github.com/go-sql-driver/mysql/driver.go中的init方法實現mysql驅動註冊 func init() { sql.Register("mysql",

原创 【ClickHouse源碼】ReplicatedMergeTree之數據同步流程

ReplicatedMergeTree之數據同步流程 在創建了ReplicatedMergeTree後,會有幾個taskHolder在後臺去監聽zk的log並向queue添加,監聽mutations的變化並觸發mutation相關

原创 【ClickHouse源碼】Distributed之表select流程

Distributed之表查詢流程 Distributed表引擎不會真實存儲數據,是ClickHouse提供的一個分佈式查詢引擎,其查詢原理大致概括起來就是將server端接收到的查詢請求進行重寫,併發送到指定的多個server端

原创 PostgreSQL目錄結構之global目錄

global目錄 目錄位置一般爲$PGDATA/global,是存放共享系統表的位置,文件種類也類似base目錄。大多數系統目錄都是在數據庫創建的過程中從模版數據庫中拷貝過來的, 因此都是數據庫相關的。少數目錄在物理上是在一個集簇

原创 【ClickHouse系列】使用clickhouse-operator搭建clickhouse集羣

clickhouse-operator特性 根據提供的自定義資源規範創建ClickHouse羣集 自定義存儲資源調配(VolumeClaim模板) 自定義pod模板 自定義service模板 ClickHouse配置和設置(包括

原创 【ClickHouse源碼】ReplicatedMergeTree之insert流程

ReplicatedMergeTree之insert流程 核心方法在:dbms/src/Storages/MergeTree/ReplicatedMergeTreeBlockOutputStream.cpp中的write方法 vo

原创 Collections.unmodifiableMap()用法

Collections.unmodifiableMap()用法 中間層有時會初始化一些final的靜態的Map供給一些字段做映射,一般如下: public final static Map<String, String> TYPE

原创 Kubernetes集羣部署heapster+influxdb+grafana

給鏡像打tag,或者修改下面yaml文件的鏡像名字 docker tag docker.io/ist0ne/heapster-influxdb-amd64 k8s.gcr.io/heapster-influxdb-amd64:v

原创 Netty的優雅退出

Daemon線程 // 若應用的所有非守護線程都結束則程序退出,守護線程會隨之自動退出 Thread t = new Thread(); t.setDaemon(false); // 設爲非守護線程,默認爲false t.setD

原创 【ClickHouse系列】MergeTree引擎介紹

MergeTree引擎介紹 Clickhouse 中最強大的表引擎當屬 MergeTree (合併樹)引擎及該系列(*MergeTree)中的其他引擎。 MergeTree 系列中的引擎目的在於將大量數據插入表中,數據迅速地一部分

原创 【ClickHouse系列】ClickHouse表引擎MergeTree實踐

MergeTree系列 Log、Special、Integration主要用於特殊用途,場景相對有限。MergeTree系列纔是官方主推的存儲引擎,支持幾乎所有ClickHouse核心功能。 以下重點介紹MergeTree、Rep

原创 CentOS7 Kubernetes 1.14.1安裝、啓動、驗證及踩坑

Kubernetes v1.14.1安裝、啓動、驗證 安裝、啓動流程 修改主機名(node同樣道理) vi /etc/hostname k8s-master reboot 配置主機和ip的對應關係(master和node都要配)

原创 Golang數據庫連接池幾個你很困惑的問題(未完待續)

1.連接池的失敗重試機制 go從連接池中獲取連接時有兩個策略: alwaysNewConn:請求新的連接 cachedOrNewConn:從連接池中獲取或請求新的連接 在獲取連接時go有個失敗重試機制,在以下方法中: func (

原创 【ClickHouse源碼】ReplicatedMergeTree之表創建流程

ReplicatedMergeTree之表創建流程 複製流是後臺進行的,是異步的,在ReplicatedMergeTree創建時會自動啓動很多個異步task,可以看下其構造函數 StorageReplicatedMergeTree