[SQL Server]In-Memory table with columnstore Indexes

Columnstore indexes主要可以改善大量scan/aggregate操作(可達10倍),

因為採用xVelocity壓縮儲存方式(但無法對in-memory table壓縮),

可大大節省disk space(壓縮大約10倍以上,取決於資料表中所有資料型別),

所以和傳統row存放方式不同,通常會在fact table上建立來改善Data Mart/Data Warehouse彙熜效能。 

...繼續閱讀 »

[PredictionIO]install Jupyter

我想有在玩資料分析的朋友對於jupyter一定不陌生,它是一款open source的網頁版Machine Learning Analytics tools,

透過這套工具,你可以快速又方便進行資料分析、跑跑演算法,實作視覺化,而他也是iPython的前身,

至於切分出該專案,主要是因為iPython想更專注在shell的核心開發(shell真的很強大),

所以把其他元件都往Jupyter 專案集中,但我想我應該會喜歡web介面。

...繼續閱讀 »

[PredictionIO]how to build a Recommendation engine via predictionIO Machine Learning Server

Apach PredictionIO是一個用scala語言編寫的open source,

提供RESTFul API幫助我們方便使用recommendation engine,

也有提供client SDK如Java、Python,PHP,同時也是一個可擴展的Machine Learning應用(支援Spark MLib),

並提供各種Engine模板、演算法..等,也相當容易和Spark、MLlib、Hbase、MySQL、Hadoop、Elasticsearch搭配,

簡化並加速可擴展Machine Learning基礎建置管理,透過PredictionIO我們可以從零開始並快速建立一個推薦引擎。

...繼續閱讀 »

[SQL Server]Let's Clear Checkpoint process of In-Memory

Disk的checkpoint主要是將記憶體中的dirty pages和交易紀錄資訊寫入disk,

所以dirty pages的數量和checkpoint作業時間為線性關係,SQL Server會自動調整checkpoint作業頻率(預設60秒),

這樣做是要降低其他應用程式所受到的效能影響,如果減少頻率,則會拉長完成時間,

增加頻率,則會影響效能(資料庫一般I/O活動會大幅增加),

如果沒有特別理由,建議由SQL Server自行決定checkpoint頻率。

...繼續閱讀 »

[Kafka]performance tools

LinkedIn幫Kafka做了很多吞吐量效能測試,他們以RabbitMQ benchmark為範本來進行一連串的效能測試,

單一producer、100 bytes、3x async-replication每秒高達75MB(每秒可發送786432 的message),

sync-replication約40MB(每秒可發送419430的message)。單一Consumer則每秒有89.7MB(每秒可接收940573的message),

三個Consumer約為249.5MB(每秒可接收2616197.12的message),

而End to End的Producer’s latency平均2 ms,一整個讓我驚艷。

...繼續閱讀 »

[C#]Using RX

我之前在開發Consumer API時,對於Message的接收是使用callback function+event,code review時,

同事建議為什麼不用RX來簡化code,並更簡單處理非同步error handle和multiple threads的concurrency問題。

...繼續閱讀 »