Một biểu tượng cảm xúc nhỏ có thể gây ra bao nhiêu rắc rối? Bạn sẽ không nghĩ về nó. Biểu tượng cảm xúc này xuất phát từ tập thứ 20 của mùa thứ chín của loạt phim truyền hình kinh điển Mỹ "Friends" (còn được gọi là "Six"). Rachel, do Jennifer Aniston thủ vai, nghe tin một bữa tiệc kịch truyền hình sắp được tổ chức trên sân thượng và cô ấy ngay lập tức cổ vũ. Nó chỉ có kích thước 1,6 MB và đã được sử dụng 246.173 lần trên nền tảng xã hội có tên Discourse vì nó quá phổ biến đối với cư dân mạng.

Mỗi lần sử dụng, nó sẽ được sao lưu liên tục, cuối cùng tạo thành bản sao lưu dự phòng 377GB và hơn 240.000 liên kết cứng, trực tiếp phá vỡ giới hạn dung lượng hệ thống tệp Linux và khiến cơ chế sao lưu bị lỗi.

Discourse là một dự án phần mềm nguồn mở cung cấp hỗ trợ kỹ thuật cho hơn 22.000 cộng đồng trực tuyến. Chức năng trò chuyện thời gian thực hỗ trợ chèn biểu tượng cảm xúc và ảnh động GIF.

Tuy nhiên, nó có cơ chế "tải lên an toàn" đặc biệt: Khi một tệp được chuyển giữa các tình huống bảo mật khác nhau, chẳng hạn như chuyển tiếp từ tin nhắn riêng tư sang bài đăng công khai, hệ thống sẽ tạo một bản sao mới với giá trị mã hóa SHA1 ngẫu nhiên. Mặc dù tệp không hề thay đổi nhưng Discourse sẽ coi nó như một tệp mới.

Do đó, nếu một hình ảnh hoặc biểu tượng cảm xúc phổ biến tiếp tục lan truyền trong các bài đăng, chuyển tiếp và tin nhắn riêng tư, một bản sao mới sẽ được tạo mỗi lần.

Trên thực tế, Discourse từ lâu đã nhận thức được vấn đề bị choáng ngợp bởi các tập tin trùng lặp. Giải pháp ban đầu là theo dõi tệp gốc thông qua giá trị Hash của tệp, nhóm các tệp đã tải lên theo giá trị băm trong quá trình sao lưu và chỉ tải xuống tệp đầu tiên trong mỗi nhóm. Các tập tin trùng lặp tạo liên kết cứng.

trông đẹp và trang nhã, nhưng hệ thống Discourse Linux sử dụng hệ thống tệp ext4 phổ biến nhất và lâu đời nhất, hỗ trợ tối đa 16TB tệp đơn và hệ thống tệp 1EB, nhưng mỗi tệp chỉ cho phép tối đa 65.000 liên kết cứng.

Do đó, giải pháp Discourse không thể tải xuống hơn 240.000 tệp trùng lặp chỉ một lần. Sau khi đạt giới hạn trên, ngoài lượt tải xuống đầu tiên, hệ thống còn thực hiện thêm khoảng 181.000 lượt tải xuống dự phòng.

Nói cách khác, nguyên nhân khiến làm hỏng hệ thống không phải do số lượng tệp sao lưu khổng lồ mà do số lượng liên kết cứng quá lớn.

Rất may, Discourse cuối cùng đã tìm ra giải pháp hoàn hảo, ý tưởng vẫn là tạo liên kết cứng, nhưng khi hệ thống file đưa ra thông báo lỗi EMLINK "quá nhiều liên kết", sao chép cục bộ một tệp tương ứng, hãy đặt tệp mới làm "tệp chính" và tiếp tục tạo liên kết cứng dựa trên tệp đó cho đến khi đạt đến giới hạn liên kết lần nữa.

Discourse khá hài lòng vì biện pháp mới này áp dụng cho tất cả các hệ thống tệp và không yêu cầu cấu hình bổ sung.

Với tiền đề là hệ thống tập tin không thể thay đổi được thì điều này hoàn toàn có thể chấp nhận được.

Cuối cùng, Discourse cũng tiết lộ rằng Bây giờ chúng ta biết rằng Jennifer Aniston cũng có thể kiểm tra áp suất máy chủ.