Mysql

MySQL XtraDB/Galera 集群高可用性 RamDisk SuperFast

  • May 7, 2018

好的,所以這將是一個推測性的問題,主要是面向設計的,而且是一個相當長的問題。如果我是你,我會喝杯咖啡。

前言:所以我一直在研究數據庫,想要一個非常快(就像真的)數據庫(引擎),它具有以下必備條件

  1. 酸合規
  2. In-Memory-ish 用於超快的 IO。
  3. 持久的(嗯…呃
  4. 可擴展為集群/主從/等
  5. 高可用性(HA)
  6. MySQL Drop-In 替換
  7. 開源
  8. 應該在商品伺服器(IYKWIM)上執行

所以從我過於樂觀的需求清單來看,你已經跳到了….嗯

mysql如何加速,查詢慢

好吧,好吧,除了笑話,我知道如果innodb_buffer_pool_size調整得當它會在大多數情況下耗盡記憶體,但我說

它不在記憶體中喲!

但是你會說嘿,它的 2k18 人可能已經創建了大約 100% 的記憶體數據庫,對吧?嗯…實際上他們有,但每個人都有自己的權衡。

  1. VoltDB 社區版 一切似乎都很好,直到您意識到它不是替代品。它需要一些儲存過程——java中的命令,這需要你重寫整個應用程序或至少你的php應用程序的數據庫層/驅動程序/等。所以?破壞者!!!
  2. MemSQL,嗯,這似乎是我們“有史以來最好的開源 In-Mem Scalable SQL Acid DB ”競賽的有力競爭者。只為,memSQL Boss 就像…

MemSQL 伺服器要求

不用說,memSQL 至少需要 4 個核心和 8Gigs 的 RAM,推薦4 個核心和每個核心32 個gigs 的記憶體非常瘋狂!!!!此外,memSQL 的社區版本(順便說一句,不是完全開源的!,它只是免費的)不支持高可用性,因為它是一項付費功能。還有它的 NoSQL。所以?破壞者!!!

  1. 所有其他 NoSQLish 數據庫,如 membase、Redis、Memcached 等,都被排除在外。

所以現在我的天才想法!

我想知道我們是否可以執行一個 XtraDB/Galera 集群,其中所有實例都執行在RAMDisc上並帶有正常快照?

它會勾選所有復選框。

聽我說完,首先解決房間裡的大象,我們知道從 RAMDiscs 執行完整的 mysql Dbs 是非常嗯…大膽,以最禮貌的方式。那麼如果伺服器崩潰/關閉/等我們失去一個節點會發生什麼。雖然我們所有的數據庫集群作為一個整體仍然活著並且在踢**。我們所要做的就是從上一個快照啟動數據庫並與集群同步回來,順便說一下,集群本身就非常擅長!

好的,偷看,不要對我太鹹,如果您發現我的實施存在缺陷,請指導我。

好的,3個 Galera 節點,具有:

  • 每個都將所有磁碟內容放在 RAM 磁碟中。
  • 足夠的 RAM 使之成為可能。
  • 這些節點在地理上是分開的,因此火山、洪水等無法一次將它們全部消滅。
  • 高速網路。

筆記:

  • 這將允許從一台伺服器失去中完全自動恢復。
  • 故障期間的唯一延遲是將客戶端切換到其他兩個節點之一。
  • 但是,您可能會發現網路是慢點。(糾纏還沒有完善。)
  • 不需要快照。(您總是有 2 個具有完整數據副本的其他節點。)

引用自:https://dba.stackexchange.com/questions/204556