RedisConf2018記錄--Day 1 sessions by 夏周、白宸

RedisConf2018記錄--Day 1 sessions by 夏周、白宸

會議議程

Day 0是Training Day,之後的兩天就都是正式的會議session了,下面圖是Day 1 session day的所有議程。早上會有一個breakfast,之後就是keynotes,主要是redislabs的新特性發布,畢竟是會議舉辦方嘛,然後是邀請的大客戶出來站台,後面會議記錄會詳細介紹下。接著是各個session的演講時間了,每個session差不多45分鐘時長,會有5-6個session同時進行,所以我們是按需求和興趣挑選著來聽的。所有session結束後,會有一個meetup,大家可以互相做個交流。

會議記錄

早餐比較簡單,漢堡和咖啡,蘋果不錯~

上午的keynotes開場是Redislabs的CEO宣傳自己公司取得的成就,目前已經進入Forrester Wave象限的leader角色,結束後他邀請作者上來講Redis 5.0規劃的feature。

作者開場先說明了5.0最重要的feature是Redis Stream,在之後的session時間他也會詳細介紹Redis Stream的設計。然後介紹了他最近做的一個「秘密項目」,把之前開發的disque以Redis Module的形式遷移到Redis,這個據作者介紹開發的工作量還是比較大的,但是為了在RedisConf18上給大家驚喜,只好push自己加班了……。然後作者講了5.0中和cluster相關的改進,最重磅的莫過於作者要給cluster實現一個proxy,私底下交流作者覺得現在smart client在實現時都沒有統一的標準,問題很多,加個proxy以統一,非smart client也可以直接使用了。然後是非同步遷移的實現,這個從github上來看,會合入codis的PR實現。最後介紹的是client side caching的新feature,實際上是提供一些key的統計信息給client,client side決定是否緩存或丟棄key,這個是為了解決熱點key問題的,不過一致性就要由client自己來做取捨了。關於multi io thread,作者說也是在計劃中。

最後關於5.0 的發布時間,目前是還沒有RC1的,按作者計劃是在幾周以後RC1,不過GA時間可能就比較久了,目前作者也無法確定,因為還要寫很多的文檔、unit test和壓測,他說自己在4.0因為心急犯了錯誤,5.0不會再犯了。

接著Redis labs的人上台重點介紹了Redis module,使用Redis Module,能大大降低部署在AWS上應用的架構複雜性。然後RedisGraph(module)的開發者上台,介紹了他們重新實現了RedisGraph,基於新的GraphBLAS演算法,插入性能和查找相鄰節點性能和Neo4j相比有數量級的提升。

然後是RedisSearch(module)的開發者上台,介紹新的feature,RedisSearch是如何在cluster版本中也實現支持的,主要是使用了一個coordinator節點用來聚合結果,最後還在現場對RedisSearch的性能和AWS的對比做了一個演示,RedisSearch的作者是個柔軟的胖子,昨天我們也有過私下交流,非常的風趣幽默。最後是Redis labs的人上台宣布發布Redis University,面向開發者進行Redis教學,當然也可以順便宣傳自己的產品,目前是已經上線可以註冊了。

keynotes的最後邀請了stackoverflow的CEO Joel Spolsky上台來跟大家分享他的創業經歷,實際是一個脫口秀的形式,Joel Spolsky非常的幽默,感覺全場一直在笑,貼個圖吧,畢竟碼農經常用這個網站,膜拜一下,

keynotes環節完成之後是session time,我們先聽了Redis作者對Redis stream的介紹,這裡主要介紹了實現Redis Stream的初衷和Redis Stream的主要介面,推薦大家看之前分享的一個ppt,對Redis Stream做了一個詳細說明,和作者今天講的思路一致,移步:Redis Stream

之後是google cloud的分享。谷歌redis雲服務計劃今年5-6月份上線,目前是一個beta版本,整體功能目前只有主從和單節點兩種形式,內存容量從1-384GB內存,沒有對源碼進行深度定製化開發,直接使用VM來構建redis,同時目前不支持集群,另外有一套類似阿里雲DMS的監控管理工具,不過據反饋需要收費,整體費用比例看很高。但是從現場了解到有很多客戶在gcc(google cloud computing)使用redisLabs提供服務。google同學表示也是看到redis的需求之後希望自己能夠在私有雲提供Redis服務。同時當前也都不支持Redis Module 不支持CRDT,詳細roadmap沒有透露。另外會後和一個中國的google同學溝通反饋他們大部分開發同學是從aws過來的。

因為上午keynotes時間比較長,所以只有一個session時間,接著就是lunch time了,lunch是餐車的形式,人很多要排挺長隊,餐食還是漢堡……這點體驗不太好:)

下午先聽了AWS的分享。AWS ElasticCache的負責人Audi Gutmans分享了AWS在開源項目的貢獻及ElastiCahe對開源Redis的共享,Audi Gutmans首先介紹了他是PHP group的創始人,是PHP steering的委員和license持有人,另外還參與了Apache開源基金會,開源了很多項目,比如Zend Framework,Eclipse PDT,同時還是mysql的貢獻者,在mysql客戶端目前都還有他的代碼。會議開始之前Redis作者坐到了會議的第一排,在第一排認真的進行了聽講。會議開始之後Gutmans首先介紹了aws使用和貢獻的開源項目,接下去講到了aws同學在redis的貢獻。

其中最大的一個feature是SSL的支持,這個feature是由一個180幾的妹子完成的,使用了aws開源的s2n的SSL庫,整個庫的代碼比openssl簡潔,同時性能提升性能比openssl好20%。會和和SSL的feature的作者交流,整體性能在加密上比沒有開啟降低30%,這個也和阿里雲實現的版本是一致的。

會議結束之後開源看到redis作者對Gutmans還是非常尊敬,主動上去和他攀談並握手致意。

在會議結束之後我們在展台找到aws的同學,找到了QUCHEN和他進行了短暫交流,主要確定了下aws模式下用戶如果從主從變成集群是否需要更改用戶客戶端,這裡他確定用戶需要修改,我們反饋這個對用戶不夠友好,會影響用戶業務。另外問了下aws對讀寫分離支持的時候有沒有考慮單寫入放大的或者,比如進行cpu限制或者cpu限制,他們反饋只有VM級別的流量限制,同時對於這種問題需要用戶解決。在數據遷移上主要詢問了如果擴容的時候大key如何遷移的問題,不過他們如果包的大小大於一定數字(256MBU左右),客戶端會斷開連接。諮詢詢問了是否使用migrate來進行遷移,QUCHEN直接說不能說了。後面來了aws的產品經理,一個女同學,我們介紹了下阿里雲在Redis上進行的工作,相互交流了下就完了。

因為aws分享session時間比較短,所以在同一個房間接著Redis Labs的工程師分享了RoF(Redis on Flash)with 3D XPoint,3D XPoint是一種新型存儲介質。不過這裡感覺Redis Labs對技術做了很高的保密,詢問性能如何,他們只回答了very fast,並沒有給出詳細的性能數據,然後目前Redis Labs也還是在內部測試中,沒有相關產品公測。最後一頁PPT是精華,和原來的on 普通SSD相比,on 3D XPoint之後,他們的架構也有很大的改變,基於3D XPoint的存儲設備是直接map到虛擬地址空間中的,然後Redis Labs重新實現了引擎部分,原來是基於RocksDB的,現在是自己寫的一個LMDB,用於數據的換入換出,也取消了多io線程的設計。

接下來的session和業務相關多一點,首先是「auto-scaling redis caches」,這個主要講的是如何根據業務運行的latency和命中率,動態的調整cache的大小(基於Redis)來獲取目標的latency,同時盡量降低cache的成本,主要是提到了一個cache model的概念,業務latency的下降並不是隨著cache size的提高而線性下降的,可能會在某段cache size範圍內,latency是完全不變的,但是過了某個點,latency會出現陡變。

我們聽的最後一個session是lyft分享的關於Redis大規模使用的經驗(自運維)。Lyft是一個打車軟體,目前大約有2000+ instance。不過Lyft使用Redis是一個純粹做cache的場景,遇到的問題相對簡單。他們不開AOF和RDB,也沒有使用Replication。最早他們使用的是twemproxy,這個自建過Redis的同學可能都知道,twemproxy是Twitter很早開源的一個Redis集群代理,現在轉為閉源,開源部分也不維護了。所以Lyft就轉而使用envoy,envoy目前google,apple,Netflix,騰訊等都有在用,更新也很頻繁,github上看star 4000+,長期來看比較靠譜。lyft使用的路由演算法是一致性hash,這個倒也符合cache場景的用法。lyft自己寫了一些比較好的運維工具,redis-look,已經開源。最後因為Lyft的服務都是跑在aws上的,他們分享了一下spectre漏洞對他們的影響,大約瞬時25%+的性能,他們的做法就是把ec2規格從C4升級到C5解決問題,有錢任性~

session聽完之後,會有一個meetup的時間段,供大家會後交流,有冰好的beer,這點還是不錯的。我們主要和aws elasticache的工程師和產品經理做了交流。同時還遇到了redis-rdb-tools的作者,他看到我們一直在aws展台交流,就主動把我們叫過去了:),redis-rdb-tools確實是個很不錯的工具,我們在平時工單處理過程中也會推薦客戶使用。開發redis-rdb-tools的哥們是一個印度人,他又做了一個專門用來優化Redis內存使用的工具,看宣傳頁是根據你的數據結構使用情況,來給你提供優化內存使用的建議,比如使用hash時,拆分為小hash,不要用大value等等這樣的策略。我們給他推薦了阿里雲的雲市場,一個專門的第三方工具市場,redis-rdb-tools在github上有2000+ star,redis也在國內比較流行,從這兩點來看,應該能給這位印度哥們帶來不錯的商機~

最後放一張圖鎮樓,o( ̄︶ ̄)o


推薦閱讀:

scylladb專欄開篇
矽谷之路5:NoSQL就是把東西放在一起
ScyllaDB的Log-Structured Memory Allocator實現
如何在node項目中引入redis做session持久化?
Redis 應該如何節約使用內存?有什麼好的設計策略和好的方法?

TAG:Redis | NoSQL | 資料庫 |