19 đầu hydra. Tổng quan tuyệt vời của chương trình

Một hội nghị sẽ diễn ra vào ngày 11-12 tháng XNUMX tại St. Petersburg vật khó trừ tuyệt, dành riêng cho việc phát triển các hệ thống song song và phân tán. Bí quyết của Hydra là nó hợp nhất các nhà khoa học giỏi (những người thường chỉ có thể tìm thấy tại các hội nghị khoa học nước ngoài) và các kỹ sư hành nghề nổi tiếng vào một chương trình lớn ở điểm giao thoa giữa khoa học và thực hành.

Hydra là một trong những hội nghị quan trọng nhất của chúng tôi trong vài năm qua. Trước đó là sự chuẩn bị, lựa chọn diễn giả và báo cáo rất nghiêm túc. Tuần trước về điều này cuộc phỏng vấn habro đã diễn ra với giám đốc của Tập đoàn JUG.ru, Alexey Fedorov (23derevo).

Chúng tôi đã nói rồi về ba người tham gia quan trọng, những người sáng lập lý thuyết hệ thống phân tán - Leslie Lamport, Maurice Herlihy và Michael Scott. Đã đến lúc nói chi tiết hơn về toàn bộ chương trình!

19 đầu hydra. Tổng quan tuyệt vời của chương trình

Động lực

Nếu bạn tham gia vào lĩnh vực lập trình thì bằng cách này hay cách khác bạn đang xử lý tính toán đa luồng và phân tán. Các chuyên gia trong các lĩnh vực liên quan làm việc trực tiếp với họ, nhưng ngầm hiểu, việc phân phối đang nhìn chúng tôi từ mọi nơi: trong bất kỳ máy tính đa lõi hoặc dịch vụ phân tán nào cũng có thứ gì đó thực hiện các phép tính song song.

Có nhiều hội nghị đề cập đến các khía cạnh khác nhau của lập trình ứng dụng. Ở phía bên kia của quang phổ, chúng ta có các trường khoa học chuyên ngành tiết lộ lượng lớn lý thuyết phức tạp dưới dạng bài giảng. Ví dụ, song song với Hydra ở St. Petersburg còn có trường SPTDC. Tại hội nghị Hydra, chúng tôi đã cố gắng tập hợp các phương pháp thực hành khắc nghiệt, khoa học và mọi thứ ở điểm giao nhau của chúng.

Hãy nghĩ về điều này: chúng ta đang sống trong một thời đại tuyệt vời khi bạn có thể gặp trực tiếp những người sáng lập lĩnh vực khoa học và kỹ thuật mà chúng ta nghiên cứu. Các nhà vật lý sẽ không gặp Newton hay Einstein - đoàn tàu đã rời bến. Nhưng bên cạnh chúng ta vẫn còn sống những người đã tạo ra nền tảng của lý thuyết về hệ thống phân tán, phát minh ra các ngôn ngữ lập trình phổ biến và lần đầu tiên thể hiện tất cả những điều này trong các nguyên mẫu đang hoạt động. Những người này đã không bỏ việc giữa chừng, họ hiện đang giải quyết các vấn đề cấp bách tại các trường đại học và công ty nổi tiếng thế giới, đồng thời là nguồn kiến ​​thức và kinh nghiệm lớn nhất hiện nay.

Mặt khác, cơ hội gặp gỡ họ thường chỉ thuần túy là lý thuyết: ít người trong chúng ta có thể liên tục theo dõi các sự kiện công cộng tại một số trường Đại học Rochester, sau đó vội vã sang Mỹ và quay lại để nghe bài giảng của Michael Scott. Việc đến thăm tất cả các thành viên Hydra sẽ tiêu tốn một khoản tài sản nhỏ, chưa tính đến khoảng thời gian lãng phí (mặc dù nghe có vẻ là một nhiệm vụ thú vị).

Mặt khác, hiện tại chúng tôi có nhiều kỹ sư hàng đầu đang giải quyết các vấn đề cấp bách trong hệ thống phân tán và họ chắc chắn có rất nhiều điều để nói. Nhưng đây là vấn đề - họ trò chơi điện tử, và thời gian của họ rất có giá trị. Có, nếu bạn là nhân viên của Microsoft, Google hoặc JetBrains, khả năng gặp một trong những diễn giả nổi tiếng tại một sự kiện nội bộ sẽ tăng mạnh, nhưng nhìn chung, không, điều này không xảy ra hàng ngày.

Bằng cách này, Hội nghị Hydra hoàn thành một nhiệm vụ quan trọng mà hầu hết chúng ta không thể tự mình thực hiện - ở một nơi và cùng một lúc, hội nghị tập hợp những người có ý tưởng hoặc sự tương tác có thể thay đổi cuộc sống của bạn. Tôi thừa nhận rằng không phải ai cũng cần hệ thống phân tán hoặc một số thứ cơ bản phức tạp. Bạn có thể lập trình CRUD bằng PHP trong suốt quãng đời còn lại của mình mà vẫn hoàn toàn hạnh phúc. Nhưng ai cần thì đây chính là cơ hội của bạn.

Đã khá lâu trôi qua kể từ thông báo đầu tiên về hội nghị Hydra ở Habré. Trong thời gian này, rất nhiều công việc đã được thực hiện - và bây giờ chúng tôi có danh sách gần như tất cả các báo cáo. Không có thuật toán đơn luồng chậm chạp, chỉ có phần cứng được phân phối thuần túy! Hãy kết thúc bằng những từ chung chung và xem bây giờ chúng ta có những gì trong tay.

Bài phát biểu

Bài phát biểu bắt đầu và kết thúc những ngày diễn ra hội nghị. Thông thường, mục đích của bài phát biểu khai mạc là xác định tinh thần và phương hướng chung của hội nghị. Bài phát biểu kết thúc đưa ra một dòng và giải thích cách chúng ta có thể sống với những kiến ​​thức và kỹ năng thu được trong hội nghị. Phần đầu và phần cuối: điều gì được ghi nhớ tốt nhất và nói chung, có ý nghĩa ngày càng tăng.

cú nhấp chuột vào vách đá Thuật toán K/V phân bố H2O

19 đầu hydra. Tổng quan tuyệt vời của chương trình Cliff là một huyền thoại trong thế giới Java. Vào cuối những năm 90, để hoàn thành luận án tiến sĩ, ông đã viết một bài báo có tựa đề "Kết hợp phân tích, kết hợp tối ưu hóa", một thời gian sau đã trở thành nền tảng cho Trình biên dịch máy chủ HotSpot JVM. Hai năm sau, anh ấy đã làm việc tại Sun Microsystems về JVM và cho cả thế giới thấy rằng JIT có quyền tồn tại. Toàn bộ câu chuyện về cách Java trở thành một trong những thời gian chạy hiện đại nhanh nhất với khả năng tối ưu hóa nhanh nhất và thông minh nhất đều đến từ Cliff Click. Ngay từ đầu, người ta tin rằng nếu trình biên dịch tĩnh có thể truy cập được thứ gì đó, thì bạn thậm chí không cần phải cố gắng loại bỏ nó. Nhờ công việc của Cliff và nhóm, tất cả các ngôn ngữ mới bắt đầu được tạo ra với ý tưởng biên dịch JIT theo mặc định. Tất nhiên, đây không phải là công việc của một người, nhưng Cliff đóng một vai trò rất quan trọng trong đó.

Trong bài phát biểu mở đầu, Cliff sẽ nói về nỗ lực khác của anh ấy - H20, một nền tảng trong bộ nhớ dành cho máy học phân tán và có thể mở rộng cho các ứng dụng công nghiệp. Hay chính xác hơn là về việc lưu trữ phân tán các cặp khóa-giá trị bên trong nó. Đây là nơi lưu trữ rất nhanh với nhiều thuộc tính thú vị (danh sách chính xác có trong Sự miêu tả), cho phép sử dụng các giải pháp tương tự trong toán học truyền dữ liệu lớn.

Một báo cáo khác mà Cliff sẽ đưa ra là - Trải nghiệm bộ nhớ giao dịch phần cứng Azul. Một phần khác trong tiểu sử của ông - mười năm làm việc tại Azul, nơi anh ấy đã cập nhật và cải tiến nhiều thứ trong nhóm công nghệ và phần cứng Azul: trình biên dịch JIT, thời gian chạy, mô hình luồng, xử lý lỗi, xử lý ngăn xếp, ngắt phần cứng, tải lớp, v.v. - bạn sẽ có được ý tưởng.

Phần thú vị nhất bắt đầu khi họ chế tạo phần cứng cho một doanh nghiệp lớn - siêu máy tính chạy Java. Đó là một thứ khá sáng tạo, được thiết kế riêng cho Java, có các yêu cầu đặc biệt - đọc các rào cản bộ nhớ để thu gom rác có thời gian tạm dừng thấp, mảng có kiểm tra giới hạn, cuộc gọi ảo... Một trong những công nghệ thú vị nhất là bộ nhớ giao dịch phần cứng. Toàn bộ L1 của bất kỳ lõi nào trong số 864 lõi đều có thể tham gia ghi giao dịch, điều này đặc biệt quan trọng khi làm việc với các khóa trong Java (các khối được đồng bộ hóa có thể hoạt động song song miễn là không có xung đột bộ nhớ thực). Nhưng ý tưởng hay ho đã bị thực tế khắc nghiệt đè bẹp - và trong bài nói chuyện này, Cliff sẽ cho bạn biết lý do tại sao HTM và STM không phù hợp lắm với nhu cầu thực tế của điện toán đa luồng.

Michael Scott - Cấu trúc dữ liệu kép

19 đầu hydra. Tổng quan tuyệt vời của chương trình Micheal Scott - Giáo sư Khoa học Máy tính tại Đại học Rochester, người đã gắn kết ông với số phận đã 34 tuổi rồi, và tại quê nhà Đại học Wisconsin–Madison, ông là trưởng khoa trong XNUMX năm. Ông nghiên cứu và giảng dạy sinh viên về lập trình song song và phân tán cũng như thiết kế ngôn ngữ.

Cả thế giới biết đến Michael nhờ sách giáo khoa "Ngôn ngữ lập trình thực dụng", phiên bản mới nhất được xuất bản tương đối gần đây - vào năm 2015. Công việc của anh ấy "Thuật toán đồng bộ hóa có thể mở rộng trên bộ đa xử lý bộ nhớ dùng chung" nhận Giải thưởng Dijkstra là một trong những công ty nổi tiếng nhất trong lĩnh vực điện toán phân tán và nói dối công khai tại Thư viện trực tuyến của Đại học Rochester. Bạn cũng có thể biết đến anh ấy với tư cách là tác giả của thuật toán Michael-Scott từ "Thuật toán xếp hàng đồng thời không chặn và chặn đơn giản, nhanh chóng và thiết thực".

Đối với thế giới Java, đây là một trường hợp đặc biệt: cùng với Doug Lea, ông đã phát triển các thuật toán không chặn và hàng đợi đồng bộ mà các thư viện Java hoạt động trên đó. Đây chính xác là nội dung bài phát biểu quan trọng về “Cấu trúc dữ liệu kép” - việc giới thiệu các cấu trúc này trong Java SE 6 đã cải thiện hiệu suất lên 10 lần java.util.concurrent.ThreadPoolExecutor. Nếu bạn đang thắc mắc trước những “Cấu trúc dữ liệu kép” này là gì thì đã có thông tin về nó công việc có liên quan.

Maurice Herlihy - Chuỗi khối và tương lai của điện toán phân tán

19 đầu hydra. Tổng quan tuyệt vời của chương trình Maurice Herlihy - người đoạt hai giải Dijkstra. Cái đầu tiên là dành cho công việc "Đồng bộ hóa không chờ đợi" (Đại học Brown), và trường thứ hai, gần đây hơn - "Bộ nhớ giao dịch: Hỗ trợ kiến ​​trúc cho cấu trúc dữ liệu không khóa" (Đại học Công nghệ Virginia). Giải thưởng Dijkstra công nhận công trình có tầm quan trọng và tác động rõ ràng trong ít nhất mười năm, và Maurice rõ ràng là một trong những chuyên gia nổi tiếng nhất trong lĩnh vực này. Ông hiện đang làm giáo sư tại Đại học Brown và có một danh sách thành tích dài cả đoạn văn.

Trong bài phát biểu kết thúc này, Maurice sẽ nói về lý thuyết và thực tiễn của các hệ thống phân tán blockchain từ quan điểm kinh điển của điện toán phân tán và cách nó đơn giản hóa nhiều vấn đề liên quan. Đây là báo cáo dành riêng cho chủ đề của hội nghị - hoàn toàn không phải về cường điệu khai thác mà là về cách sử dụng kiến ​​thức của chúng ta một cách hiệu quả và phù hợp một cách đáng kinh ngạc liên quan đến nhiều nhiệm vụ khác nhau.

Vào tháng 2017 năm XNUMX, Maurice đã đến Nga để theo học trường SPTDC, tham gia cuộc gặp gỡ JUG.ru và có thể xem đoạn ghi âm trên YouTube:

Chương trình chính

Tiếp theo sẽ có phần tổng quan ngắn gọn về các báo cáo có trong chương trình. Một số báo cáo được mô tả ở đây một cách chi tiết, một số khác thì ngắn gọn hơn. Các mô tả dài chủ yếu dành cho các báo cáo bằng tiếng Anh yêu cầu liên kết đến các bài báo khoa học, thuật ngữ trên Wikipedia, v.v. Danh sách đầy đủ có sẵn xem trên trang web hội nghị. Danh sách trên website sẽ được cập nhật và bổ sung.

Leslie Lamport - Hỏi và đáp

19 đầu hydra. Tổng quan tuyệt vời của chương trình Leslie Lamport là tác giả của các công trình quan trọng về điện toán phân tán. "Mủ cao su" là viết tắt của "Lamport TeX". Chính ông là người đầu tiên đưa ra khái niệm này vào năm 1979 nhất quán nhất quán, và bài báo của anh ấy "Cách tạo một máy tính đa xử lý thực thi chính xác các chương trình đa xử lý" nhận được giải Dijkstra.

Đây là phần khác thường nhất của chương trình về mặt hình thức, bởi vì nó thậm chí không phải là một bản báo cáo mà là một phần hỏi đáp. Khi một bộ phận đáng kể khán giả đã quen thuộc (hoặc có thể quen thuộc) với tất cả các loại tác phẩm dựa trên “lý thuyết của Lamport”, các bài báo và báo cáo của chính ông, điều quan trọng hơn là dành toàn bộ thời gian có sẵn cho việc giao tiếp trực tiếp.

Ý tưởng rất đơn giản - bạn xem hai báo cáo trên YouTube: "Lập trình không chỉ là viết mã" и "Nếu bạn không viết chương trình, đừng sử dụng ngôn ngữ lập trình" và chuẩn bị ít nhất một câu hỏi và Leslie sẽ trả lời.

Video đầu tiên trong số hai video này chúng tôi đã có biến thành một bài viết habro. Nếu bạn không có một giờ để xem video, bạn có thể đọc nhanh tất cả dưới dạng văn bản.

Lưu ý: Còn rất nhiều video về Leslie Lamport trên YouTube. Ví dụ, có một điều tuyệt vời khóa học TLA+. Phiên bản ngoại tuyến của toàn bộ khóa học này có sẵn tại trang chủ của tác giảvà anh ấy đã tải nó lên YouTube để xem dễ dàng hơn trên thiết bị di động.

Martin Kleppmann - Đồng bộ hóa dữ liệu trên các thiết bị người dùng để cộng tác phân tán

19 đầu hydra. Tổng quan tuyệt vời của chương trình Martin Kleppmann là nhà nghiên cứu tại Đại học Cambridge đang nghiên cứu về CRDT và xác minh chính thức các thuật toán. cuốn sách của Martin "Thiết kế các ứng dụng sử dụng nhiều dữ liệu", xuất bản năm 2017, đã tỏ ra rất thành công và lọt vào danh sách bán chạy nhất trong lĩnh vực lưu trữ và xử lý dữ liệu. Kevin Scott, CTO tại Microsoft, đã từng nói: “Cuốn sách này đáng lẽ phải có đối với các kỹ sư phần mềm. Đây là nguồn tài nguyên hiếm có kết hợp lý thuyết và thực hành để giúp các nhà phát triển thông minh hơn trong việc thiết kế và triển khai cơ sở hạ tầng cũng như hệ thống dữ liệu.” Người tạo ra Kafka và CTO của Confluent, Jay Kreps, cũng nói điều tương tự.

Trước khi chuyển sang nghiên cứu học thuật, Martin đã làm việc trong ngành công nghiệp và đồng sáng lập hai công ty khởi nghiệp thành công:

  • Có tính tương tác, chuyên hiển thị hồ sơ xã hội của các địa chỉ liên hệ từ email của bạn mà LinkedIn đã mua vào năm 2012;
  • Go Test It, một dịch vụ tự động kiểm tra các trang web trên nhiều trình duyệt khác nhau mà RedGate đã mua vào năm 2009.

Nói chung, Martin, mặc dù ít nổi tiếng hơn bài phát biểu của chúng tôi, nhưng đã có thể đóng góp một số cho sự phát triển của điện toán phân tán và cho ngành công nghiệp.

Trong buổi nói chuyện này, Martin sẽ nói về một chủ đề gần gũi hơn với nghiên cứu học thuật của anh ấy. Trong Google Docs và các ghế sofa đồng chỉnh sửa tài liệu tương tự, "chỉnh sửa cộng tác" đề cập đến tác vụ sao chép: mỗi người dùng có bản sao tài liệu được chia sẻ của riêng họ, sau đó họ sửa đổi và tất cả các thay đổi sẽ được gửi qua mạng tới phần còn lại của những người tham gia. Những thay đổi đối với tài liệu ngoại tuyến dẫn đến sự không nhất quán tạm thời của tài liệu so với những người tham gia khác và việc đồng bộ hóa lại yêu cầu xử lý xung đột. Đó chính xác là lý do họ tồn tại Loại dữ liệu được sao chép không có xung đột (CRDT), trên thực tế, là một thứ khá mới, bản chất của nó chỉ được hình thành vào năm 2011. Buổi nói chuyện này thảo luận về những gì đã xảy ra kể từ đó trong thế giới CRDT, những tiến bộ gần đây nhất là gì, cách tiếp cận để tạo các ứng dụng cục bộ đầu tiên nói chung và việc sử dụng thư viện nguồn mở Tự động hóa đặc biệt.

Tuần tới chúng tôi sẽ xuất bản một cuộc phỏng vấn dài với Martin trên Habré, nó sẽ rất thú vị.

Pedro Ramalhete - Cấu trúc dữ liệu không chờ đợi và giao dịch không chờ đợi

19 đầu hydra. Tổng quan tuyệt vời của chương trình Pedro làm việc tại Cisco và đã phát triển các thuật toán song song trong khoảng mười năm qua, bao gồm cơ chế đồng bộ hóa, cấu trúc dữ liệu không khóa và không chờ đợi cũng như mọi thứ bạn có thể tưởng tượng về chủ đề này. Mối quan tâm nghiên cứu và kỹ thuật hiện tại của ông tập trung vào Công trình phổ quát, Bộ nhớ giao dịch phần mềm, Bộ nhớ liên tục và các công nghệ tương tự cho phép các ứng dụng chính xác, có thể mở rộng và có khả năng chịu lỗi. Anh ấy cũng là tác giả của một blog được biết đến rộng rãi trong giới hạn hẹp Đồng tiền kỳ quái.

Hầu hết các ứng dụng đa luồng hiện nay chạy trên các cấu trúc dữ liệu song song, từ việc sử dụng hàng đợi tin nhắn giữa các tác nhân đến cấu trúc dữ liệu được lập chỉ mục trong các kho lưu trữ khóa-giá trị. Chúng đã hoạt động thành công trong Java JDK trong nhiều năm và đang dần được thêm vào C++.

Cách đơn giản nhất để triển khai cấu trúc dữ liệu song song là triển khai tuần tự (đơn luồng) trong đó các phương thức được bảo vệ bởi mutexes. Điều này có thể truy cập được vào bất kỳ tháng XNUMX nào, nhưng rõ ràng có vấn đề về quy mô và hiệu suất. Đồng thời, cấu trúc dữ liệu không khóa và không chờ đợi không chỉ xử lý lỗi tốt hơn mà còn có hồ sơ hiệu suất tốt hơn - tuy nhiên, việc phát triển chúng đòi hỏi chuyên môn sâu và khả năng thích ứng với một ứng dụng cụ thể. Một dòng mã sai cũng đủ phá vỡ mọi thứ.

Làm cách nào chúng ta có thể làm điều đó để ngay cả một người không phải là chuyên gia cũng có thể thiết kế và triển khai các cấu trúc dữ liệu như vậy? Người ta biết rằng bất kỳ thuật toán tuần tự nào cũng có thể được làm cho luồng an toàn bằng cách sử dụng một trong hai thiết kế toàn cầuhoặc bộ nhớ giao dịch. Thứ nhất, họ có thể hạ thấp rào cản gia nhập để giải quyết vấn đề này. Tuy nhiên, cả hai giải pháp thường dẫn đến việc thực hiện không hiệu quả. Pedro sẽ nói về cách họ cố gắng làm cho những thiết kế này hiệu quả hơn và cách bạn có thể sử dụng chúng cho các thuật toán của mình.

Heidi Howard - Giải phóng sự đồng thuận phân tán

19 đầu hydra. Tổng quan tuyệt vời của chương trình Heidi Howard, giống như Martin, là nhà nghiên cứu hệ thống phân tán tại Đại học Cambridge. Chuyên môn của cô là tính nhất quán, khả năng chịu lỗi, hiệu suất và sự đồng thuận phân tán. Cô được biết đến nhiều nhất nhờ khái quát hóa thuật toán Paxos được gọi là Paxo linh hoạt.

Nhớ lại rằng Paxos là một họ các giao thức để giải quyết vấn đề đồng thuận trong một mạng lưới các máy tính không đáng tin cậy, dựa trên công trình của Leslie Lamport. Vì vậy, một số diễn giả của chúng tôi đang giải quyết các vấn đề do các diễn giả khác đề xuất ban đầu - và điều này thật tuyệt vời.

Khả năng tìm thấy sự đồng thuận giữa nhiều máy chủ—để giải quyết, bầu chọn người lãnh đạo, ngăn chặn hoặc phối hợp—là một vấn đề cơ bản trong các hệ thống phân tán hiện đại. Paxos hiện là cách chính để giải quyết các vấn đề đồng thuận và có rất nhiều nghiên cứu đang diễn ra xung quanh nó để mở rộng và tối ưu hóa thuật toán cho các nhu cầu thực tế khác nhau.

Trong buổi nói chuyện này, chúng ta sẽ xem lại cơ sở lý thuyết của Paxos, nới lỏng các yêu cầu ban đầu và khái quát hóa thuật toán. Chúng ta sẽ thấy rằng Paxos về cơ bản chỉ là một lựa chọn trong số rất nhiều phương pháp tiếp cận đồng thuận và các điểm khác cũng rất hữu ích để xây dựng các hệ thống phân tán tốt.

Alex Petrov — Giảm chi phí lưu trữ của bạn với Bản sao tạm thời và Số đại biểu giá rẻ

19 đầu hydra. Tổng quan tuyệt vời của chương trình Alex là chuyên gia về hệ thống lưu trữ và cơ sở dữ liệu, và quan trọng hơn đối với chúng tôi, một người cam kết trong Cassandra. Anh ấy hiện đang viết một cuốn sách, Nội bộ cơ sở dữ liệu, với O'Reilly.

Đối với hệ thống có cuối cùng nhất quán (theo thuật ngữ tiếng Nga - “tính nhất quán cuối cùng”), sau khi một nút gặp sự cố hoặc chia tách mạng, bạn cần giải quyết tình huống khó xử sau: tiếp tục thực hiện các yêu cầu, hy sinh tính nhất quán hoặc từ chối thực thi chúng và hy sinh tính khả dụng. Trong một hệ thống như vậy, số đại biểu, tập hợp con chồng chéo của các nút và đảm bảo rằng ít nhất một nút chứa giá trị gần đây nhất, có thể là một giải pháp biên tốt. Bạn có thể vượt qua các lỗi và mất kết nối với một số nút trong khi vẫn phản hồi các giá trị mới nhất.

Tuy nhiên, cái gì cũng có giá của nó. Sơ đồ sao chép đại biểu có nghĩa là chi phí lưu trữ tăng lên: dữ liệu dư thừa phải được lưu trữ trên nhiều nút cùng một lúc để đảm bảo có đủ bản sao khi xảy ra sự cố. Hóa ra bạn không cần phải lưu trữ tất cả dữ liệu trên tất cả các bản sao. Bạn có thể giảm tải cho bộ lưu trữ nếu bạn chỉ lưu trữ dữ liệu trên một phần của nút và sử dụng các nút đặc biệt (Bản sao tạm thời) cho các tình huống xử lý lỗi.

Trong quá trình thực hiện báo cáo, chúng tôi sẽ xem xét Bản sao nhân chứng, sơ đồ sao chép được sử dụng trong hai thanh dọc của cầu и tạp hóavà việc triển khai khái niệm này trong Apache Cassandra được gọi là Sao chép tạm thời & Đại biểu giá rẻ.

Dmitry Vyukov - Goroutine lộ diện

19 đầu hydra. Tổng quan tuyệt vời của chương trình Dmitry là nhà phát triển tại Google đang nghiên cứu thử nghiệm động cho C/C++ và Go - Địa chỉ/Bộ nhớ/ThreadSanitizer cũng như các công cụ tương tự cho nhân Linux. Đã đóng góp cho Go một công cụ lập lịch trình goroutine có thể mở rộng, một công cụ thăm dò mạng và một công cụ thu gom rác song song. Ông là chuyên gia về đa luồng, tác giả của hàng chục thuật toán không chặn mới và là chủ sở hữu của Đai đen Intel.

Bây giờ một chút về bản thân báo cáo. Ngôn ngữ Go có hỗ trợ riêng cho đa luồng dưới dạng goroutines (luồng nhẹ) và kênh (hàng đợi FIFO). Những cơ chế này giúp người dùng viết các ứng dụng đa luồng hiện đại trở nên rất dễ dàng và thú vị, và nó giống như một phép thuật. Theo chúng tôi hiểu, không có phép thuật nào ở đây. Trong buổi nói chuyện này, Dmitry sẽ đi sâu vào sự phức tạp của bộ lập lịch cờ vây và chỉ ra những bí mật để thực hiện “ma thuật” này. Đầu tiên, anh ấy sẽ cung cấp cái nhìn tổng quan về các thành phần chính của bộ lập lịch và cho bạn biết cách thức hoạt động của nó. Tiếp theo, chúng ta sẽ xem xét kỹ hơn các khía cạnh riêng lẻ như chiến lược đỗ/bỏ đỗ xe và xử lý các cuộc gọi hệ thống chặn. Cuối cùng, Dmitry sẽ nói một chút về những cải tiến có thể có đối với bộ lập lịch.

Dmitry Bugaichenko - Tăng tốc phân tích biểu đồ phân tán với các bản phác thảo xác suất và hơn thế nữa

19 đầu hydra. Tổng quan tuyệt vời của chương trình Dmitry đã làm việc ở lĩnh vực gia công gần 9 năm mà không mất liên lạc với trường đại học và cộng đồng khoa học. Phân tích dữ liệu lớn ở Odnoklassniki đối với anh trở thành cơ hội duy nhất để kết hợp đào tạo lý thuyết và nền tảng khoa học với việc phát triển các sản phẩm thực tế theo yêu cầu.

Phân tích biểu đồ phân tán đã và vẫn là một nhiệm vụ khó khăn: khi cần lấy thông tin về các kết nối của một đỉnh lân cận, dữ liệu thường phải được truyền giữa các máy, dẫn đến tăng thời gian thực hiện và tải trên cơ sở hạ tầng mạng. Trong bài nói chuyện này, chúng ta sẽ xem cách bạn có thể đạt được tốc độ xử lý đáng kể bằng cách sử dụng các cấu trúc dữ liệu xác suất hoặc sự kiện như tính đối xứng của biểu đồ tình bạn trong mạng xã hội. Tất cả điều này được minh họa bằng các ví dụ mã trong Apache Spark.

Denis Rystsov - Giảm chi phí lưu trữ của bạn với Bản sao tạm thời và Số đại biểu giá rẻ

19 đầu hydra. Tổng quan tuyệt vời của chương trình Denis - nhà phát triển Cơ sở dữ liệu Cosmos, chuyên gia kiểm tra các mô hình nhất quán, thuật toán đồng thuận và giao dịch phân tán. Anh ấy hiện đang làm việc tại Microsoft và trước đó anh ấy đã làm việc trên các hệ thống phân tán tại Amazon và Yandex.

Trong bài nói chuyện này, chúng ta sẽ xem xét các giao thức giao dịch phân tán đã được phát minh trong vài năm qua, có thể được triển khai ở phía máy khách trên bất kỳ kho lưu trữ dữ liệu nào hỗ trợ cập nhật có điều kiện (so sánh và thiết lập). Điểm mấu chốt là vòng đời không kết thúc bằng cam kết hai giai đoạn, các giao dịch có thể được thêm vào trên bất kỳ cơ sở dữ liệu nào - ở cấp ứng dụng, nhưng các giao thức khác nhau (2PC, Percolator, RAMP) có những đánh đổi khác nhau và không được cung cấp cho chúng tôi miễn phí.

Alexey Zinoviev - Không phải tất cả các thuật toán ML đều được đưa lên thiên đường phân tán

19 đầu hydra. Tổng quan tuyệt vời của chương trình Alexei (xà lách trộn) là diễn giả lâu năm và là thành viên ban chương trình tại các hội nghị khác. Huấn luyện viên thực hành tại EPAM Systems và là bạn của Hadoop/Spark cũng như các dữ liệu lớn khác kể từ năm 2012.

Trong buổi nói chuyện này, Alexey sẽ nói về các vấn đề trong việc điều chỉnh các thuật toán học máy cổ điển để thực thi ở chế độ phân tán dựa trên kinh nghiệm làm việc với Apache Spark ML, Apache Mahout, Apache Flink ML và kinh nghiệm tạo Apache Ignite ML. Alexey cũng sẽ nói về việc triển khai các thuật toán ML phân tán trong các khung này.

Và cuối cùng, hai báo cáo từ Yandex về Cơ sở dữ liệu Yandex.

Vladislav Kuznetsov - Cơ sở dữ liệu Yandex - cách chúng tôi đảm bảo khả năng chịu lỗi

19 đầu hydra. Tổng quan tuyệt vời của chương trình Vladislav là nhà phát triển tại Yandex trong nhóm nền tảng phân tán. Cơ sở dữ liệu Yandex là một DBMS có khả năng mở rộng theo chiều ngang, phân bố theo địa lý, có khả năng chịu lỗi, có thể chịu được lỗi của đĩa, máy chủ, giá đỡ và trung tâm dữ liệu mà không làm mất tính nhất quán. Để đảm bảo khả năng chịu lỗi, thuật toán độc quyền để đạt được sự đồng thuận phân tán được sử dụng cũng như một số giải pháp kỹ thuật được thảo luận chi tiết trong báo cáo. Báo cáo này có thể được cả các nhà phát triển DBMS và các nhà phát triển giải pháp ứng dụng dựa trên DBMS quan tâm.

Semyon Checherinda - Giao dịch phân tán trong YDB

19 đầu hydra. Tổng quan tuyệt vời của chương trình Semyon là nhà phát triển trong nhóm nền tảng phân tán tại Yandex, đang nghiên cứu khả năng sử dụng cài đặt YDB cho nhiều người thuê.

Cơ sở dữ liệu Yandex được thiết kế cho các truy vấn OLTP và tuân thủ các yêu cầu ACID cho hệ thống giao dịch. Trong báo cáo này, chúng tôi sẽ xem xét thuật toán lập lịch giao dịch làm nền tảng cho hệ thống giao dịch YDB. Chúng ta hãy xem những thực thể nào tham gia vào giao dịch, ai ấn định trật tự toàn cầu cho các giao dịch, cách đạt được tính nguyên tử, độ tin cậy và mức độ cô lập nghiêm ngặt của giao dịch. Lấy một vấn đề phổ biến làm ví dụ, chúng ta hãy xem xét việc triển khai giao dịch bằng cách sử dụng các cam kết hai giai đoạn và các giao dịch xác định. Hãy thảo luận về sự khác biệt của họ.

Cái gì tiếp theo?

Chương trình hội nghị tiếp tục tràn ngập những báo cáo mới. Đặc biệt, chúng tôi mong đợi một báo cáo từ Nikita Koval (ndkoval) từ JetBrains và Oleg Anastasyev (m0nstermind) từ công ty Odnoklassniki. Nikita nghiên cứu các thuật toán cho coroutine trong nhóm Kotlin, còn Oleg thì phát triển kiến ​​trúc và giải pháp cho các hệ thống có tải trọng cao trên nền tảng Odnoklassniki. Ngoài ra, còn 1 suất trống có điều kiện nữa, ban tổ chức chương trình hiện đang làm việc với các ứng viên cho vị trí đó.

Hội nghị Hydra sẽ diễn ra vào ngày 11-12 tháng XNUMX tại St. Petersburg. Vé có sẵn mua hàng trên trang web chính thức. Vui lòng chú ý đến tình trạng sẵn có của vé Trực tuyến - nếu vì lý do nào đó bạn không thể đến St. Petersburg trong những ngày này.

Hẹn gặp lại bạn tại Hydra!

Nguồn: www.habr.com

Thêm một lời nhận xét