原创 從AggregateFunction.merge()到Flink會話窗口實現原理

前言 在我們使用Flink DataStream API編寫業務代碼時,aggregate()算子和AggregateFunction無疑是非常常用的。編寫一個AggregateFunction需要實現4個方法: public interf

原创 Flink CEP的基石:NFA-b自動機原理簡介

前言 Flink的複雜事件處理(complex event processing, CEP)庫能夠在無界數據流中通過匹配定義好的事件模式來發現一系列事件之間的關聯規律,從而有效支持趨勢分析、風險監控、欺詐檢測等業務場景。它提供了一套簡單易用

原创 「V.I.P」

好久不聽這首歌了,今天下班的時候隨機到它,忽然回想起大學時代和朋友們一起玩樂隊、去livehouse演出的日子(已經過去八年了hhh 那麼今天就稍微放鬆一下吧。 2012年10月動畫《魔笛 MAGI》第一季 片頭曲 https://y.qq

原创 Kafka Partition的消費分配策略

前言 在之前的一篇文章中,筆者介紹了Kafka Consumer Group(消費者組)以及Rebalance(重平衡)的概念: 爲了使得Consumer易於組織、可擴展以及更好地容錯,Kafka將一個或多個Consumer組織爲Cons

原创 通用對象池化框架Apache Commons Pool 2簡析

前言 我們知道,創建Java對象會涉及到對象初始化、內存分配、類加載等多個步驟。當對象比較重量級時,頻繁創建對象會帶來可觀的性能開銷,所以在上古時代(大霧)就產生了對象池化(object pooling)的技術。顧名思義,對象池中維護了一批

原创 Actor模型與Akka Actor體系基礎總結

前言 最近用業餘時間把Flink的RPC基礎設施翻了個底朝天,又與之前分析過的Spark RPC機制做了一些對比,越發覺得Actor模型甚爲精妙,值得簡單記錄一下,順便也可作爲日後解析Flink RPC機制的基礎入門。 Actor模型 Ac

原创 「X次元へようこそ」(歡迎來到X次元)

2014年1月動畫《太空丹迪》(Space☆Dandy)片尾曲 https://music.163.com/#/song?id=28240388 ① https://en.wikipedia.org/wiki/Hugh_Everett_I

原创 Flink SQL w/ Blink Planner執行流程解析(上篇)

Foreword 大數據領域SQL化的風潮方興未艾(所謂"Everybody knows SQL"),Flink自然也不能“免俗”。Flink SQL是Flink系統內部最高級別的API,也是流批一體思想的集大成者。用戶可以通過簡單明瞭的S

原创 Flink RocksDB狀態後端參數調優

Foreword 截至當前,Flink作業的狀態後端仍然只有Memory、FileSystem和RocksDB三種可選,且RocksDB是狀態數據量較大(GB到TB級別)時的唯一選擇。RocksDB的性能發揮非常仰賴調優,如果全部採用默認配

原创 淺談Kafka Controller(控制器)的相關知識

前言 七夕快樂呀~ (看官如果想聽一首應景的歌的話,可以移步上一篇hhhhhh Kafka作爲一個高效的分佈式消息系統,在多處關鍵點都採用了主從(或者說Leader-Follower)的設計思路,例如: Broker主從設計,主節點稱爲C

原创 「WONDERFUL WONDER」

2019年4月動畫《滿腦都是○○的我沒辦法談戀愛》片頭曲 https://y.qq.com/n/yqq/song/0018R8zi1LFKGF.html?ADTAG=h5_playsong&no_redirect=1 「WONDERFUL

原创 ClickHouse遇見RoaringBitmap

Q&A Q:如圖。 A:當然是自帶的。其實RoaringBitmap正是ClickHouse位圖的底層實現(笑 RoaringBitmap的預備知識請見這裏。 在CH中產生位圖 使用普通函數bitmapBuild可以由無符號整形數的數組直

原创 聊聊Java WeakHashMap背後的事情

前言 本月還沒有寫過Java相關的東西,今天終於擠出點時間來了,弄一篇基礎知識吧。 WeakHashMap是平時常見的HashMap的變種,它是基於弱引用(WeakReference)的。我們已經知道,不管內存是否足夠,弱引用對象都會隨着

原创 漫談初等數論、素數及其它(上篇)

目錄 前言 素數與其無限性:歐幾里得定理 素數分解的存在性與唯一性:算術基本定理、歐幾里得引理 算術基本定理的部分應用 素數出現規律的估計:素數定理 素數的一些有意思的特徵 未完待續 各種素性檢驗算法 素數的用武之地:公鑰密碼學 尚未被

原创 漫談SIMD、SSE指令集與ClickHouse向量化執行

前言 ClickHouse之所以會像閃電一樣快("blazing fast"),是多方面優化的結果,包括且不限於:高效且磁盤友好的列式存儲,高效的數據壓縮,精心設計的各類索引,並行分佈式查詢,運行時代碼生成等。 另外,ClickHouse爲