Tối ưu hóa lịch sử sao trên GitHub

tsudev· 22/10/2026

Giới thiệu

Khi nói đến việc xây dựng và duy trì một nền tảng mã nguồn mở lớn như GitHub, việc tối ưu hóa hiệu suất và bảo mật là vô cùng quan trọng. Một trong những tính năng quan trọng của GitHub là lịch sử sao, cho phép người dùng xem ai đã sao lưu dự án của họ. Tuy nhiên, việc cung cấp danh sách sao cho mỗi dự án có thể trở thành một thách thức lớn về mặt hiệu suất và bảo mật.

Vấn đề với danh sách sao

Trước đây, GitHub sử dụng một phương pháp đơn giản để cung cấp danh sách sao cho mỗi dự án. Tuy nhiên, phương pháp này có một số hạn chế. Thứ nhất, việc trả lại danh sách sao cho mỗi dự án có thể làm tăng tải trên cơ sở dữ liệu, đặc biệt là đối với các dự án có số lượng sao lớn. Thứ hai, việc cung cấp danh sách sao có thể làm lộ thông tin về người dùng, vi phạm quyền riêng tư của họ.

Giải pháp của GitHub

Để giải quyết vấn đề này, GitHub đã xây dựng một API mới để cung cấp xu hướng mà không cần trả lại danh sách danh tính hoặc làm việc không giới hạn trên cơ sở dữ liệu. API này sử dụng một phương pháp gọi là "tổng hợp" để cung cấp thông tin về số lượng sao và xu hướng mà không cần tiết lộ danh sách sao cụ thể.

Ví dụ về tổng hợp

Ví dụ, thay vì trả lại danh sách 1000 người dùng đã sao dự án, API có thể trả lại thông tin như "1000 người dùng đã sao dự án này trong tuần qua" hoặc "số lượng sao tăng 20% trong tháng này". Điều này giúp người dùng hiểu được xu hướng và sự phổ biến của dự án mà không cần biết danh sách sao cụ thể.

Ưu điểm của giải pháp

Giải pháp của GitHub có một số ưu điểm quan trọng. Thứ nhất, nó giúp cải thiện hiệu suất của nền tảng bằng cách giảm tải trên cơ sở dữ liệu. Thứ hai, nó giúp bảo vệ quyền riêng tư của người dùng bằng cách không tiết lộ danh sách sao cụ thể. Cuối cùng, nó giúp cung cấp thông tin có giá trị về xu hướng và sự phổ biến của dự án mà không cần phải trả lại danh sách sao.

Kết luận

Tóm lại, GitHub đã xây dựng một API mới để cung cấp xu hướng mà không cần danh sách sao, giúp cải thiện hiệu suất và bảo mật. Điều này cho thấy sự quan tâm của GitHub đến việc bảo vệ quyền riêng tư của người dùng và cải thiện hiệu suất của nền tảng. Để tìm hiểu thêm về giải pháp này, bạn có thể tham khảo bài viết trên blog của GitHub: https://github.blog/engineering/architecture-optimization/from-2500-requests-to-24-rebuilding-star-history-without-the-stargazers/