原创 dynamo和cassandra區別

1 如何處理副本的一致性。cassandra:採用最後寫入獲勝。當有多個版本的數據存在時,以時間戳大的值爲準。Dynamo:使用向量時鐘(vector lock)。爲數據保持一個時鐘列表,其中的每個元素是(更新值的節點,序列號),見下圖。

原创 如何將進程/線程綁定到固定的CPU核

1 概念什麼是CPU Affinity?Affinity是進程的一個屬性,這個屬性指明瞭進程調度器能夠把這個進程調度到哪些CPU上。在Linux中,我們可以利用CPU affinity 把一個或多個進程綁定到一個或多個CPU上。CPU A

原创 optics算法

1 簡介        隨着數據爆發式增長,分析數據從而提取隱藏在數據中的信息變的越來越重要。聚類分析是數據分析的一個主要方法,聚類(clustering)是將數據對象進行分類的過程,使同一類中的對象之間具有很高的相似度,而不同類中的對象

原创 bit-wise索引原理(2012/7/3)

1 IQ 簡介SybaseIQ是一款數據倉儲產品。個人認爲其核心技術包括:列存儲和bit-wise索引。首先了解行存儲,把屬於一行的所有列的數據存儲在連續的空間即爲行存儲。行存儲有兩個缺點:由於DBMS中磁盤IO的單位是block (or

原创 數字證書基礎-X.509協議

數字證書的兩個基本概念:1. 公鑰加密,私鑰解密;私鑰簽名,公鑰驗籤。2. 根證書應該被無條件信任,根證書通過可靠途徑獲得。1. 證書狀態查詢提供證書回收狀態查詢的兩種機制:1.OCSP --online certficate statu

原创 Oracle ORA-1628錯誤的定位分析(2012/1/8)

在Oracle 10.2.0.1.0中,只要設置了undo表空間自動管理,不管有沒開啓自動擴展,不管undo_retention設置爲多少,都會啓用 Automatic Tuning of undoretention的新特性。這個新特性中

原创 BPMN2.0協議解析

1      BPMN的歷史背景BPMN(Business Process Model and Notation),業務流程建模和標註。 Notation是BPMN的核心,即使用圖形來表達業務流程。另外,BPMN是由OMG組織維護的一個公

原创 網卡性能測試報告(2015/3/31)

測試結論 (1)網卡處理大包的實際能力約爲網卡宣稱的80%-90%,比如10G網卡支持的最大流量約爲8Gb/s-9Gb/s,注意單位是bit。 (2) 1G網卡處理小包的能力約爲560K包/秒。  (3) 網卡的帶寬參數指的是單向帶寬。

原创 jBPM如何自定義task

jBPM如何自定義task1      背景jBPM中,task表示一段業務邏輯,比如發送郵件、查詢數據庫等。jBPM支持的task的總類如下圖所示。除此之外,jBPM支持用戶自定義task,官方的叫法有domain-specific t

原创 snprintf返回值的誤解

1 問題的提出 int iOffset = 0; //發現iOffset值爲7,以前一直認爲應該是3 iOffset += snprintf(buff,3,”%s”,”123456”); 2 分析 通過分析snprintf幫助手冊,發

原创 深入解析printf/spintf/snprintf中的類型轉換

本文通過兩個問題出發,跟蹤彙編代碼,闡明瞭函數 printf/spintf/snprintf中的類型轉換的規律。 1 問題的提出 源碼1:#include <stdio.h> f1() { double x = -5.56

原创 如何計算時間間隔(2014/2/20)

在進行重要的時間運算的時候,比如自己實現定時器,不能夠使用time/gettimeofday,建議使用TSC或jiffies。1 問題1.1現象1應用(ePDG)中有許多的定時器,這些定時器通過一個隊列和一個線程進行管理。定時器加入到隊列

原创 如何高效的使用switch(2015/1/30)

在TWAG性能測試中,使用perf命令發現ui_generic_encapsulate  函數佔用的CPU高達8.3%。這個函數實現非常簡單,只是包含了一個比較大的switch語句。本文從研究switch的彙編代碼出發,提出了兩個降低ui

原创 DNS實現HA和負載均衡

NAPTR和SRV均可以實現後臺服務器的master/slave和load balancing。但是兩者實現的粒度不一樣,所以兩者通常結合起來使用。通過NAPTR可以查找服務(service),通過SRV可以查找某個service的細節比

原创 如何編寫高效的代碼(2014/6/1)

編寫高效的代碼有兩個條件:選擇好的算法和數據結構,編寫編譯器能夠優化以轉換成高效可執行的代碼。前者是基礎和前提,即使後者做的足夠好,但是選用了錯誤的算法和數據結構,優化也不起作用,這個一點要搞清楚。本文的內容的側重於後者。1 計算機系統架