#240 - Giao thức đồng thuận Kraft
Trong số này, chúng ta cùng tìm hiểu về:
Grab Engineering đã thực hiện một vài tối ưu nhằm giảm kích thước file JavaScript từ 750kb xuống 250kb như thế nào?
Atlassian vừa công bố mức độ availability đạt được của Tenant Context Service (TCS) lên đến 99,9999%.
Giao thức đồng thuận (consensus protocol) Kraft.
GitHub và Microsoft bị đâm đơn kiện.
Cắt giảm nhân sự tại Facebook và những hoảng loạn tại Twitter.
Lời giải bài Validate Binary Tree Nodes.
Ngoài ra các bạn vẫn có thể tiếp tục đặt mua ấn phẩm Dijkstra tập 2 để ủng hộ cho các hoạt động của Grokking tại đây.
News
(by lpv)
Mark Zuckerberg’s Message to Meta Employees — about.fb.com
1 đợt cắt giảm nhân sự lớn của Facebook với hơn 11000 nhân viên sẽ ra đi.
The Scoop: Turmoil at Twitter - The Pragmatic Engineer — blog.pragmaticengineer.com
Điều gì đang xảy ra tại Twitter và tại sao?
We’ve filed a lawsuit challenging GitHub Copilot — githubcopilotlitigation.com
Một nhóm người dùng của Github đã đệ đơn kiện tập thể lên tòa án liên bang Hoa Kỳ ở San Francisco, CA. Qua đó họ đang thử thách tính hợp pháp của GitHub Copilot. Đơn kiện đã được đệ trình chống lại một nhóm bị đơn bao gồm GitHub , Microsoft (chủ sở hữu của GitHub) và OpenAI.
Những bài viết hay
How We Cut GrabFood.com’s Page JavaScript Asset Sizes by 3x
(by nhij)
Grab Food xử lý hơn 175 triệu request mỗi tuần với hơn 1 terabyte network egress. Grab Engineering đã thực hiện một vài tối ưu nhằm giảm kích thước file JavaScript từ 750kb xuống 250kb. Kết quả của việc tối ưu này là ứng dụng tải dữ liệu nhanh hơn, tiết kiệm chi phí, tiết kiệm thời gian phát triển...
Trong bài viết này, đội ngũ kỹ sư Grab sẽ trình bày chi tiết cách họ giảm kích thước file xuống còn một phần ba như vậy.
Atlassian Exceeds 99.9999% of Availability Using Sidecars and Highly Fault-Tolerant Design
(by quangle)
Gần đây, đội ngũ kỹ sư của Atlassian vừa công bố mức độ availability đạt được của Tenant Context Service (TCS) lên đến 99,9999%. TCS là một dịch vụ cơ sở hạ tầng, phục vụ cho các sản phẩm điện toán đám mây của Atlassian với lượng request 32 tỷ/ngày, cao nhất lên đến 586.308 request/giây. Để đạt được các chỉ số trên, các kỹ sư tại đây đã áp dụng CQRS pattern trong việc thiết kế hệ thống TCS, cập nhật những sự thay đổi dữ liệu bằng việc sử dụng AWS DynamoDB cùng với kỹ thuật L1-memory-cache dựa trên SNS.
Để tìm hiểu kỹ hơn về kiến trúc mà nhóm kỹ sư đã xây dựng cho hệ thống TCS, mời bạn đọc cùng tìm hiểu bài viết
Why ZooKeeper Was Replaced with KRaft - The Log of All Logs
(by steven.do)
Bài viết giới thiệu về giao thức đồng thuận (consensus protocol) Kraft được phát triển nhằm thay thế và loại bỏ sự lệ thuộc vào Zookeeper trong việc quản lý metadata. Kiến trúc của Kafka được đơn giản hóa khi không còn phải tách biệt thành hai thành phần độc lập là Zookeeper và Kafka như trước đây.
Mục tiêu của sự nâng cấp này là mong muốn xây dựng một kiến trúc có thể đáp ứng xử lý hàng ngàn broker và hàng triệu partitions.
Trong nội dung bài viết này, tác giả sẽ tập trung phân tích các lý do tại sao lại sử dụng một phương thức đồng thuận như Raft để thay thế Zookeeper trong kiến trúc hiện tại của Kafka, và đồng thời cũng mô tả thêm về bộ Quorum Controller mới, được xây dựng dựa trên các giao Kraft.
Tác giả đã tiến hành so sánh hiệu năng giữa kiến trúc cũ với Zookeeper. Và kết quả thử nghiệm với hai triệu topic partition được dựng trên 1 cụm kafka cluster, kể cả trong trường hợp hệ thống bị ngắt có kiểm soát và failover không kiểm soát thì độ trễ đã giảm đi rất nhiều so với kiến trúc cũ với Zookeeper.
Để có thêm thông tin hữu ích và chi tiết các bạn có thể tham khảo thêm tại link bài viết.
Góc Lập Trình
Đề ra tuần này: Repeated DNA Sequences
(by ndaadn)
Chuỗi DNA là một chuỗi các phân tử nucleotide được ký hiệu bằng 'A', 'C', 'G', 'T'. Trong quá trình tìm hiểu về DNA, việc tìm ra những chuỗi phân tử lặp nhau rất hữu dụng. Cho một chuỗi DNA, Hãy tìm tất cả những chuỗi lặp lại có độ dài 10 phân tử.
Ví dụ:
Input: s = "AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT"
Output: ["AAAAACCCCC","CCCCCAAAAA"]
Lời giải tuần trước: Validate Binary Tree Nodes
(by phucnh)
Nếu ta biểu diễn các nút của cây dưới dạng đồ thị vô hướng, đồ thị sẽ có n đỉnh, các cạnh của đồ thị biểu diễn quan hệ cha-con của các nút. Theo đề bài, do mỗi nút chỉ có nhiều nhất 2 con, đồ thị tạo thành một cây nhị phân hợp lệ khi:
Mỗi nút chỉ được phép có 1 nút cha duy nhất
Tất cả các nút phải được liên kết với nhau
Đồ thì không chứa chu trình
Ta thực hiện giải thuật như sau: https://pastebin.com/iRY9u0FX
Ta thực hiện giải thuật trên bằng DFS, vì vậy độ phức tạp về thời gian là O(V + E) với V là số đỉnh, E là số cạnh. Với V = n, E xấp xỉ 2n (mỗi nút nối tới tối đa 2 cạnh), độ phức tạp về thời gian là O(n).
History
Vào ngày 5/11/1973, Vint Cerf và Bob Kahn đã submitted một paper mô tả về một giao thức gửi packet qua mạng, mà chúng ta còn gọi với cái tên TCP/IP. Hai ông được công nhận là một trong những "cha đẻ của Internet".
(by lpv)
Code & Tools
Blib: a testing tool for seeing your Internet latency and packet loss.
Sonic: a fast, lightweight & schema-less search backend. It is an alternative to Elasticsearch that runs on a few MBs of RAM.
Feedback
Bạn đánh giá nội dung số newsletter này thế nào?
(1 = Rất tệ / 5 = Rất tốt)
(Việc đánh giá của các bạn là rất quan trọng, sẽ giúp chúng tôi liên tục cải thiện nội dung newsletter tốt hơn)
Grokking mang lại cho các bạn những kiến thức mới mẻ và hữu ích thông qua:
Tech Talk: Là một hoạt động thường xuyên của Grokking từ những ngày đầu thành lập. Tại đây các diễn giả chia sẻ kiến thức xoay quanh Computer Science và Software Engineer. Các buổi Tech Talk đều được record và upload lên kênh youtube của Grokking.
Grokking Knowledge Graph: Tập hợp những nguồn kiến thức phong phú với hơn 1000 bài viết chọn lọc, các đầu sách, khóa học, v.v… Các bài viết đều được gán nhãn để giúp bạn đọc dễ dàng tìm kiếm.
Webinar: Là chương trình kết nối các kỹ sư Việt Nam và các kỹ sư đang làm việc tại các công ty công nghệ hàng đầu thế giới.
Dijkstra: Một ấn phẩm được xuất bản bởi các thành viên của Grokking. Với những bài viết đào sâu vào kỹ thuật và kiến thức khoa học máy tính.
Kipalog: Nền tảng chia sẻ kiến thức dành cho các lập trình viên.
Newsletter: Những bài viết hay về công nghệ sẽ được gửi tới bạn hàng tuần qua email.
Chúc các bạn sẽ tìm được nhiều điều mới mẻ khi đến với Grokking và xin hẹn gặp lại các bạn vào tuần sau.
Quotes
Make it work, make it right, make it fast – Kent Beck