View profile

#152 - Uber xây dựng nền tảng Real-Time Push Message như thế nào?

Revue
 
 

Grokking Newsletter

December 20 · Issue #153 · View online

Tuyển tập những bài viết hay cùng sự kiện bổ ích dành cho kĩ sư phần mềm tại Việt Nam.


Grokking xin mời các bạn tham gia Grokking Techtalk #40 với hai chủ đề: MLOps Platform Database Technologies.
Ở bài talk đầu tiên, sẽ nói về cách ba hệ thống Redis, Elastic Search và Cassandra tổ chức cluster cũng như sự trade-off giữa tính nhất quán (consistency) và khả năng đáp ứng (availability) của ba hệ thống này.
Ở bài tiếp theo, chúng ta sẽ cùng tìm hiểu cách Amazon Web Services (AWS) đã thiết kế & xây dựng 1 trong những nền tảng MLOps được ứng dụng rộng rãi nhất trên thế giới - Amazon SageMaker.
- Thời gian: 08:30 - 12:00 Thứ 7, 26/12/2020
- Địa điểm: Grab Vietnam - Tòa nhà Mapletree Business Center, số 1060 Đại Lộ Nguyễn Văn Linh, Phường Tân Phong, Quận 7, Thành phố Hồ Chí Minh
- Link đăng ký cho sự kiện: https://bit.ly/grk-techtalks-reg
Các bạn có thể xem thông tin chi tiết về event tại đây

Những bài viết hay
Uber’s Real-Time Push Platform Uber’s Real-Time Push Platform
Ngoài ra để tối ưu hoá cho việc push message, các kĩ sư tại Uber định nghĩa một số Metadata như Priority, Time to live, Deduplication(chi tiết vui lòng xem trong bài viết gốc).
Sau một thời gian hoạt động, RAMEN gặp một số vấn đề về scale, cho nên từ năm 2017, Uber engineer team sử dụng một số công nghệ như Netty, Apache, Zookeeper, Apache Helix, Redis và Apache Cassandra để cải thiện khả năng scale cho hệ thống.
Tự học Data Science như thế nào?
MuZero - Kẻ Lật Đổ Vương Triều Alpha! MuZero - Kẻ Lật Đổ Vương Triều Alpha!
Góc Distributed System
Partial Network Fault in Raft
Trong khi vận hành, các node có thể không có thông tin kết nối đầy đủ với các node khác trong hệ thống. Trong nhiều trường hợp, điều này dẫn tới hệ thống không thể bầu chọn được leader, hoặc việc bầu chọn diễn ra không ổn định (ví dụ: leader liên tục chuyển qua lại giữa các node khiến hoạt động toàn hệ thống không thể tiếp diễn). Ví dụ với kết nối như trong hình, và node 1 đang là leader.
  • Do node 4 không nhận được tín hiệu từ leader 1, node 4 sẽ khởi tạo quá trình leader election. Khi đó node 2 sẽ cập nhật thông tin, động thời buộc leader 1 lui xuống thành follower.
  • Sau một thời gian, node 1 không nhận được tín hiệu từ leader trong mạng, khởi tạo quá trình bầu leader cho chính nó và trở thành leader. Node 2 cập nhật thông tin và buộc node 4 trở thành follower trở lại.
  • Tuy nhiên, khi đó ta lại quay lại trường hợp đầu: node 4 bị timeout và tiếp tục khởi tạo quá trình bầu leader. Do vậy, việc bầu leader trở nên không ổn định.
Cloudflare cũng đã có một incident tương tự trong thời gian gần đây liên quan về partial network fault khi vận hành https://blog.cloudflare.com/a-byzantine-failure-in-the-real-world/ (Lưu ý: lỗi được nêu trong bài viết không phải là Byzantine mà là Partial Network Fault, như một số comment ở dưới bài viết có ghi chú).
Bài viết sau sẽ trình bày 2 cơ chế khắc phục trong các trường hợp như trên:
  • PreVote: một node khi muốn bầu bản thân làm leader sẽ phải thăm dò trước, tránh tình trạng chiếm quyền khi leader hiện tại vẫn đang hoạt động tốt.
  • CheckQuorum: cho phép leader thường xuyên kiểm tra nếu bản thân có kết nối với quá bán các node trong mạng nữa không. Trong trường hợp có vấn đề về kết nối, leader hiện tại sẽ chủ động step down nhường cho một node khác trở thành leader.
Code & Tools
This Week Sponsors
Established in 2012, Chotot.com is the leading online classified website in Vietnam with more than 1,2 billion monthly page views, 10 million monthly users, 3,6 million transactions in 2019. With the motto “Muốn Là Có” (“A Way to Your Wants”), Chotot.com provides an effective online marketplace for Vietnamese to buy and sell various types of products easily. For more information, please visit www.chotot.com.
Góc Tuyển Dụng
Cho Tot creates products using a variety of open source and cloud native technologies, to name some: Kubernetes, Kafka, Elastic Search, PostgreSQL, MongoDB, TimescaleDB. We utilize Google Cloud Platform services such as Google Kubernetes, AI Platform, Cloud Composer, Data Catalog, BigQuery, Google Analytics for our infrastructure needs while running our heavy workloads on our own on-premises infrastructure. Visit careers.chotot.com to learn more about our vacancies and company culture.
Quotes
You shouldn’t start a new project with microservices, even if you’re sure your application will be big enough to make it worthwhile
- Martin Fowler
Did you enjoy this issue?
If you don't want these updates anymore, please unsubscribe here.
If you were forwarded this newsletter and you like it, you can subscribe here.
Powered by Revue
Charmington La Pointe, 181 Cao Thang, Dist 10, Ho Chi Minh city, Viet Nam