原创 What's the difference between 'git merge' and 'git rebase'?

Suppose originally there were 3 commits, A,B,C: Then developer Dan created commit D, and developer Ed created commit E:

原创 IDE,SATA,SCSI,SAS,FC,SSD說明與區別

DE是俗稱的並口,SATA是俗稱的串口,這兩種硬盤是個人電腦和低端服務器常見的硬盤。SCSI是”小型計算機系統專用接口”的簡稱,SCSI硬盤就是採用這種接口的硬盤。SAS就是串口的SCSI接口。一般服務器硬盤採用這兩類接口,其性能比上述兩種

原创 epoll比select和poll高效的原因

我們通過比較select、poll和epoll處理I/O的過程來剖析其中的原因: 1. 用戶態將文件描述符傳入內核的方式: select:創建3個文件描述符集並拷貝到內核中,分別監聽讀、寫、異常動作。這裏受到單個進程可以打開的fd數量限制,

原创 讓 CPU 告訴你硬盤和網絡到底有多慢

簡介 經常聽到有人說磁盤很慢、網絡很卡,這都是站在人類的感知維度去表述的,比如拷貝一個文件到硬盤需要幾分鐘到幾十分鐘,夠我去吃個飯啦;而從網絡下載一部電影,有時候需要幾個小時,我都可以睡一覺了。 最爲我們熟知的關於計算機不同組件速度差異的

原创 多版本併發控制(MVCC)在分佈式系統中的應用

問題 最近項目中遇到了一個分佈式系統的併發控制問題。該問題可以抽象爲:某分佈式系統由一個數據中心D和若干業務處理中心L1,L2 … Ln組成;D本質上是一個key-value存儲,它對外提供基於HTTP協議的CRUD操作接口。L的業務邏輯

原创 [轉]Berkeley DB設計經驗

作者:Margo Seltzer 和 Keith Bostic 康威法則(Conway’s law)說明了設計反映了產生它的組織的結構。展開來說,我們也許會預見一款由兩個人設計和完成最初製作的軟件不僅會在一定程度上反映組織的結構,還會反映每

原创 Linux多進程和多線程的一次gdb調試實例

Linux C/C++開發中gdb進行多進程和多線程的調試一直比較麻煩,在CSDN上看到高科的一篇文章《gdb調試多進程和多線程命令》比較有啓發,這裏就自己重新整理並做了一個GDB多進程/線程的調試實踐。 1 原文整理 默認設置下,在調試

原创 安裝jdk

Java和Java虛擬機或JVM的編程語言被廣泛使用並被許多種類的軟件所需。 本教程提供了在Debian 8上安裝Java的不同方法:您可以下載默認JRE或JDK或Oracle JDK。如果您決定安裝多個版本的Oracle Java,則可以

原创 如何在Debian 8/7上安裝PostgreSQL 9.6

PostgreSQL是一個開源的對象 - 關係數據庫系統。 它是用於生產服務器的領先的數據庫服務器之一。 本教程將幫助您在Debian 8和Debian 7系統上安裝PostgreSQL數據庫服務器。 步驟1.配置Apt存儲庫 首先,您需

原创 LGPL與閉源程序

最近一直在學習 Qt。Qt 有兩個許可證:LGPL 和商業協議。這兩個協議在現在的 Qt 版本中的代碼是完全一致的(潛在含義是,Qt 的早期版本,商業版的 Qt 通常包含有一些開源版本所沒有的庫,比如 QtSingleApplication

原创 Linux 技巧:讓進程在後臺可靠運行的幾種方法

我們經常會碰到這樣的問題,用 telnet/ssh 登錄了遠程的 Linux 服務器,運行了一些耗時較長的任務, 結果卻由於網絡的不穩定導致任務中途失敗。如何讓命令提交後不受本地關閉終端窗口/網絡斷開連接的干擾呢?下面舉了一些例子, 您可以

原创 Kafka設計解析(一)- Kafka背景及架構介紹

原創文章,轉載請務必將下面這段話置於文章開頭處。(已授權InfoQ中文站發佈) 本文轉發自技術世界,原文鏈接 http://www.jasongj.com/2015/03/10/KafkaColumn1 摘要   Kafka是由Lin

原创 bash shell script 簡明教程

User <--> bash <--> kernel shell is not kernel or part of kernel various shells: tcsh, csh, bash, ksh find the using she