Home » Posts tagged "cassandra" (Page 2)

Netflix 開發的 Delayed Queue

原來這個叫做 Delayed Queue,難怪之前用其他關鍵字都找不到什麼資料... (就不講其他關鍵字了 XD)

Netflix 發表了他們自己所開發的 Delayed Queue:「Distributed delay queues based on Dynomite」。

本來的架構是用 Cassandra + Zookeeper 來做:

Traditionally, we have been using a Cassandra based queue recipe along with Zookeeper for distributed locks, since Cassandra is the de facto storage engine at Netflix.

但可以馬上想到不少問題,就如同 Netflix 提到的:

Using Cassandra for queue like data structure is a known anti-pattern, also using a global lock on queue while polling, limits the amount of concurrency on the consumer side as the lock ensures only one consumer can poll from the queue at a time.

所以就改放到 Netflix 另外開發的 Dynamite 上:

Dynomite, inspired by Dynamo whitepaper, is a thin, distributed dynamo layer for different storage engines and protocols. Currently these include Redis and Memcached. Dynomite supports multi-datacenter replication and is designed for high availability.

後端是 RedisMemcached 的系統,可以對抗整個機房從 internet 上消失的狀態。

在設計上則是「保證會跑一次」,也就是有可能會有多次的情況,用 Dyno Queues 系統的人必需要考慮進去:

4. At-least-once delivery semantics

雖然整篇講的頗輕鬆,但實際看起來還是很厚重... 暫時還是不會用吧 :o

ScyllaDB:用 C++ 改寫相容於 Cassandra 的系統

Scylla 是出自希臘神話,維基百科對應的連結:「斯庫拉」、「Scylla」。而在 ScyllaDB 官網副標題寫著:

Fully compatible with Apache Cassandra at 10x the throughput and jaw dropping low latency

JVM 的 GC 老問題在 Cassandra 中帶來的 latency 不穩定本來就是個痛苦的問題,要花很多力氣去調整,而用 C++ 改寫等於是自己處理這一塊。

這帶來的效能提昇可以從各種測試結果看出來,像是單機的測試:「Scylla vs. Cassandra benchmark」,以及多機的測試:「Scylla vs. Cassandra benchmark (cluster)」(可以參考下圖)。

而 Latency 的改善也是極為明顯:「Latency benchmark」。

其中另外一個重要的技術是 IntelDPDK,可以大幅降低現有 Linux Kernel 在網路架構上的損耗:「Dedicated fast network stack for modern hardware」。

很有趣的專案,好久沒碰 Cassandra 了...

MariaDB 10.0.1...

MariaDB 發表 MariaDB 10.0.1 了:「What does MariaDB 10.0.1 include – available now」。

公告的文章把一些資訊整理出來讓大家與 MySQL 5.6 比較... XD

  • MariaDB 10.0-only Features:只有 MariaDB 10.0 有的功能。
  • MariaDB 10.0 Merged Features:從 MySQL 5.6 拉回來的功能。
  • MariaDB 10.0 Reimplemented Features:兩邊都有的功能,不過 MariaDB 自己重新實作了 (重寫)。
  • MariaDB 5.x Features now in MySQL 5.6:MySQL 5.6 從 MariaDB 5.x 拉的功能
  • MariaDB 5.x Features Backported from MySQL 5.6:MariaDB 5.x 從 MySQL 5.6 拉出來的功能。

然後沒有列出 MySQL 5.6 有,但是 MariaDB 沒有的功能... XD

先不管這些東西,10.0.1 多了 Cassandra storage engine 看起來就很有趣啊,可以透過 MySQL server 當 Cassandra client 跑去 Cassandra Cluster 讀寫資料:

看說明是透過 CQL 要資料,所以仍然是受限於 CQL 的能力。

Archives