30 điểm bởi hiddenest 2023-10-10 | 4 bình luận | Chia sẻ qua WhatsApp

Bài chia sẻ về quá trình kỹ thuật nhằm cắt giảm chi phí phát sinh do rất nhiều dữ liệu được lưu trong Redis dưới dạng JSON không nén, đồng thời mô hình không được chia sẻ giữa các dịch vụ Redis

  • Thay đổi cách lưu trữ cùng một dữ liệu gốc để tiết kiệm 52% mức sử dụng bộ nhớ của Elasticache và 66% chi phí
  • Dùng Protobuf thay cho JSON để đặc tả schema dữ liệu rõ ràng, đồng thời thống nhất cách đọc/ghi dữ liệu giữa các dịch vụ
  • Khi so sánh với brotli, brotli cho tỷ lệ nén cao nhất. Đã so sánh thời gian xử lý và tỷ lệ nén theo kích thước window và mức nén để tìm và áp dụng giá trị tối ưu
  • Khi dùng UUID làm key của Redis, có thể dùng ascii85 để tiết kiệm thêm một chút bộ nhớ
  • Nhận ra rằng nợ kỹ thuật liên quan đến domain có thể trở thành rào cản cho các nỗ lực cắt giảm chi phí hạ tầng, và đã xử lý điều đó bằng schema tường minh

4 bình luận

 
nina514 2023-10-18

Khi cấu hình máy chủ ngày càng mạnh hơn theo từng ngày, thay vì trăn trở về tối ưu hóa thì tôi chỉ mải mê làm sao tạo ra sản phẩm thật nhanh, nên đây đúng là một nội dung hay giúp tôi có dịp suy nghĩ lại về việc tối ưu hóa sau một thời gian dài!!

 
cosine20 2023-10-11

Đúng vậy, thực ra JSON chủ yếu được dùng vì có ưu điểm là dễ đọc và thuận tiện cho việc cấu trúc hóa linh hoạt, nhưng xét về dung lượng thì dùng giao thức nhị phân như protobuf sẽ tiện hơn, và nếu đi đến cực đoan hơn nữa thì những giao thức nhị phân được tối ưu hóa cực độ như cấu trúc PE truyền thống hay giao thức TCP sẽ là lựa chọn tốt hơn. Có lẽ cách nói đây là "technical debt" liên quan đến domain là hoàn toàn chính xác.

 
kyc1682 2023-10-10

Tuyệt đấy

 
gilbok 2023-10-10

Sếp ơi! Hãy tăng lương thật nhiều cho người này đi!!