haisql_memcache版本更新情況(帶動(dòng)態(tài)鏈接庫) |
來(lái)源:未知 | 發(fā)布時(shí)間:2017-04-27 | 瀏覽次數: |
haisql_memcache版本更新情況(帶動(dòng)態(tài)鏈接庫)
更新日期 | 版本號
2017年3月3日 | 1.0.27
更新內容:
因為使用了更高效率的內存管理模塊jemalloc,為了解決jemalloc與libc中的malloc/free/realloc等函數沖突的問(wèn)
題,采用了部分靜態(tài)鏈接,部分動(dòng)態(tài)鏈接的方法,考慮到不是每個(gè)人都安裝有jemalloc,為了方便用戶(hù),將jemalloc 靜態(tài)鏈接jemalloc.a,將libc動(dòng)態(tài)鏈接libc.so, 這樣就避免了沖突也默認啟用了jemalloc,使性能提高了百分之十. 將如下幾個(gè)動(dòng)態(tài)鏈接庫保留了下來(lái),缺一不可: linux-vdso.so.1 => (0x00007ffd34be8000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fad6728a000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fad66f81000) libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fad66d6a000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fad669a1000) /lib64/ld-linux-x86-64.so.2 (0x00005637a28cf000)
更新日期 | 版本號
2017年3月7日 | 1.0.28
更新內容:
增加了兩個(gè)數據日志工作模式 如下: 在原有的七個(gè)數據日志工作模式的基礎上,新增了兩個(gè)模式,模式2和模式4; 模式2:保存數據日志每秒刷進(jìn)系統。 模式4:保存日志空閑刷進(jìn)系統。
更新日期 | 版本號
2017年3月8日 | 1.0.30
更新內容:
對以前的版本進(jìn)行了優(yōu)化: 1.在1.0.26和1.0.28版本的基礎上進(jìn)行了一些優(yōu)化,取消了對數據庫內存大小的限制,減少了程序的開(kāi)銷(xiāo), 提高了性能。 2.優(yōu)化了set,get和gets指令,加快了數據包轉發(fā)的速度,get和gets的查詢(xún)性能已經(jīng)超過(guò)了memcached, 比memcached快了20%,set的性能比memcached快10%。
更新日期 | 版本號
2017年3月10日 | 1.0.31
更新內容:
在之前版本的基礎上進(jìn)行了優(yōu)化,修復了一些Bug和版本運行不穩定等因素,haisql_memcache數據庫的
性能比之前的版本又有所提高,同時(shí)增加了版本的穩定性。
更新日期 | 版本號
2017年3月13日 | 1.0.32
更新內容:
在之前版本的基礎上進(jìn)行了優(yōu)化,修復了一些Bug和版本運行不穩定等因素,haisql_memcache數據庫的性能比之前的版本又有所提高,同時(shí)增加了版本的穩定性。
更新日期 | 版本號
2017年3月17日 | 1.0.33
更新內容:
在之前版本的基礎上進(jìn)行了優(yōu)化,修復了一些Bug和版本運行不穩定等因素,haisql_memcache數據庫的 性能比之前的版本又有所提高,同時(shí)增加了版本的穩定性。
更新日期 | 版本號
2017年3月20日 | 1.0.34
更新內容:
在之前版本的基礎上進(jìn)行了優(yōu)化,修復了一些Bug和版本運行不穩定等因素,haisql_memcache數據庫的 性能比之前的版本又有所提高,同時(shí)增加了版本的穩定性。
更新日期 | 版本號
2017年3月28日 | 1.0.35
更新內容:
在之前版本的基礎上進(jìn)行了優(yōu)化,修復了網(wǎng)絡(luò )層的Bug和版本運行不穩定等因素,使版本的穩定性更高,性 能更快,目前我們的軟件讀性能比memcached快64%,寫(xiě)性能比memcached快30%。 主要優(yōu)化內容: 1:優(yōu)化了內存分配機制,對于最常見(jiàn)的變量std::string,std::shared_ptr<std:;string>等等都定義了自己的 更高效率的內置資源池,實(shí)現更好的內存分配器和內存回收機制; 2:將各變量組合排列,將同時(shí)變化的放到一起,提高CPU cacheline的效率; 3:將網(wǎng)絡(luò )層boost asio中的函數盡量使用更接近底層的調用函數receive/send等,減少調用的層次等等辦法.
更新日期 | 版本號
2017年4月13日 | 1.0.36
更新內容:
在之前版本的基礎上進(jìn)行了優(yōu)化,主要改進(jìn)了各類(lèi)鎖的使用,提供更大的并發(fā)。 主要優(yōu)化內容: 1:使用了讀寫(xiě)鎖(讀共享鎖,寫(xiě)獨占鎖),替換掉了原來(lái)統一的spin_lock, 提高了讀并發(fā)性,實(shí)現了多線(xiàn) 程同時(shí)讀有更大的并發(fā)性; 2:改善了getg/getl/append/prepend/append/incr/decr的性能,比上個(gè)版本有不少提高; 3:改進(jìn)了所有修改命令的鎖機制,將鎖劃分為兩層讀寫(xiě)鎖,第一層是全局鎖,exec時(shí)是使用獨占鎖,保 證事物處理的唯一性,普通set/add/replace等修改命令是共享鎖,用于保證事務(wù)處理的完整性,第二層是數據層 鎖,32張表,每表劃分256組,一共8192把讀寫(xiě)鎖,get/gets等命令讀數據時(shí)使用共享鎖,set/add/replace等命 令寫(xiě)數據時(shí)使用獨占鎖??梢员WC查詢(xún)數據無(wú)限并發(fā),寫(xiě)數據時(shí)鎖沖突的概率也非常低,因為一共有8K把鎖, 而我們使用的線(xiàn)程數量是CPU數量X2, 對于8核CPU來(lái)說(shuō),同時(shí)運行的線(xiàn)程只有16個(gè)線(xiàn)程,16個(gè)線(xiàn)程競爭8192把 鎖,理論上幾乎不會(huì )有寫(xiě)沖突。 |
? |
? |
?上一篇:haisql_memcache版本更新情況(全靜態(tài)庫) ?下一篇:Haisql_memcache最佳實(shí)踐方案 |