Trong bộ ba phần này, chúng tôi sẽ tiết lộ những thành tựu công nghệ có thể cải thiện đáng kể việc xử lý dữ liệu cho các ứng dụng chạy trên giao thức máy tính Internet (ICP).
Lần nâng cấp này là cột mốc Stellarator trong lộ trình ICP, hiện đang được triển khai trên toàn mạng, Stellarator là một bước đột phá trong lưu trữ dữ liệu trên chuỗi, cho phép mỗi subnet chứa hơn 1TB bộ nhớ, mở ra cơ hội cho các ứng dụng phong phú dữ liệu trước đây bị hạn chế bởi lưu trữ.
Sự tiến bộ này đã cho phép các nhà phát triển xây dựng các ứng dụng phức tạp cần xử lý dữ liệu quy mô lớn, từ đó mang lại mức độ thực dụng mới cho công nghệ blockchain.
Không chần chừ, hãy bắt đầu chuỗi này để xem ICP hiện tại sử dụng bản cập nhật Stellarator để lưu trữ dữ liệu như thế nào.
Tính bền vững dữ liệu trên máy tính Internet
Bài viết này tóm tắt cách thức hoạt động của các máy bản sao trên máy tính Internet, đặc biệt chú trọng đến những thay đổi gần đây trong lưu trữ dựa trên cây kết hợp theo dạng nhật ký (LSMT), trong đó bao gồm việc thực hiện nhiều lưu trữ sao chép hơn trên subnet máy tính Internet và giúp chúng xử lý tốt hơn các tải công việc nặng.
Máy tính Internet bao gồm các subnet, máy ảo, những máy ảo này sao chép cùng một bản sao trên 13-40 máy bản sao, mỗi bản sao chịu trách nhiệm thực hiện tất cả các tin nhắn gửi đến container trong subnet đó và lưu trữ tất cả dữ liệu của container, do đó, tất cả các bản sao đều có trạng thái đầy đủ và giống hệt như của subnet.
Các nhà phát triển có thể triển khai container lên máy tính Internet, container tương tự như hợp đồng thông minh trên các blockchain khác, nhưng có thể thực hiện các tính toán tổng quát hơn và lưu trữ nhiều dữ liệu hơn nhiều so với hợp đồng thông minh trên các chuỗi khác.
Dữ liệu được lưu trữ trong container cuối cùng cần được lưu trữ trên một số phần cứng vật lý, nhờ vào lớp lưu trữ dựa trên LSMT được giới thiệu gần đây cùng với nhiều tối ưu hóa và cải tiến khác, subnet trên máy tính Internet có thể lưu trữ dữ liệu container lên đến 1TB.
Hầu hết dữ liệu trong container được lưu trữ trong bộ nhớ heap của nó (lên đến 4GB khi ghi) hoặc trong bộ nhớ ổn định của nó (lên đến 500GB khi ghi), cùng với các dạng dữ liệu khác liên quan đến container như mã container, các tin nhắn đang bay và nhiều thông tin khác như danh sách điều khiển và số dư Cycles.
Lớp lưu trữ của ICP thu hẹp khoảng cách giữa lưu trữ container (như bộ nhớ heap và bộ nhớ ổn định) và phần cứng lưu trữ của máy bản sao bên dưới (như đĩa và RAM).
Như một phần của cột mốc Stellarator, lớp lưu trữ đã trải qua một cuộc tái thiết kế và triển khai lại rộng rãi để giúp ICP đối mặt với những thách thức mở rộng trong tương lai và giải quyết những điểm nghẽn mở rộng quan trọng nhất của lớp lưu trữ cũ, tất cả các thay đổi liên quan đã được hoàn thành gần đây, máy tính Internet hiện đã chạy trên lớp lưu trữ mới trong vài tháng.
Phần còn lại của bài viết này sẽ trình bày quá trình thiết kế lại lớp lưu trữ thành cấu trúc dữ liệu cây kết hợp theo dạng nhật ký, việc thiết kế lại nhằm loại bỏ các điểm nghẽn liên quan đến lưu trữ và mang lại trải nghiệm tốt hơn cho người dùng và nhà phát triển container tốn bộ nhớ.
Đối với người dùng ICP, điều đáng chú ý nhất là công việc này đã giúp trạng thái sao chép trên một subnet đơn lẻ gần đây tăng lên 1TB, ngoài ra, việc thiết kế lại cũng giúp máy tính Internet xử lý tốt hơn các container ghi nhiều dữ liệu.
Điểm kiểm tra
Nói chung, lớp lưu trữ của máy tính Internet kết hợp giữa lưu trữ vĩnh viễn trên đĩa và lưu trữ tạm thời trong RAM, một khái niệm quan trọng về cách máy tính Internet lưu trữ trạng thái của nó là cái gọi là điểm kiểm tra, điểm kiểm tra là thời điểm logic mà toàn bộ trạng thái của subnet được lưu trữ trên đĩa.
Điểm kiểm tra được tạo một cách xác định mỗi 500 khối hoặc mỗi vài phút, điều này có nghĩa là tất cả các bản sao sẽ ghi cùng một điểm kiểm tra tại cùng một độ cao, điểm kiểm tra được lưu trữ dưới dạng thư mục tệp trên đĩa của mỗi nút bản sao, cấu trúc thư mục như sau (được đơn giản hóa rất nhiều):
Trong cấu trúc này, mỗi container đều được lưu trữ trong một thư mục con riêng và mỗi thư mục container chứa các tệp riêng biệt cho bộ nhớ heap, bộ nhớ ổn định và các thông tin khác (như các tin nhắn đang bay), dữ liệu được lưu dưới dạng điểm kiểm tra vào đĩa vì nhiều lý do.
1. Tính bền vững dữ liệu: Các máy bản sao có thể khởi động lại bất cứ lúc nào, có thể có lỗi phần mềm trong mã bản sao, hoặc phần cứng có thể bị lỗi, hoặc nguồn điện của trung tâm dữ liệu có thể gặp vấn đề, khi điều này xảy ra, có thể tải lại điểm kiểm tra mới nhất.
Xin lưu ý rằng ngay cả khi điểm kiểm tra chỉ được tạo mỗi 500 vòng một lần, các bản sao vẫn có thể tái tạo trạng thái cho các độ cao không phải điểm kiểm tra, các bản sao chỉ cần điểm kiểm tra mới nhất cùng với tất cả các khối cuối cùng giữa điểm kiểm tra và trạng thái mới nhất, vì tất cả các thực hiện đều xác định, những khối này có thể được phát lại và đảm bảo rằng trạng thái tái tạo hoàn toàn giống nhau, các khối cần thiết có thể được lưu trữ riêng với điểm kiểm tra trên đĩa hoặc lấy từ các bản sao khác.
2. Đồng bộ hóa: Tất cả các tin nhắn (sao chép) đều được thực hiện bởi tất cả các bản sao, do đó, đối với bất kỳ độ cao h nào, tất cả các bản sao nên có cùng một trạng thái, giao thức này ngăn chặn sự phân kỳ bằng cách đầu tiên băm trạng thái, sau đó ký ngưỡng băm được tạo ra để ngăn chặn sự phân kỳ (tức là khi một số bản sao trung thực cuối cùng ở trạng thái khác với trạng thái đồng thuận), chỉ khi ít nhất ⅔ (chính xác hơn là 2f + 1) bản sao đồng ý với cùng một băm, thì mới có thể tạo ra chữ ký ngưỡng như vậy, subnet mới có thể tiếp tục hoạt động.
Tuy nhiên, subnet của máy tính Internet có thể có trạng thái lớn hơn, tại thời điểm viết bài, giới hạn là 1TB, trong khi giữ tối đa 2,5 khối mỗi giây (subnet nhanh nhất trên máy tính Internet hiện tại đang làm được), việc băm một lượng lớn dữ liệu như vậy sau mỗi khối là không khả thi, vì vậy máy tính Internet chỉ băm một phần đã chọn của trạng thái cho các độ cao không phải điểm kiểm tra, chẳng hạn như các thông tin cơ bản của mỗi container, các phản hồi gần đây cho các tin nhắn đầu vào và các tin nhắn XNet gửi đến các subnet khác.
Đối với điểm kiểm tra, giao thức sẽ băm toàn bộ trạng thái để có được một cấu trúc dữ liệu được gọi là danh sách, danh sách này được tính toán bằng cách băm tất cả các tệp trong thư mục điểm kiểm tra và bao gồm băm của tất cả các tệp đơn lẻ được chia thành các khối 1MB, vào cuối quá trình tính toán danh sách, hash gốc của danh sách sẽ được tính toán, bao gồm tất cả các hash đơn lẻ trong danh sách, sau đó sẽ được ký ngưỡng bởi subnet, việc tính toán danh sách có thể mất hàng chục giây, nhưng công việc này chỉ cần thực hiện mỗi 500 khối một lần và được thực hiện song song với việc thực hiện container ở nền.
3. Đồng bộ hóa trạng thái: Máy tính Internet cho phép thay đổi topo subnet thông qua các đề xuất NNS, khi các nút bản sao tham gia vào subnet, chúng có thể nhận điểm kiểm tra mới nhất từ các nút bản sao khác, hãy nhớ rằng điểm kiểm tra là tập hợp các tệp, vì vậy, sau khi xác minh danh sách bằng cách sử dụng hash gốc và chữ ký ngưỡng của subnet, giao thức đồng bộ hóa trạng thái có thể lấy tệp theo từng khối, đồng thời so sánh hash của các khối đã lấy với hash trong danh sách, nếu tất cả các kiểm tra thành công, các bản sao có thể kết luận rằng trạng thái đã lấy tương ứng với trạng thái đã thỏa thuận của các subnet tại độ cao điểm kiểm tra, nếu các bản sao tụt lại vì lý do khác và khoảng cách với trạng thái khỏe mạnh quá lớn để theo kịp việc phát lại khối thuần túy, điều này cũng sẽ kích hoạt đồng bộ hóa trạng thái.
4. Kích thước trạng thái tối đa: Hiện tại, kích thước trạng thái tối đa là 1TB, trong khi RAM của máy bản sao nút là 512GB, vì vậy không thể tải toàn bộ trạng thái vào RAM, máy tính Internet chủ yếu sử dụng RAM để lưu trữ dữ liệu mới nhất chưa được lưu trữ vĩnh viễn, cũng như để lưu trữ dữ liệu nhằm cải thiện hiệu suất.
PageMap và độ cao không phải điểm kiểm tra
Vì điểm kiểm tra chỉ được tạo mỗi 500 khối một lần, nên ICP cần cung cấp không gian lưu trữ khác nhau cho các độ cao không phải điểm kiểm tra, ý tưởng cơ bản mà lớp lưu trữ tuân theo là dữ liệu này được lưu trữ dưới dạng tổ hợp của điểm kiểm tra cuối cùng trên đĩa, bất kỳ thay đổi nào sau đó đều được lưu trữ trong RAM.
PageMap là cách mà các bản sao thực hiện hầu hết nội dung của trạng thái subnet, phần lớn trạng thái subnet là trạng thái của container, đặc biệt là bộ nhớ heap và bộ nhớ ổn định của container.
Hiện tại, một container có thể có tối đa 4GB bộ nhớ heap, 500GB bộ nhớ ổn định và tổng hạn chế trạng thái subnet là 1TB, nhưng tất cả những hạn chế này có thể thay đổi trong tương lai, cả hai loại bộ nhớ đều có thể được đọc thông qua các cuộc gọi container sao chép (cập nhật) và không sao chép (truy vấn), cũng có thể được sửa đổi thông qua các cuộc gọi sao chép.
Cấu trúc dữ liệu PageMap được thiết kế để thực hiện việc đọc và ghi vào bộ nhớ một cách hiệu quả, cũng như hỗ trợ việc ghi điểm kiểm tra một cách hiệu quả, một mục tiêu cụ thể là làm cho hiệu suất không phụ thuộc vào tổng kích thước bộ nhớ, xin lưu ý rằng tên PageMap có nguồn gốc từ thực tế rằng tất cả các đơn vị đọc và ghi đều có kích thước 4KB, tương ứng với kích thước trang mà hệ điều hành bên dưới sử dụng.
PageMap lưu trữ trạng thái trong hai lớp, lớp đầu tiên gọi là bộ lưu trữ, là các tệp từ điểm kiểm tra trước đó, chúng đại diện cho trạng thái tại độ cao điểm kiểm tra trước đó, lớp thứ hai, tức là các trang gia tăng, đại diện cho tất cả các thay đổi kể từ điểm kiểm tra đó và được lưu trữ trong RAM.
Khi đọc từ PageMap, dữ liệu trả về sẽ được lấy từ các trang gia tăng hoặc từ tệp điểm kiểm tra (nếu thiếu), việc ghi vào PageMap được thực hiện bằng cách sửa đổi các trang gia tăng với dữ liệu mới.
Vòng đời điểm kiểm tra
Nhiệm vụ chính của lớp lưu trữ là ghi điểm kiểm tra vào đĩa và giữ cho tất cả PageMap luôn được cập nhật, khi ghi điểm kiểm tra mới, tất cả các trang gia tăng sẽ được làm mới vào đĩa, từ đó cập nhật phần lưu trữ của tất cả các PageMap.
Để đảm bảo tất cả dữ liệu được lưu, các bản sao cần luôn giữ điểm kiểm tra mới nhất đã được ký ngưỡng, điều này có nghĩa là không thể đơn giản ghi đè lên tệp điểm kiểm tra cũ, vì bất kỳ sửa đổi nào như vậy sẽ thay đổi điểm kiểm tra trước đó trước khi điểm kiểm tra mới hoàn toàn được ghi, do đó có nguy cơ mất dữ liệu, trong khi đó, việc ghi một điểm kiểm tra hoàn chỉnh vào đĩa mỗi 500 vòng (tối đa 1TB) sẽ rất tốn kém, ngược lại, việc tạo điểm kiểm tra mới bao gồm 3 bước cơ bản:
Sao chép điểm kiểm tra cũ vào thư mục tạm thời, được gọi là tip;
Sửa đổi tip để đại diện cho dữ liệu của điểm kiểm tra mới;
Đổi tên tip thành thư mục điểm kiểm tra mới (để tạo điểm kiểm tra mới một cách nguyên tử).
Bước đầu tiên có thể là bước tốn kém nhất, vì trạng thái càng lớn thì thời gian cần thiết để sao chép tệp càng lâu, vì vậy tệp điểm kiểm tra càng lớn.
Tuy nhiên, đó chính là nơi mà định dạng tệp của điểm kiểm tra và cây kết hợp theo dạng nhật ký phát huy tác dụng, bằng cách sử dụng LSMT, bước này có chi phí thấp và không mở rộng theo kích thước trạng thái, ngược lại, trước khi thiết kế lại LSMT, bước này chậm và không thể đoán trước.
Cây kết hợp theo dạng nhật ký
Cây kết hợp theo dạng nhật ký (LSMT) là một cấu trúc dữ liệu được sử dụng rộng rãi, đặc biệt thích hợp cho cơ sở dữ liệu, trên máy tính Internet, chúng được sử dụng làm nền tảng cho phần lưu trữ của PageMaps, một vấn đề đặc biệt mà nó có thể giải quyết là nó đơn giản hóa bước 'sao chép' trong vòng đời điểm kiểm tra, vì tất cả các tệp chỉ được ghi một lần và không bao giờ bị sửa đổi.
Sử dụng LSMT, để sửa đổi trạng thái (logic) bằng cách ghi thêm tệp phủ, để đọc giá trị của một trang, thuật toán trước tiên kiểm tra các tệp phủ đã được ghi gần đây để xem có trang đó trong tệp đó hay không, nếu có, thì sẽ đọc giá trị của trang từ tệp đó, nếu không, kiểm tra tệp phủ cũ hơn tiếp theo, trong triển khai mà máy tính Internet sử dụng, nếu trang không có trong bất kỳ tệp phủ nào, nó sẽ được đọc là toàn số không.
Hình dưới đây cho thấy một tập hợp ba tệp phủ đại diện cho trạng thái container, mũi tên dọc cho thấy các đọc dữ liệu khác nhau và các tệp cuối cùng đọc dữ liệu.
Vòng đời điểm kiểm tra của LSMT như sau:
Liên kết cứng tất cả các tệp của điểm kiểm tra trước đó vào một thư mục tạm thời, được gọi là tip;
Ghi tệp phủ mới chứa tất cả các thay đổi kể từ điểm kiểm tra trước đó;
Đổi tên tip thành thư mục điểm kiểm tra mới (để đảm bảo tính nguyên tử).
Điều quan trọng là mỗi tệp phủ chỉ được ghi một lần và sẽ không bao giờ bị sửa đổi, do đó, việc thiết lập nhiều điểm kiểm tra trên đĩa và chia sẻ một số tệp giữa chúng bằng liên kết cứng là an toàn, xin lưu ý rằng nếu vòng đời điểm kiểm tra cố gắng sửa đổi bất kỳ tệp nào, quy trình tương tự này sẽ không hoạt động, nếu tệp có nhiều liên kết cứng, việc sửa đổi bất kỳ tệp nào trong số đó sẽ thay đổi dữ liệu trong tất cả các liên kết cứng, điều này sẽ làm sai lệch các điểm kiểm tra đã được xác thực trước đó.
Cây kết hợp theo dạng nhật ký có thể lưu trữ nhiều phiên bản của cùng một phạm vi dữ liệu, điều này dẫn đến chi phí lưu trữ, được định nghĩa là tỷ lệ giữa kích thước của tất cả các tệp phủ và kích thước logic của dữ liệu mà chúng đại diện, ngoài ra, dữ liệu có thể phân tán trên nhiều tệp.
Khi chi phí lưu trữ hoặc số lượng tệp phủ tăng lên, việc triển khai lớp lưu trữ sẽ sắp xếp việc hợp nhất, hợp nhất thông qua việc lấy một tập hợp các tệp phủ và thay thế chúng bằng một tệp đơn chứa phiên bản mới nhất của mỗi dữ liệu, việc hợp nhất được sắp xếp cho PageMap có chi phí lưu trữ hoặc số lượng tệp đặc biệt cao và được thực hiện ở nền để không cản trở việc thực hiện tin nhắn của container.
Thiết kế trước đây sử dụng Reflinks
Lớp lưu trữ ban đầu của máy tính Internet không phụ thuộc vào LSMT, từ năm 2021 khi máy tính Internet ra đời đến năm 2024, lớp lưu trữ đã phụ thuộc rất nhiều vào việc liên kết lại.
Liên kết lại, đôi khi cũng được gọi là sao chép khi viết, là một thao tác hệ thống tệp được sử dụng để sao chép tệp, một số hệ thống tệp hỗ trợ thao tác này, các bản sao của máy tính Internet sử dụng hệ thống tệp XFS hỗ trợ thao tác này, liên kết lại khác với sao chép tệp thông thường ở chỗ nó không sao chép toàn bộ nội dung tệp, ngược lại, hệ thống tệp ghi nhớ dữ liệu nào được chia sẻ giữa tệp gốc và tệp mới, liên kết lại cũng khác với liên kết cứng ở chỗ cả hai tệp có thể được sửa đổi độc lập với nhau.
Trong thiết kế lớp lưu trữ cũ, cách thức hoạt động của vòng đời điểm kiểm tra như sau:
Liên kết lại tất cả các tệp của điểm kiểm tra trước đó vào một thư mục tạm thời, được gọi là tip;
Sửa đổi các tệp trong tip dựa trên tất cả các thay đổi kể từ điểm kiểm tra trước đó;
Đổi tên tip thành thư mục điểm kiểm tra mới.
Một lợi thế tiềm năng là PageMap sẽ được đại diện bởi một tệp duy nhất trong điểm kiểm tra, từ đó tránh chi phí lưu trữ, tuy nhiên, để sửa đổi tệp cho phù hợp với độ cao điểm kiểm tra mới, cần phải liên kết lại các tệp tương ứng của điểm kiểm tra trước đó thay vì liên kết cứng.
Lợi thế của LSMT so với Reflinks
Về nguyên tắc, liên kết lại đảm bảo tốc độ của liên kết cứng và khả năng của bản sao, thật không may, khi nhu cầu dữ liệu của máy tính Internet ngày càng tăng (dù là thông lượng I/O hay tổng lượng dữ liệu), liên kết lại đã trở thành một điểm nghẽn về hiệu suất vì nhiều lý do.
1. Tốc độ liên kết lại chậm: Thời gian cần thiết để liên kết lại tệp có thể khác nhau rất nhiều, trong một số trường hợp có thể chỉ cần vài giây, nhưng trong các thí nghiệm, chúng tôi cũng quan sát thấy rằng việc liên kết lại 370GB cần đến 10 giờ, trong logic điểm kiểm tra cũ của máy tính Internet, bước liên kết lại 10 giờ sẽ dẫn đến việc toàn bộ subnet ngừng hoạt động trong 10 giờ.
Phân mảnh sẽ dẫn đến tốc độ liên kết lại kém, bên trong, hệ thống tệp XFS duy trì cấu trúc dữ liệu ánh xạ các phần khác nhau của tệp đến các khối dữ liệu thực trên đĩa, khi chi phí để duyệt qua các cấu trúc dữ liệu này trở nên rất cao, phân mảnh sẽ xảy ra và tốc độ liên kết lại sẽ chậm.
Sự phân mảnh đặc biệt có thể được kích hoạt bởi chuỗi sau: việc ghi tệp lớn, sau đó liên kết lại, việc ghi một trong các bản sao nhiều lần, sau đó liên kết lại, và nhiều hơn nữa, thật không may, với quy trình điểm kiểm tra trên máy tính Internet, việc sử dụng container nhiều sẽ kích hoạt hành vi này.
Mặt khác, liên kết cứng có hiệu suất nhất quán, không bị ảnh hưởng bởi bất kỳ vấn đề phân mảnh nào.
Trước khi giới thiệu cây kết hợp theo dạng nhật ký, đã thực hiện nhiều biện pháp tạm thời, bao gồm việc chống phân mảnh tệp thủ công (bằng cách đọc tệp và ghi lại) và ghi tệp vào các phần liên tục lớn hơn, cả hai phương pháp này đều có giá phải trả là độ phóng đại ghi lớn hơn và có thể dẫn đến gián đoạn kéo dài tới 30 phút.
2. Kích thước trạng thái tối đa: Ngoài thời gian liên kết lại rất lâu do phân mảnh quá nhiều, ngay cả khi phân mảnh ở mức trung bình, thời gian liên kết lại cũng sẽ tỷ lệ thuận với tổng lượng dữ liệu được lưu trữ trên subnet, trong các triển khai trước đó của lớp lưu trữ, máy tính Internet quy định rằng mỗi subnet không được lưu trữ quá 700GB, con số này chủ yếu phụ thuộc vào lượng dữ liệu phân mảnh trung bình mà có thể liên kết lại trong vòng 20-30 giây.
Khi sử dụng liên kết cứng, thời gian điểm kiểm tra sẽ không mở rộng theo cách tương tự với kích thước dữ liệu, do đó loại bỏ điểm nghẽn này.
3. Hiệu suất đa luồng kém: Một trong những mục tiêu của logic điểm kiểm tra là tránh các thao tác đồng bộ càng nhiều càng tốt, vì trong thời gian điểm kiểm tra, việc thực hiện container sẽ bị ngừng lại, tự nhiên, cần phải xem xét xem có thể thực hiện liên kết lại ở nền trong khi việc thực hiện tiếp tục hay không (ngay cả khi tốc độ rất chậm), thật không may, kinh nghiệm cho thấy rằng không thể liên kết lại và đọc tệp cùng một lúc, do đó, việc thực hiện liên kết lại song song chỉ làm chậm quá trình thực hiện.
Trong thiết kế lớp lưu trữ mới, liên kết cứng diễn ra song song với việc thực hiện và chúng không làm giảm tốc độ của nhau.
4. Bộ đệm: Như đã đề cập trước đó, việc đọc dữ liệu từ bộ nhớ container sẽ đồng thời đọc dữ liệu từ RAM và từ tệp điểm kiểm tra bên dưới, việc đọc lại cùng một tệp thường không dẫn đến việc phải đọc dữ liệu từ ổ cứng hoặc SSD nhiều lần, ngược lại, dữ liệu này sẽ được hệ điều hành lưu trữ trong bộ đệm, thật không may, liên kết lại sẽ gây rối với bộ đệm, bởi vì việc liên kết lại tệp trước và sau đó đọc từ bản sao mới sẽ không sử dụng bộ đệm, do đó, trên máy tính Internet, sau khi ghi điểm kiểm tra, người ta sẽ thấy nhiều đỉnh cao (và chậm) trong việc đọc đĩa, vì tất cả các đọc sẽ chuyển sang tệp mới, ngoài ra, việc tính toán rõ ràng (tức là tính toán băm của tất cả các tệp điểm kiểm tra để đạt được sự đồng thuận) cũng hưởng lợi rất nhiều từ bộ đệm tốt hơn.
Ngược lại, khi tệp được liên kết cứng, tất cả các bộ nhớ đệm sẽ được giữ lại, bất kỳ dữ liệu nào được đọc hoặc ghi gần đây, ngay cả khi xảy ra trong khoảng thời gian giữa các điểm kiểm tra trước đó, vẫn sẽ được lưu trong bộ nhớ đệm để có thể truy xuất nhanh chóng.
Kết quả
Lớp lưu trữ LSMT đã được triển khai trên tất cả các subnet của máy tính Internet trong vài tuần của quý II năm 2024, hình dưới đây cho thấy các chỉ số trước và sau khi nâng cấp mã bản sao, trong đó đường thẳng đứng màu đỏ cho thấy thời điểm kích hoạt lớp lưu trữ LSMT.
Hình đầu tiên cho thấy thời gian điểm kiểm tra của subnet w4rem, subnet này lưu trữ các container cho tích hợp Bitcoin, so với nhiều subnet khác, các container lưu trữ trong subnet Bitcoin có tải công việc ghi nặng, vì vậy, phân mảnh là một vấn đề đặc biệt đáng lo ngại cho subnet này.
Từ các chỉ số, thời gian điểm kiểm tra đã giảm từ hơn 20 giây xuống chỉ còn 1-2 giây, điều này chủ yếu là do việc loại bỏ bước liên kết lại, bước này đã chiếm phần lớn thời gian 20 giây.
Đối với người dùng container Bitcoin, lợi ích là tốc độ phản hồi nhanh hơn, trong thời gian điểm kiểm tra, subnet sẽ không xử lý bất kỳ cuộc gọi cập nhật hoặc truy vấn sao chép nào, nếu người dùng gửi cuộc gọi cập nhật hoặc truy vấn sao chép đến container Bitcoin vào lúc bắt đầu điểm kiểm tra, thì sẽ mất ít nhất 20 giây để nhận phản hồi, việc sử dụng LSMT làm lớp lưu trữ có thể gần như loại bỏ thời gian phản hồi không nhất quán như vậy.
Hình thứ hai cho thấy tỷ lệ hoàn thành cuối cùng trên subnet k44fs, tỷ lệ hoàn thành cuối cùng hoặc tỷ lệ khối là số khối mà subnet sản xuất mỗi giây.
Máy tính Internet giới hạn số lượng lệnh thực hiện trong mỗi vòng vào giá trị tương ứng với khối lượng công việc mà nó có thể hoàn thành trong một giây, để tỷ lệ cuối cùng có thể duy trì ở mức trên 1 khối mỗi giây.
Trước khi nâng cấp lên lớp lưu trữ LSMT, tỷ lệ hoàn thành có xu hướng giảm đều, điều này hoàn toàn tương ứng với điểm kiểm tra, điểm kiểm tra ảnh hưởng đến tỷ lệ hoàn thành chủ yếu vì hai lý do, đầu tiên là thời gian cần thiết để tạo điểm kiểm tra, trong thời gian này không có khối nào được thực hiện, sau khi nâng cấp, ảnh hưởng này sẽ giảm bớt, vì thời gian điểm kiểm tra thường ngắn hơn nhiều.
Lý do thứ hai là hành vi bộ đệm của lớp lưu trữ LSMT tốt hơn, đặc biệt, bước liên kết lại trong việc thực hiện lớp lưu trữ cũ dẫn đến việc mất bộ đệm, do đó, sau điểm kiểm tra, bất kỳ container nào được đọc từ bộ nhớ của nó đều sẽ dẫn đến việc bản sao lấy dữ liệu đó từ đĩa, điều này chậm hơn nhiều so với dữ liệu tương tự có sẵn trong bộ đệm RAM, lớp lưu trữ LSMT mới không gặp phải vấn đề này.
Như các chỉ số cho thấy, sự giảm sút tỷ lệ hoàn thành cuối cùng sau khi nâng cấp rõ rệt nhỏ hơn, điều này bởi vì tốc độ của điểm kiểm tra bản thân nhanh hơn, không còn cần phải liên kết lại và bộ đệm tệp cũng không bị mất hiệu lực nữa.
Đối với người dùng container trên subnet này, điều này có nghĩa là thời gian phản hồi nhanh hơn và thông lượng cao hơn.
Kết luận
Thiết kế lại lớp lưu trữ của máy tính Internet xung quanh cấu trúc dữ liệu cây kết hợp theo dạng nhật ký là một khoản đầu tư quan trọng cho khả năng mở rộng và hiệu suất của nền tảng, nó không chỉ cho phép một số tải công việc tốn bộ nhớ mà còn cho phép máy tính Internet cung cấp trạng thái lớn hơn cho các container.
Trong bối cảnh chạy các mô hình ngôn ngữ lớn trên chuỗi và trí tuệ nhân tạo, các container thao tác trên dữ liệu lớn là đặc biệt thú vị, vì những container này không chỉ phụ thuộc vào lưu trữ dữ liệu lớn mà còn phụ thuộc rất nhiều vào thông lượng I/O.
Hơn nữa, nó còn đặt nền tảng cho những cải tiến tiếp theo, chẳng hạn như giảm tải công việc nặng nề trên đường đi chính bằng cách khai thác tốt hơn tính đồng thời, từ đó làm cho tốc độ phản hồi của máy tính Internet nhanh hơn, kinh nghiệm từ lớp lưu trữ ban đầu cho thấy việc tránh liên kết lại là rất quan trọng để đạt được điều này, và cấu trúc dữ liệu LSMT có thể làm được điều đó.
Bạn có thích bài viết này không? Chia sẻ suy nghĩ của bạn trên kênh DFINITY Developers X, tham gia chuyến hành trình Stellarator phần 2 cùng Luc Bläser vào ngày mai để khám phá sự bền vững chính xác hơn.
Nội dung IC mà bạn quan tâm
Tiến bộ công nghệ | Thông tin dự án | Hoạt động toàn cầu
Theo dõi kênh Binance IC
Nắm bắt thông tin mới nhất