原创 【MySQL】性能優化之 index merge (1)

轉載自http://blog.itpub.net/22664653/viewspace-774687/ 一 序言介紹 MySQL 5.0 版本之前,每條個表在查詢時 只能使用一個索引,有些不知道此功能限制的開發總是在一個表上創建很多

原创 Tomcat源碼閱讀1

系統的啓動流程: tomcat通常從腳本啓動,查看腳本可知,startup.sh中調用了catalina.sh進行啓動,而在catalina.sh中,可以看到時啓動了Bootstrap類 org.apache.catalina

原创 MYSQL下read committed 和repeatable read級別下一致性非鎖定讀筆記+實測

MYSQL 的讀已提交和可重複讀兩種模式下,都支持一致性非鎖定讀,這時候的讀取操作不會加鎖(注:讀不加鎖,但是寫的時候,沒有一致性非鎖定讀,下面例子會說明),新session可以對同一行進行mod操作。 兩種的區別在於,可重複讀級別下,讀

原创 無索引時行鎖升級爲表鎖測試

今天看到簡朝陽的書上的一句話,如下: 當Query無法利用索引的時候,Innodb會放棄使用行級別鎖定而改用表級別鎖定,造成併發效率的降低。 看到這句話,開始讓我有種不信的感覺,所以親自測試下,MYSQL版本爲5.5, 過程如下: 表中的

原创 ReentrantLock源碼學習

上文學習了JUC的AQS工具,下面看下可重入顯示鎖的實現(如何基於AQS),要看ReentrantLock,還是先看下顯示鎖內部對AQS的幾種子類實現。 abstract static class Sync extends Abstra

原创 JUC之ReentrantReadWriteLock(JDK1.8源碼)

上文學習了JUC下的可重入互斥鎖,今天繼續看下JUC包下的讀寫鎖,並與之進行對比。我們知道,ReentrantLock鎖是基於AQS實現的,同樣讀寫鎖也是如此。不同的是,ReentrantLock的state用0/1作爲標識,而讀寫鎖中由

原创 Epoll在Nio中的實現

Nio與Epoll 一直對nio和epoll沒有系統的認識,最近看了下openjdk,簡單的做個記錄。 Linux2.6之後支持epoll windows支持select而不支持epoll 不同系統下nio的實現是不一樣的,包括

原创 flickr的分表全局唯一id實現方式

原文地址http://code.flickr.net/2010/02/08/ticket-servers-distributed-unique-primary-keys-on-the-cheap/ Ticket Servers: Di

原创 JUC包之AbstractQueuedSynchronizer源碼學習

AQS是JUC包的基礎,幾乎所有的JUC工具類,都是用了AQS進行實現,AQS使用了CLH lock的隊列作爲基礎,關於CLH,前文有一篇轉載的又說到什麼事CLH lock,AQS中的CLH,其實就是一個FIFO的隊列,隊列中的每個結點(

原创 自旋鎖、排隊自旋鎖、MCS鎖、CLH鎖

自旋鎖(Spin lock) 自旋鎖是指當一個線程嘗試獲取某個鎖時,如果該鎖已被其他線程佔用,就一直循環檢測鎖是否被釋放,而不是進入線程掛起或睡眠狀態。 自旋鎖適用於鎖保護的臨界區很小的情況,臨界區很小的話,鎖佔用的時間就很短。 簡單的實

原创 linux配置java環境變量(詳細)

linux配置java環境變量(詳細) 一. 解壓安裝jdk 在shell終端下進入jdk-6u14-linux-i586.bin文件所在目錄, 執行命令 ./jdk-6u14-linux-i586.bin 這時會出現一段協議,連繼

原创 mysql二進制版本安裝以及主從服務的搭建

簡單的筆記:  去mysql官網下載5.5的二進制版本,wget -c +url下載tar.gz,我這裏下載的是64位5.5版本的包,先簡單的說下安裝,其實這些在mysql文檔上都有,只不過每個人安裝的時候可能遇到不同的問題,看下.err

原创 揭祕內存屏障

轉載自http://wiki.jikexueyuan.com/project/disruptor-getting-started/storage-barrier.html 原文地址:http://ifeve.com/disruptor-m

原创 Metaq原理與應用

Metaq原理與應用 (針對2.X版本)   誓嘉 蘭生 2013/1/13   目錄 1       前言 2       特別說明 3       專業術語 4       消息系統需要解決哪些問題? 4.1