11月12-XNUMX日,將在聖彼得堡召開會議
Hydra 是我們近年來最重要的會議之一。 在此之前進行了非常認真的準備、發言人的選擇和報告。 關於上週
我們
動機
如果您正在編程,那麼您將以某種方式處理多線程和分佈式計算。 相關領域的專家直接與他們合作,但隱含地,分佈從各個方面看著我們:在任何多核計算機或分佈式服務中,都有一些東西可以並行執行計算。
有許多會議涵蓋了應用程序編程的某些方面。 另一方面,我們有特殊的科學學校,以講座的形式揭示了大量複雜的理論。 例如,與聖彼得堡的九頭蛇並行,
想一想:我們生活在一個美好的時代,您可以在這個時代現場見到我們所從事的科學和工程領域的創始人。 物理學家不會遇到牛頓或愛因斯坦——火車已經開走了。 但是,那些創建分佈式系統理論基礎、發明流行編程語言並首次將所有這些體現在工作原型中的人仍然生活在我們身邊。 這些人並沒有中途辭掉工作,目前正在世界知名大學和公司從事現實工作,是當今最大的知識和經驗來源。
另一方面,與他們見面的機會通常仍然純粹是理論上的:我們中很少有人能夠不斷地關注羅徹斯特大學的一些公共事件,然後趕往美國並返回邁克爾斯科特的講座。 訪問 Hydra 的所有成員通常是一筆不小的財富,除了花費的時間深淵(儘管這聽起來像是一個有趣的任務)。
另一方面,我們現在有很多頂級工程師正在研究分佈式系統的實際問題,他們肯定有話要說。 但問題是——他們 工作他們的時間很寶貴。 是的,如果你是微軟、谷歌或 JetBrains 的員工,在內部活動中遇到一位知名演講者的可能性會大大增加,但總的來說 - 不,它不會每天都發生。
通過這種方式,九頭蛇會議完成了一項我們大多數人無法獨自完成的重要任務——在一個地方和一個時間,將人們聚集在一起,他們的想法或與他們的交流可以改變你的生活。 我承認並不是每個人都需要分佈式系統,一些複雜的基礎性東西。 您可以在餘生中用 PHP 編寫 CRUD 程序,並且完全快樂。 但誰需要它 - 這是你的機會。
自從第一次宣佈在哈布雷舉行的九頭蛇會議以來,已經過去了很長一段時間。 在這段時間裡,已經完成了很多工作——現在,我們有了幾乎所有報告的清單。 沒有呆滯的單線程算法,只有純粹的分佈式硬核! 讓我們以一般性的話結束,看看我們現在手頭有什麼。
主題演講
主題演講開始和結束會議的日子。 通常開幕主題演講的目的是確定會議的總體精神和方向。 閉幕主題演講劃清界線,並解釋了我們如何使用在會議期間獲得的知識和技能。 開始和結束:記憶最好的東西,一般來說,具有更高的價值。
懸崖點擊- H2O分佈式K/V算法
Cliff 是 Java 世界的傳奇人物。 在 90 年代後期,為了完成博士論文,他寫了一篇名為
在開幕主題演講中,克里夫將談論他的另一項事業——
Cliff 的另一個演講是
最有趣的部分開始於他們為大企業製造硬件——一台運行 Java 的超級計算機。 這是一個非常有創意的東西,專門為 Java 量身定做,它有特殊的要求——用於讀取低暫停垃圾收集的內存障礙、具有邊界檢查的數組、虛擬調用……最酷的技術之一是硬件事務內存。 1 個內核中的任何一個的整個 L864 都可以參與事務寫入,這對於在 Java 中使用鎖尤為重要(同步塊可以並行工作,只要沒有真正的內存衝突)。 但美好的想法與嚴酷的現實相撞——在這份報告中,Cliff 將告訴您為什麼 HTM 和 STM 不能很好地適應多線程計算的實際需求。
邁克爾斯科特- 雙數據結構
由於教科書,全世界都知道邁克爾
至於 Java 世界,這是一個特例:他與 Doug Lea 一起開發了 Java 庫運行的那些非阻塞算法和同步隊列。 這就是“雙數據結構”主題演講的主題——在 Java SE 6 中引入這些結構使我們的性能提高了 10 倍 java.util.concurrent.ThreadPoolExecutor
. 如果您事先對這些“雙重數據結構”是什麼感興趣,那麼這裡有
莫里斯·赫利希- 區塊鍊和分佈式計算的未來
在本次閉幕主題演講中,Maurice 將從分佈式計算經典的角度講述區塊鏈分佈式系統的理論與實踐,以及它如何簡化許多相關問題。 這份報告專門針對會議的主題——根本不是關於挖礦炒作,而是關於我們的知識如何能夠驚人地有效和適當地用於各種任務。
2017年XNUMX月,Maurice已經來到俄羅斯SPTDC學校,參加了JUG.ru meetup,視頻可以在YouTube上觀看:
主程序
然後將對計劃中包含的報告進行簡短審查。 此處對一些報告進行了詳細描述,另一些則進行了簡要描述。 長篇描述主要用於需要鏈接到科學論文、維基百科術語等的英文報告。 一個完整的列表可以是
萊斯利蘭波特- 問答
Leslie Lamport 是分佈式計算的先驅作者。
就形式而言,這是該計劃最不尋常的部分,因為它甚至不是報告,而是問答環節。 當相當一部分聽眾已經熟悉(或能夠熟悉)基於蘭波特理論的各種作品、他自己的文章和報告時,將所有可用時間用於直接交流更為重要。
這個想法很簡單——你在 YouTube 上觀看了兩篇報導:
這兩個視頻中的第一個我們已經
注意:在 YouTube 上還有更多關於 Leslie Lamport 的視頻。 例如,有一個優秀的
馬丁克萊普曼 - 跨用戶設備同步數據以進行分佈式協作
Martin Kleppmann 是劍橋大學的研究員,致力於 CRDT 和形式算法驗證。 馬丁的書
在進入學術研究之前,Martin 曾在該行業工作,並與他人共同創立了兩家成功的初創公司:
- Rapportive,致力於顯示您的電子郵件聯繫人的社交資料,LinkedIn 於 2012 年收購了它;
- Go Test It,RedGate 於 2009 年購買的多瀏覽器自動網站檢查器。
總的來說,雖然 Martin 的知名度不如我們的 keynoter,但他已經能夠為分佈式計算的發展和行業做出一些貢獻。
在這次演講中,馬丁將談論一個更接近他的學術研究的話題。 在 Google Docs 和類似的共同創作文檔沙發中,“共同創作”意味著複製任務:每個用戶都有自己的共享文檔副本,然後他們修改該副本,所有更改都通過網絡發送給其他人的參與者。 文檔的離線更改導致文檔與其他參與者的臨時不一致,重新同步需要衝突處理。 為此有
下週我們將發布關於哈布雷對馬丁的大型採訪,這將很有趣。
佩德羅·拉馬爾赫特 - 免等待數據結構和免等待事務
Pedro 在 Cisco 工作,過去 XNUMX 年一直在開發並行算法,包括同步機制、無鎖和無等待數據結構,以及關於這個主題你能想到的一切。 他目前的研究和工程興趣集中在通用結構、軟件事務內存、持久內存和類似技術上,以實現正確、可擴展和容錯的應用程序。 而且他還是一個在小圈子裡廣為人知的博客的作者
大多數多線程應用程序現在都在並行數據結構上運行,從使用參與者之間的消息隊列到鍵值存儲中的索引數據結構。 它們已經在 Java JDK 中成功運行多年,並且正在慢慢添加到 C++ 中。
實現並行數據結構的最簡單方法是串行(單線程)實現,其中方法受互斥鎖保護。 這適用於任何 jun,但存在明顯的縮放和性能問題。 同時,無鎖和無等待數據結構不僅可以更好地處理錯誤,而且還具有更好的性能配置文件——但是,它們的開發需要深厚的專業知識和適應特定用例。 一行錯誤的代碼足以破壞一切。
如何確保即使是非專家也能設計和實現這樣的數據結構? 眾所周知,任何順序算法都可以通過以下方式實現線程安全
海蒂霍華德- 解放分佈式共識
Heidi Howard 和 Martin 一樣,都是劍橋大學的分佈式系統研究員。 她的專長是一致性、容錯性、性能和分佈式共識。 她最出名的是她對 Paxos 算法的概括,稱為
回想一下,
在多個主機之間找到共識的能力——用於尋址、領導者選擇、阻塞或協調——是當今分佈式系統中的一個基本問題。 Paxos是現在解決共識問題的主要方式,圍繞它進行了大量的研究,以期針對各種實際需求對算法進行擴展和優化。
在本報告中,我們將重新審視 Paxos 的理論基礎,放寬初始要求並推廣算法。 事實上,我們將看到 Paxos 只是眾多達成共識的方法中的一種,而范圍內的其他點對於構建良好的分佈式系統也非常有用。
亞歷克斯彼得羅夫 - 通過瞬態復制和廉價仲裁降低存儲成本
Alex 是一名數據庫和存儲專家,更重要的是,他是
對於系統
然而,任何事物都有它的代價。 仲裁複製方案意味著存儲成本增加:您必須一次將冗餘數據存儲在多個節點上,以確保在出現問題時有足夠的副本可用。 事實證明,您無法在所有副本上存儲所有數據。 如果只將數據保留在部分節點上,並使用特殊節點(Transient Replica)進行故障處理場景,則可以減少存儲負載。
在報告過程中,我們將考慮
德米特里·維尤科夫 - Goroutines暴露
Dmitry 是 Google 的一名開發人員,致力於 C/C++ 和 Go 動態測試 - Address/Memory/ThreadSanitizer 和用於 Linux 內核的類似工具。 他為 Go 貢獻了一個可擴展的 goroutine 調度器、一個網絡輪詢器和一個並行垃圾收集器。 他是多線程專家,十幾種新的非阻塞算法的作者,並且是
現在談談報告本身。 Go 語言以 goroutines(輕量級線程)和通道(FIFO 隊列)的形式原生支持多線程。 多虧了這些機制,用戶編寫現代多線程應用程序變得非常輕鬆愉快,看起來就像魔術一樣。 據我們了解,這裡沒有魔法。 在這份報告中,Dmitry 將深入研究 Go 調度程序的複雜性,並展示實現這種“魔法”的秘密。 首先,他將概述調度程序的主要組件及其工作原理。 接下來,我們將仔細研究某些方面,例如停放/停放策略和處理阻塞系統調用。 最後,Dmitry 將談談調度程序中可能的改進。
德米特里·布蓋琴科—— 使用概率草圖等加速分佈式圖分析
Dmitry 從事外包工作近 9 年,一直與大學和科學界保持聯繫。 Odnoklassniki 的大數據分析是他將理論培訓和科學基礎與實際需求產品的開發相結合的獨特機會。
分佈式圖分析一直是並且仍然是一項艱鉅的任務:當需要獲取有關相鄰頂點連接的信息時,數據通常必須在機器之間傳輸,這會導致執行時間增加和網絡負載增加基礎設施。 在本次演講中,我們將了解如何使用概率數據結構或社交網絡中友誼圖的對稱性等事實顯著加快處理速度。 所有這些都通過 Apache Spark 代碼示例進行了說明。
丹尼斯·雷斯托夫 - 通過瞬態復制和廉價仲裁降低存儲成本
丹尼斯 - 開發人員
在本報告中,我們將熟悉過去幾年發明的分佈式事務協議,這些協議可以在支持條件更新(比較和設置)的任何數據存儲之上的客戶端實施。 最重要的是,生命不會以兩階段提交結束,事務可以添加到任何數據庫之上——在應用程序級別,但不同的協議(2PC、Percolator、RAMP)有不同的權衡,沒有給我們免費。
阿列克謝季諾維也夫 - 並非所有 ML 算法最終都會進入分佈式天堂
阿列克謝 (
在本次演講中,Alexey 將根據他在 Apache Spark ML、Apache Mahout、Apache Flink ML 和創建 Apache Ignite ML 方面的經驗,討論將經典機器學習算法應用於分佈式執行的問題。 Alexey 還將討論分佈式 ML 算法在這些框架中的實現。
最後,來自 Yandex 的兩份關於 Yandex 數據庫的報告。
弗拉季斯拉夫·庫茲涅佐夫 — Yandex 數據庫 - 我們如何提供容錯
Vladislav 是 Yandex 分佈式平台組的一名開發人員。 Yandex 數據庫是一種水平可擴展、地理分佈、容錯的 DBMS,可以承受磁盤、服務器、機架和數據中心的故障,而不會影響一致性。 為了確保容錯性,使用了專有的分佈式共識算法,以及許多技術解決方案,這些在報告中進行了詳細討論。 該報告可能對 DBMS 開發人員和基於 DBMS 的應用解決方案開發人員都感興趣。
謝苗切切林達 - YDB 中的分佈式事務
Semyon 是 Yandex 分佈式平台組的一名開發人員,致力於研究 YDB 安裝的多租戶使用的可能性。
Yandex 數據庫專為 OLTP 查詢而設計,滿足事務系統的 ACID 要求。 在報告中,我們將考慮 YDB 事務系統底層的事務調度算法。 我們來分析一下哪些實體參與了交易,誰為交易分配了一個全局順序,交易的原子性、可靠性和嚴格的隔離級別是如何實現的。 以常見任務為例,讓我們考慮使用兩階段提交和確定性事務來實現事務。 讓我們討論一下它們的區別。
接下來是什麼?
會議計劃繼續充滿新的報告。 特別是,我們期待一份來自 尼基塔·科瓦爾 (
Hydra 會議將於 11 月 12 日至 XNUMX 日在聖彼得堡舉行。 門票可以
九頭蛇見!
來源: www.habr.com