#60 - Tối ưu tổ chức dữ liệu CockroachDB với phương pháp Vectorization
Như vậy Grokking Newsletter đã hoạt động hơn một năm với mục đích đem đến những bài viết kỹ thuật chuyên sâu cho kỹ sư phần mềm. Xin cảm ơn tất cả mọi người đã đồng hành với Grokking Newsletter suốt hơn một năm qua. Team Grokking xin phép thực hiện một khảo sát thông tin về cộng đồng kỹ sư phần mềm đã và đang ủng hộ Grokking để có thể đem nhiều giá trị hữu ích hơn cho ngành phát triển phần mềm tại Việt Nam.
Link khảo sát tại đây
Những bài viết hay
Uber giải quyết vấn đề lưu trữ thông tin về chuyến đi như thế nào ? — eng.uber.com
Trong hệ thống của User, dữ liệu về thông tin chuyến đi được lưu trữ theo format JSON. Format này chiếm rất nhiều dung lượng, ước tính với 1 triệu chuyến đi được tạo ra hằng ngày tương đương 20 GB, một host sẽ đầy dung lượng (1 TB) chỉ trong vòng 30 ngày. Để giải quyết vấn đề cực kỳ quan trọng này, đội ngũ Engineer Uber đã thử nghiệm lần lượt những thuật toán nén dữ liệu khác nhau. Quá trình đáng giá từng thử nghiệm, kết quả và giải pháp cuối cùng Uber đã chọn được trình bày trong bài viết này.
Các bài viết khác liên quan đến chủ đề Database optimization.
Một số cơ chế lưu trữ / truy xuất dữ liệu trên Log Structured Merged Tree vào đĩa cứng
Trong bài viết trước về Log Structured Merge Tree của tác giá Alex Pi đã đề cập đến cách thức cấu trúc dữ liệu này hoạt động như thế nào. Và bài viết tiếp theo này sẽ trình bày về những cơ chế truy xuất / ghi dữ liệu vào HDD và SSD.
Áp dụng phương pháp vectorization để tối ưu truy xuất dữ liệu và thuật toán Hash Join — www.cockroachlabs.com
Trong những RDBMS như MySQL, Postgres , record dữ liệu được lưu dưới dạng tuple (tập hợp giá trị từng field) được xếp liên tục với nhau trong một Page (gọi là Volcano model). Khi thực thi một câu query tính toán với điều kiện nào nó, chỉ có thể truy xuất từng row dữ liệu và kiểm tra row dữ liệu đó có thỏa mãn điều kiện đó hay không. Vì vậy, một phương pháp lưu trữ dữ liệu theo từng column (tổ chức như MS Excel hay Google sheet) gọi là Vectorization Model, sẽ cho phép xử lý đồng thời nhiều record hơn (batch dữ liệu) do chỉ xử lý trên một column có cùng kiểu dữ liệu với nhau và tối ưu hóa thuật toán Hash Join nhiều table với nhau theo primary key và foreign key.
Có thể bạn chưa biết
Một số lợi ích và ứng dụng của hệ hexadecimal (Thập lục phân) trong kiến trúc máy tính — medium.com
Khi bắt đầu học về Computer Science, khái niệm về hệ thập phân (decimal), hệ nhị phân (binary) và hệ thập lục phân (hexadecimal) sẽ luôn được đề cập trước tiên. Hệ thập phân được con người sử dụng, còn máy tính lưu trữ dữ liệu theo từng bit có giá trị 0 hoặc 1 (hệ nhị phân). Còn hệ thập lục phân (hexadecimal) sẽ có thể ứng dụng vào những vấn đề gì? Hiệu quả nó mang lại như thế nào so với hệ nhị phân ?
Tin tức từ công ty
Code & Tools
https://github.com/nasa-jpl/open-source-rover
https://eng.uber.com/open-sourcing-peloton/