19 個九頭蛇頭。 該計劃的精彩概述

11月12-XNUMX日,將在聖彼得堡召開會議 水潤致力於並行和分佈式系統的開發。 關於 Hydra 的事情是它將頂尖科學家(通常只在國外科學會議上出現)和知名的實踐工程師結合到一個科學與實踐交叉點的大項目中。

Hydra 是我們近年來最重要的會議之一。 在此之前進行了非常認真的準備、發言人的選擇和報告。 關於上週 habro面試出來了 與 JUG.ru 集團的負責人 Alexey Fedorov(23代雷沃).

我們 已經告訴 講述了三個重要的參與者,分佈式系統理論的創始人——Leslie Lamport、Maurice Herlihy 和 Michael Scott。 是時候詳細談談整個程序了!

19 個九頭蛇頭。 該計劃的精彩概述

動機

如果您正在編程,那麼您將以某種方式處理多線程和分佈式計算。 相關領域的專家直接與他們合作,但隱含地,分佈從各個方面看著我們:在任何多核計算機或分佈式服務中,都有一些東西可以並行執行計算。

有許多會議涵蓋了應用程序編程的某些方面。 另一方面,我們有特殊的科學學校,以講座的形式揭示了大量複雜的理論。 例如,與聖彼得堡的九頭蛇並行, 學校. 在 Hydra 會議上,我們試圖將嚴酷的實踐、科學以及處於交叉點的一切結合在一起。

想一想:我們生活在一個美好的時代,您可以在這個時代現場見到我們所從事的科學和工程領域的創始人。 物理學家不會遇到牛頓或愛因斯坦——火車已經開走了。 但是,那些創建分佈式系統理論基礎、發明流行編程語言並首次將所有這些體現在工作原型中的人仍然生活在我們身邊。 這些人並沒有中途辭掉工作,目前正在世界知名大學和公司從事現實工作,是當今最大的知識和經驗來源。

另一方面,與他們見面的機會通常仍然純粹是理論上的:我們中很少有人能夠不斷地關注羅徹斯特大學的一些公共事件,然後趕往美國並返回邁克爾斯科特的講座。 訪問 Hydra 的所有成員通常是一筆不小的財富,除了花費的時間深淵(儘管這聽起來像是一個有趣的任務)。

另一方面,我們現在有很多頂級工程師正在研究分佈式系統的實際問題,他們肯定有話要說。 但問題是——他們 工作他們的時間很寶貴。 是的,如果你是微軟、谷歌或 JetBrains 的員工,在內部活動中遇到一位知名演講者的可能性會大大增加,但總的來說 - 不,它不會每天都發生。

通過這種方式,九頭蛇會議完成了一項我們大多數人無法獨自完成的重要任務——在一個地方和一個時間,將人們聚集在一起,他們的想法或與他們的交流可以改變你的生活。 我承認並不是每個人都需要分佈式系統,一些複雜的基礎性東西。 您可以在餘生中用 PHP 編寫 CRUD 程序,並且完全快樂。 但誰需要它 - 這是你的機會。

自從第一次宣佈在哈布雷舉行的九頭蛇會議以來,已經過去了很長一段時間。 在這段時間裡,已經完成了很多工作——現在,我們有了幾乎所有報告的清單。 沒有呆滯的單線程算法,只有純粹的分佈式硬核! 讓我們以一般性的話結束,看看我們現在手頭有什麼。

主題演講

主題演講開始和結束會議的日子。 通常開幕主題演講的目的是確定會議的總體精神和方向。 閉幕主題演講劃清界線,並解釋了我們如何使用在會議期間獲得的知識和技能。 開始和結束:記憶最好的東西,一般來說,具有更高的價值。

懸崖點擊- H2O分佈式K/V算法

19 個九頭蛇頭。 該計劃的精彩概述 Cliff 是 Java 世界的傳奇人物。 在 90 年代後期,為了完成博士論文,他寫了一篇名為 “結合分析,結合優化”,一段時間後成為 HotSpot JVM 服務器編譯器的基礎。 兩年後,他已經在 Sun Microsystems 從事 JVM 方面的工作,並向全世界展示了 JIT 有權存在。 Java 是具有最智能和最快優化的最快的現代運行時之一的整個故事來自 Cliff Click。 一開始,人們認為如果靜態編譯器可以使用某些東西,您甚至不能嘗試對它進行 jit。 感謝 Cliff 和團隊的工作,所有新語言開始默認使用 JIT 編譯的思想創建。 當然,這不是一個人的功勞,而是克利夫在其中起了非常重要的作用。

在開幕主題演講中,克里夫將談論他的另一項事業—— H20,一個用於工業應用的分佈式和可擴展機器學習的內存平台。 更確切地說,關於鍵值對在其中的分佈式存儲。 這是一個非常快速的存儲,有很多有趣的屬性(確切的列表在 描述) 允許在大數據流的數學中使用類似的解決方案。

Cliff 的另一個演講是 Azul 硬件事務內存體驗. 他傳記的另一部分 - 十年 在蔚藍工作,他在 Azul 硬件和技術堆棧中更新和改進了很多東西:JIT 編譯器、運行時、線程模型、錯誤處理、堆棧操作、硬件中斷、類加載等等 - 嗯,你明白了主意。

最有趣的部分開始於他們為大企業製造硬件——一台運行 Java 的超級計算機。 這是一個非常有創意的東西,專門為 Java 量身定做,它有特殊的要求——用於讀取低暫停垃圾收集的內存障礙、具有邊界檢查的數組、虛擬調用……最酷的技術之一是硬件事務內存。 1 個內核中的任何一個的整個 L864 都可以參與事務寫入,這對於在 Java 中使用鎖尤為重要(同步塊可以並行工作,只要沒有真正的內存衝突)。 但美好的想法與嚴酷的現實相撞——在這份報告中,Cliff 將告訴您為什麼 HTM 和 STM 不能很好地適應多線程計算的實際需求。

邁克爾斯科特- 雙數據結構

19 個九頭蛇頭。 該計劃的精彩概述 邁克爾·斯科特 - 羅切斯特大學計算機科學教授,命運與他聯繫在一起 已經 34 年了,並在他的家鄉威斯康星大學麥迪遜分校擔任了五年院長。 他從事並行和分佈式編程和語言設計領域的研究,並向學生教授這些內容。

由於教科書,全世界都知道邁克爾 “編程語言語用學”,其最新版本發佈於最近 - 2015 年。 他的工作 “共享記憶體多處理器上的可擴展同步演算法” 我收到 迪克斯特拉獎 作為分佈式計算領域最著名的公司之一, 公然說謊 在羅切斯特大學在線圖書館。 您可能還知道他是來自 Michael-Scott 算法的作者 《簡單、快速、實用的非阻塞和阻塞並發隊列算法》.

至於 Java 世界,這是一個特例:他與 Doug Lea 一起開發了 Java 庫運行的那些非阻塞算法和同步隊列。 這就是“雙數據結構”主題演講的主題——在 Java SE 6 中引入這些結構使我們的性能提高了 10 倍 java.util.concurrent.ThreadPoolExecutor. 如果您事先對這些“雙重數據結構”是什麼感興趣,那麼這裡有 相關工作.

莫里斯·赫利希- 區塊鍊和分佈式計算的未來

19 個九頭蛇頭。 該計劃的精彩概述 莫里斯·赫利希 - 兩次獲得 Dijkstra 獎。 第一個是為了工作 “無等待同步” (布朗大學),第二個,最近 - “事務內存:無鎖數據結構的架構支持” (弗吉尼亞理工大學)。 Dijkstra 獎頒發給其重要性和影響力至少十年顯著的作品,很明顯,Maurice 是該領域最著名的專家之一。 他目前是布朗大學的教授,並取得了長篇大論的成就。

在本次閉幕主題演講中,Maurice 將從分佈式計算經典的角度講述區塊鏈分佈式系統的理論與實踐,以及它如何簡化許多相關問題。 這份報告專門針對會議的主題——根本不是關於挖礦炒作,而是關於我們的知識如何能夠驚人地有效和適當地用於各種任務。

2017年XNUMX月,Maurice已經來到俄羅斯SPTDC學校,參加了JUG.ru meetup,視頻可以在YouTube上觀看:

主程序

然後將對計劃中包含的報告進行簡短審查。 此處對一些報告進行了詳細描述,另一些則進行了簡要描述。 長篇描述主要用於需要鏈接到科學論文、維基百科術語等的英文報告。 一個完整的列表可以是 見會議網站. 網站上的列表將被更新和補充。

萊斯利蘭波特- 問答

19 個九頭蛇頭。 該計劃的精彩概述 Leslie Lamport 是分佈式計算的先驅作者。 乳膠 代表“Lamport TeX”。 早在 1979 年,他就首次提出了這一概念 一貫的一致性, 和他的文章 《如何製作能夠正確執行多進程程序的多處理器計算機》 獲得了迪傑斯特拉獎。

就形式而言,這是該計劃最不尋常的部分,因為它甚至不是報告,而是問答環節。 當相當一部分聽眾已經熟悉(或能夠熟悉)基於蘭波特理論的各種作品、他自己的文章和報告時,將所有可用時間用於直接交流更為重要。

這個想法很簡單——你在 YouTube 上觀看了兩篇報導: “編程應該不僅僅是編碼” и “如果你不是在寫程序,就不要使用編程語言” 並準備至少一個問題,Leslie 回答。

這兩個視頻中的第一個我們已經 變成廢話. 如果您沒有一個小時的時間觀看視頻,您可以快速閱讀所有文本形式的內容。

注意:在 YouTube 上還有更多關於 Leslie Lamport 的視頻。 例如,有一個優秀的 TLA+課程. 整個課程的離線版本可在 作者主頁,並在 YouTube 上,他將其倒出,以便在移動設備上更方便地觀看。

馬丁克萊普曼 - 跨用戶設備同步數據以進行分佈式協作

19 個九頭蛇頭。 該計劃的精彩概述 Martin Kleppmann 是劍橋大學的研究員,致力於 CRDT 和形式算法驗證。 馬丁的書 “設計數據密集型應用程序”,於 2017 年出版,事實證明非常成功,並登上了數據存儲和處理領域的暢銷書榜單。 凱文·斯科特,微軟首席技術官 曾經有人說: “這本書應該是設計工程師的必備書。 這是連接理論和實踐的稀有資源,可幫助開發人員更智能地設計和實施數據基礎架構和系統。” Kafka 的創建者和 Confluent 的 CTO Jay Kreps 也說過類似的話。

在進入學術研究之前,Martin 曾在該行業工作,並與他人共同創立了兩家成功的初創公司:

  • Rapportive,致力於顯示您的電子郵件聯繫人的社交資料,LinkedIn 於 2012 年收購了它;
  • Go Test It,RedGate 於 2009 年購買的多瀏覽器自動網站檢查器。

總的來說,雖然 Martin 的知名度不如我們的 keynoter,但他已經能夠為分佈式計算的發展和行業做出一些貢獻。

在這次演講中,馬丁將談論一個更接近他的學術研究的話題。 在 Google Docs 和類似的共同創作文檔沙發中,“共同創作”意味著複製任務:每個用戶都有自己的共享文檔副本,然後他們修改該副本,所有更改都通過網絡發送給其他人的參與者。 文檔的離線更改導致文檔與其他參與者的臨時不一致,重新同步需要衝突處理。 為此有 無衝突的複製資料類型 (CRDT),其實是一個比較新的東西,它的本質是2011年才制定出來的。 本次演講討論了自那時以來 CRDT 世界發生了什麼,最新的發展是什麼,討論了一般構建本地優先應用程序的方法,以及開源庫的使用 自動合併 特別是。

下週我們將發布關於哈布雷對馬丁的大型採訪,這將很有趣。

佩德羅·拉馬爾赫特 - 免等待數據結構和免等待事務

19 個九頭蛇頭。 該計劃的精彩概述 Pedro 在 Cisco 工作,過去 XNUMX 年一直在開發並行算法,包括同步機制、無鎖和無等待數據結構,以及關於這個主題你能想到的一切。 他目前的研究和工程興趣集中在通用結構、軟件事務內存、持久內存和類似技術上,以實現正確、可擴展和容錯的應用程序。 而且他還是一個在小圈子裡廣為人知的博客的作者 並發怪胎.

大多數多線程應用程序現在都在並行數據結構上運行,從使用參與者之間的消息隊列到鍵值存儲中的索引數據結構。 它們已經在 Java JDK 中成功運行多年,並且正在慢慢添加到 C++ 中。

實現並行數據結構的最簡單方法是串行(單線程)實現,其中方法受互斥鎖保護。 這適用於任何 jun,但存在明顯的縮放和性能問題。 同時,無鎖和無等待數據結構不僅可以更好地處理錯誤,而且還具有更好的性能配置文件——但是,它們的開發需要深厚的專業知識和適應特定用例。 一行錯誤的代碼足以破壞一切。

如何確保即使是非專家也能設計和實現這樣的數據結構? 眾所周知,任何順序算法都可以通過以下方式實現線程安全 通用設計,或事務內存。 一方面,他們可以降低解決這個問題的進入門檻。 然而,這兩種解決方案往往會導致實施效率低下。 Pedro 將談論他們如何設法使這些結構更加高效,以及如何將它們用於他們的算法。

海蒂霍華德- 解放分佈式共識

19 個九頭蛇頭。 該計劃的精彩概述 Heidi Howard 和 Martin 一樣,都是劍橋大學的分佈式系統研究員。 她的專長是一致性、容錯性、性能和分佈式共識。 她最出名的是她對 Paxos 算法的概括,稱為 靈活的Paxos.

回想一下, 的Paxos - 一系列協議,用於解決不可靠計算機網絡中的共識問題,這些協議基於 Leslie Lamport 的工作。 因此,我們的一些演講者正在處理最初由其他演講者提出的任務——這太棒了。

在多個主機之間找到共識的能力——用於尋址、領導者選擇、阻塞或協調——是當今分佈式系統中的一個基本問題。 Paxos是現在解決共識問題的主要方式,圍繞它進行了大量的研究,以期針對各種實際需求對算法進行擴展和優化。

在本報告中,我們將重新審視 Paxos 的理論基礎,放寬初始要求並推廣算法。 事實上,我們將看到 Paxos 只是眾多達成共識的方法中的一種,而范圍內的其他點對於構建良好的分佈式系統也非常有用。

亞歷克斯彼得羅夫 - 通過瞬態復制和廉價仲裁降低存儲成本

19 個九頭蛇頭。 該計劃的精彩概述 Alex 是一名數據庫和存儲專家,更重要的是,他是 卡桑德拉. 他目前正在與 O'Reilly 合作編寫 Database Internals 一書。

對於系統 最終一致性 (用俄語術語——“最後的一致性”),在節點崩潰或網絡分裂後,需要解決以下困境:要么繼續完成請求,犧牲一致性,要么拒絕執行請求並犧牲可用性。 在這樣的系統中,群體、節點的重疊子集以及確保至少一個節點包含最新值,可能是一個很好的邊緣解決方案。 在繼續響應最新值的同時,有可能在失敗和與某些節點的連接丟失時倖存下來。

然而,任何事物都有它的代價。 仲裁複製方案意味著存儲成本增加:您必須一次將冗餘數據存儲在多個節點上,以確保在出現問題時有足夠的副本可用。 事實證明,您無法在所有副本上存儲所有數據。 如果只將數據保留在部分節點上,並使用特殊節點(Transient Replica)進行故障處理場景,則可以減少存儲負載。

在報告過程中,我們將考慮 見證副本, 中使用的複制方案 扳手 и 大型商店,以及這個概念在 Apache Cassandra 中的名稱下的實現 瞬時復制和便宜的法定人數.

德米特里·維尤科夫 - Goroutines暴露

19 個九頭蛇頭。 該計劃的精彩概述 Dmitry 是 Google 的一名開發人員,致力於 C/C++ 和 Go 動態測試 - Address/Memory/ThreadSanitizer 和用於 Linux 內核的類似工具。 他為 Go 貢獻了一個可擴展的 goroutine 調度器、一個網絡輪詢器和一個並行垃圾收集器。 他是多線程專家,十幾種新的非阻塞算法的作者,並且是 黑帶 英特爾。

現在談談報告本身。 Go 語言以 goroutines(輕量級線程)和通道(FIFO 隊列)的形式原生支持多線程。 多虧了這些機制,用戶編寫現代多線程應用程序變得非常輕鬆愉快,看起來就像魔術一樣。 據我們了解,這裡沒有魔法。 在這份報告中,Dmitry 將深入研究 Go 調度程序的複雜性,並展示實現這種“魔法”的秘密。 首先,他將概述調度程序的主要組件及其工作原理。 接下來,我們將仔細研究某些方面,例如停放/停放策略和處理阻塞系統調用。 最後,Dmitry 將談談調度程序中可能的改進。

德米特里·布蓋琴科—— 使用概率草圖等加速分佈式圖分析

19 個九頭蛇頭。 該計劃的精彩概述 Dmitry 從事外包工作近 9 年,一直與大學和科學界保持聯繫。 Odnoklassniki 的大數據分析是他將理論培訓和科學基礎與實際需求產品的開發相結合的獨特機會。

分佈式圖分析一直是並且仍然是一項艱鉅的任務:當需要獲取有關相鄰頂點連接的信息時,數據通常必須在機器之間傳輸,這會導致執行時間增加和網絡負載增加基礎設施。 在本次演講中,我們將了解如何使用概率數據結構或社交網絡中友誼圖的對稱性等事實顯著加快處理速度。 所有這些都通過 Apache Spark 代碼示例進行了說明。

丹尼斯·雷斯托夫 - 通過瞬態復制和廉價仲裁降低存儲成本

19 個九頭蛇頭。 該計劃的精彩概述 丹尼斯 - 開發人員 宇宙數據庫,一致性模型驗證、共識算法和分佈式事務方面的專家。 現在在微軟工作,之前在亞馬遜和Yandex從事分佈式系統方面的工作。

在本報告中,我們將熟悉過去幾年發明的分佈式事務協議,這些協議可以在支持條件更新(比較和設置)的任何數據存儲之上的客戶端實施。 最重要的是,生命不會以兩階段提交結束,事務可以添加到任何數據庫之上——在應用程序級別,但不同的協議(2PC、Percolator、RAMP)有不同的權衡,沒有給我們免費。

阿列克謝季諾維也夫 - 並非所有 ML 算法最終都會進入分佈式天堂

19 個九頭蛇頭。 該計劃的精彩概述 阿列克謝 (扎列斯拉夫) 是我們的長期發言人和其他會議的程序委員會成員。 EPAM Systems實習培訓師,2012年開始接觸Hadoop/Spark等大數據。

在本次演講中,Alexey 將根據他在 Apache Spark ML、Apache Mahout、Apache Flink ML 和創建 Apache Ignite ML 方面的經驗,討論將經典機器學習算法應用於分佈式執行的問題。 Alexey 還將討論分佈式 ML 算法在這些框架中的實現。

最後,來自 Yandex 的兩份關於 Yandex 數據庫的報告。

弗拉季斯拉夫·庫茲涅佐夫 — Yandex 數據庫 - 我們如何提供容錯

19 個九頭蛇頭。 該計劃的精彩概述 Vladislav 是 Yandex 分佈式平台組的一名開發人員。 Yandex 數據庫是一種水平可擴展、地理分佈、容錯的 DBMS,可以承受磁盤、服務器、機架和數據中心的故障,而不會影響一致性。 為了確保容錯性,使用了專有的分佈式共識算法,以及許多技術解決方案,這些在報告中進行了詳細討論。 該報告可能對 DBMS 開發人員和基於 DBMS 的應用解決方案開發人員都感興趣。

謝苗切切林達 - YDB 中的分佈式事務

19 個九頭蛇頭。 該計劃的精彩概述 Semyon 是 Yandex 分佈式平台組的一名開發人員,致力於研究 YDB 安裝的多租戶使用的可能性。

Yandex 數據庫專為 OLTP 查詢而設計,滿足事務系統的 ACID 要求。 在報告中,我們將考慮 YDB 事務系統底層的事務調度算法。 我們來分析一下哪些實體參與了交易,誰為交易分配了一個全局順序,交易的原子性、可靠性和嚴格的隔離級別是如何實現的。 以常見任務為例,讓我們考慮使用兩階段提交和確定性事務來實現事務。 讓我們討論一下它們的區別。

接下來是什麼?

會議計劃繼續充滿新的報告。 特別是,我們期待一份來自 尼基塔·科瓦爾 (恩科瓦爾) 來自 JetBrains 和 奧列格·阿納斯塔西耶夫 (萌萌噠) 來自 Odnoklassniki。 Nikita 在 Kotlin 團隊從事協程算法的研究,Oleg 在 Odnoklassniki 平台為高負載系統開發架構和解決方案。 此外,還有 1 個有條件的空位,項目委員會正在為候選人工作。

Hydra 會議將於 11 月 12 日至 XNUMX 日在聖彼得堡舉行。 門票可以 官網購買. 請注意在線門票的可用性 - 如果由於某種原因您這幾天無法現場直播聖彼得堡。

九頭蛇見!

來源: www.habr.com

添加評論