原创 高頻面試題:如何保證緩存與數據庫的雙寫一致性

前言     爲了解決高併發的流量問題,通常我們都會添加緩存這一層,來扛住大量的讀請求。雖然緩存能夠幫數據庫分擔大量的讀請求,但是也伴隨着一個問題就是緩存中的數據怎麼跟數據庫中的數據保持一致,又是一個新問題   數據實時性等級  

原创 MySQL中使用IN會不會走索引

結論:IN肯定會走索引,但是當IN的取值範圍較大時會導致索引失效,走全表掃描 navicat可視化工具使用explain函數查看sql執行信息   場景1:當IN中的取值只有一個主鍵時   我們只需要注意一個最重要的type 的信息很明顯

原创 MySQL中 in和exists的執行過程算法分析

A表: 100條數據 , B: 10條數據 select * from A where id in ( select aid from B ) 先執行括號裏面的查詢,然後執行外面,總共需要查詢的次數的 B+1=11次 需要注意的是 括號裏面

原创 處理器內存模型

順序一致性內存模型是一個理論參考模型,JMM和處理器內存模型在設計時通常會把順序一致性內存模型作爲參照。JMM和處理器內存模型在設計時會對順序一致性模型做一些放鬆,因爲如果完全按照順序一致性模型來實現處理器和JMM,那麼很多的處理器和編譯器

原创 大併發大數量中的MYSQL瓶頸與NOSQL介紹

大併發大數量中的MYSQL瓶頸與NOSQL介紹   NoSQL在2010年風生水起,大大小小的Web站點在追求高性能高可靠性方面,不由自主都選擇了NoSQL技術作爲優先考慮的方面。今年伊始,InfoQ中文站有幸邀請到鳳凰網的

原创 mysql單表容量_關於mysql單表支持的最大大小

mysql單表支持的最大存儲空間大小爲多少呢? 其實這個問題要拆分成兩個問題。 第一是操作系統所採用的文件系統能支持的單個文件大小,比如: linux 2.2-intel 32-bit (ext2文件系統) 最大支持2GB linux 2.

原创 MESI(緩存一致性協議)

現在的處理器都是多核處理器,並且每個核都帶有多個緩存(指令緩存和數據緩存,見下圖)。爲什麼需要緩存呢,這是因爲CPU訪問內存的速度比較慢,所以在CPU和內存之間加了個緩存以提高訪問速度。既然每個核都有緩存,那麼假設兩個核或者多個核同時訪問同

原创 CPU有緩存一致性協議MESI,爲何還需要Volatile?

前面我們從操作系統底層瞭解了現代計算機結構模型中的CPU指令結構、CPU緩存結構、CPU運行調度以及操作系統內存管理,並且學習了Java內存模型(JMM)和 volatile 關鍵字的一些特性。本篇來深入理解CPU緩存一致性協議(MESI

原创 內存屏障前世-緩存一致性協議

現代計算機都是多核cpu,cpu需要和內存交互,但內存相對cpu的速度實在太慢,於是cpu和內存之間還有cache層,每個cpu都有屬於自己的cache,cache由cache line組成,每個cache line 64位(根據不同架構,

原创 JVM 源碼分析之如何觸發並執行 GC 線程

前言 由於JVM中垃圾收集器的存在,使得Java程序員在開發過程中可以不用關心對象創建時的內存分配以及釋放過程,當內存不足時,JVM會自動開啓垃圾收集線程,進行垃圾對象的回收。對象的創建、使用,到最後的回收,整個過程就這樣悄無聲息的發生着,

原创 j.u.c系列(02)---線程池ThreadPoolExecutor---tomcat實現策略

寫在前面   本文是以同tomcat 7.0.57。 jdk版本1.7.0_80爲例。   線程池在tomcat中的創建實現爲: public abstract class AbstractEndpoint<S> { pu

原创 MySQL分佈式數據庫高可用實踐:架構、複製機制、多機房

大家好!我是網易數據運維工程師杜明友,大家可以叫我老杜。首先介紹一下網易雲,是網易集團旗下雲計算和大數據品牌,本文要深入分析的案例是網易雲旗下的即時通訊雲平臺業務,開發者通過集成客戶端SDK和雲端OPEN API,即可快速實現強大的IM功能

原创 SATB深入詳解與問題剖析【純理論】

延着上一次【https://www.cnblogs.com/webor2006/p/11147893.html】的理論繼續。 SATB: 在G1中,使用的是SATB(Snapshot-At-The-Beginning)的方式,刪除的

原创 多活/多機房的幾種實現方式與重點

也可以在 多活/多機房的幾種實現方式與重點 - mdhs.io 讀到這篇文章。 當業務規模提升到一定程度之後,很多公司會考慮「多活」,也就是將自己的業務部署在多個機房,不管是同城還是異地,其中的原因包括但不限於: 從高可用角度,公司已經

原创 軟件系統高可用架構思考

近期在重新評估我們系統的高可用性和彈性擴展能力,因此今天再整理下軟件系統高可用架構方面的內容。重點還是對裏面的一些關鍵點展開說明。 對於高可用整體概述,我在前面專門一篇文章寫過,先做個說明: 高可用性整體概述 對於業務系統的高可用性,實際