TechDogy

(paduvi)

You can do anything, but not everything..

  • Protobuf, Thrift, Avro là gì?

    Protobuf, Thrift, Avro là gì?

    Trong quá trình phát triển phần mềm, cách dữ liệu được lưu trữ xuống file hoặc được truyền sang service khác dưới định dạng gì là vô cùng quan trọng. Thông thường, đối với những dữ liệu trên file, ta có chọn kiểu định dạng “native” được hỗ trợ sẵn bởi ngôn ngữ lập trình,…

    Read more

  • Transaction Isolation (Part 2): Isolation Level

    Transaction Isolation (Part 2): Isolation Level

    Hiện nay, mỗi Database đều sử dụng phương pháp Isolation khác nhau. Thậm chí cũng có chuyện cùng một ý tưởng nhưng mỗi người lại triển khai khác nhau: cái thì chạy nhanh hơn, cái thì lại tốn ít bộ nhớ hơn, thậm chí cái còn có bug… Về cơ bản thì hiện nay có…

    Read more

  • Database 103: SSTable và LSM-Tree

    Database 103: SSTable và LSM-Tree

    SSTable là gì? Trước khi tiếp tục cái series về Database, ta sẽ tìm hiểu qua trước về Sorted String Table, hay còn được gọi là SSTable. Về bản chất thì nó khá giống với kiến trúc Log file được đề cập từ 2 phần trước: Điểm khác biệt duy nhất đó là: mỗi key…

    Read more

  • Bloom Filter

    Bloom Filter

    Bloom filter là 1 cấu trúc dữ liệu xác suất dùng để kiểm tra xem 1 phần tử có thuộc 1 tập dữ liệu hay không? Sở dĩ lý do lại là cấu trúc dữ liệu xác suất, bởi vì kết quả trả về của Bloom filter không đảm bảo chắc chắn rằng phần tử đó…

    Read more

  • Một số tip khi define schema

    Một số tip khi define schema

    Trong thực tế, ta thường không tránh khỏi việc phải cập nhật schema (hay còn gọi là schema evolution). Giống như thiết kế kiến trúc hệ thống, việc define schema cũng cần phải được tính toán khéo léo để có thể dễ dàng tương thích cho cả phiên bản cũ và mới (Backward/Forward Compatibility). Bài…

    Read more