Tác giả:
Tiến sĩ William Bain, CEO, ScaleOut Software.
Các ứng dụng doanh nghiệp hiện đại luôn chịu áp lực phải phản hồi tức thì, mở rộng liền mạch và cung cấp kết quả đáng tin cậy.
Từ bán lẻ và dịch vụ tài chính đến giao thông vận tải và hậu cần, các tổ chức ngày càng phụ thuộc vào thông tin chi tiết thời gian thực để thúc đẩy việc ra quyết định nhanh chóng.
Tuy nhiên, chỉ riêng cơ sở dữ liệu và các dịch vụ dựa trên đám mây, như chức năng serverless truy cập chúng, không được thiết kế để xử lý khối lượng truy cập dữ liệu cao do khối lượng công việc lớn tạo ra.
Các hệ thống này gặp khó khăn với cả thông lượng và độ trễ.
Trong hai thập kỷ qua, bộ nhớ đệm phân tán, còn được gọi là lưới dữ liệu trong bộ nhớ, đã được sử dụng để giải quyết những thách thức như vậy.
Bằng cách lưu giữ dữ liệu thay đổi nhanh trong bộ nhớ và phân phối nó trong một cụm máy chủ vật lý hoặc ảo, chúng đã giảm đáng kể độ trễ truy cập và giảm tải cho cơ sở dữ liệu.
Nội dung chính
Tại sao kiến trúc ngày nay không đáp ứng đủ
Mặc dù rất hiệu quả trong hơn hai thập kỷ, bộ nhớ đệm phân tán có những hạn chế của chúng.
Bằng cách coi dữ liệu được lưu trữ như các đối tượng lớn nhị phân (BLOB) mờ đục, chúng có thể phát sinh độ trễ truy cập ngày càng cao và bắt đầu gây áp lực lên kiến trúc mạng khi khối lượng công việc và kích thước đối tượng tăng lên.
Các chức năng serverless dựa trên đám mây không thể dễ dàng kết hợp bộ nhớ đệm dữ liệu trong bộ nhớ phân tán vào kiến trúc hướng sự kiện của chúng.
Để giải quyết chi phí phát sinh do lưu trữ BLOB, bộ nhớ đệm phân tán đã phát triển thành “cửa hàng cấu trúc dữ liệu”, nơi truy cập các đối tượng bằng API thực hiện các hành động cụ thể được triển khai bởi bộ nhớ đệm phân tán.
Ví dụ:
các đối tượng được lưu trong bộ nhớ cache có thể chứa bảng băm hoặc tập hợp đã sắp xếp.
Cách tiếp cận này hợp lý hóa việc truy cập và tăng hiệu suất ứng dụng.
Tuy nhiên, các cửa hàng cấu trúc dữ liệu hiện tại có những hạn chế ngăn cản các nhà phát triển ứng dụng tận dụng tối đa khái niệm này.
Bởi vì chúng chỉ cung cấp một tập hợp hạn chế các cấu trúc dữ liệu tích hợp sẵn, chúng không thể xử lý các trường hợp sử dụng cụ thể, chẳng hạn như triển khai một đối tượng chứa đơn xin thế chấp.
Việc thêm các cấu trúc dữ liệu mới có thể khó khăn và các nhà phát triển thường cần viết các tiện ích mở rộng bằng ngôn ngữ kịch bản như Lua hoặc viết mã và liên kết các tiện ích mở rộng vào dịch vụ bộ nhớ cache bằng C.
Những kỹ thuật này có thể phức tạp, khó bảo trì và không an toàn.
Biến bộ nhớ đệm phân tán thành một động cơ hoạt động
Để giải quyết những hạn chế của các cửa hàng cấu trúc dữ liệu ngày nay,ScaleOut Softwaregần đây đã giới thiệuScaleOut Active Caching, một phần mở rộng cho cơ sở hạ tầng bộ nhớ đệm phân tán của mình để nhúng và thực thi mã ứng dụng.
Nó cho phép các nhà phát triển triển khai các mô-đun do ứng dụng xác định – cấu trúc dữ liệu và mã quản lý chúng – vào bộ nhớ đệm phân tán của ScaleOut.
Các mô-đun này tăng hiệu suất ứng dụng, giảm tải cho máy khách và giảm chi phí mạng.
Chúng cũng cho phép một bộ nhớ đệm phân tán đảm nhận vai trò của các chức năng serverless trong việc xử lý tin nhắn sự kiện.
Một mô-đun API cho phép các nhà phát triển xây dựng và triển khai các cấu trúc dữ liệu tùy chỉnh, được gõ mạnh được viết bằng C# hoặc Java.
Các mô-đun API mở rộng khái niệm về các cấu trúc dữ liệu tích hợp sẵn để nhúng mã cụ thể của ứng dụng.
Chúng tùy chỉnh quyền truy cập bộ nhớ cache để đáp ứng các nhu cầu kinh doanh cụ thể bằng cách di chuyển chức năng này từ máy khách vào bộ nhớ đệm phân tán.
Vì các mô-đun này chạy trên tất cả các máy chủ bộ nhớ cache, chúng tự động mở rộng quy mô hiệu suất và loại bỏ việc di chuyển dữ liệu không cần thiết.
Các mô-đun API chạy trong các quy trình riêng biệt với dịch vụ bộ nhớ cache để cung cấp sự cô lập và tăng cường bảo mật.
Một loại mô-đun thứ hai, mô-đun tin nhắn, cũng triển khai các cấu trúc dữ liệu và mã cụ thể của ứng dụng, và giống như các mô-đun API, chúng truy cập và cập nhật các đối tượng được lưu trong bộ nhớ cache.
Tuy nhiên, thay vì xử lý các lệnh gọi API từ các ứng dụng máy khách, chúng tiếp nhận và xử lý tin nhắn.
Chúng kết nối với các trung tâm tin nhắn, như Kafka, AWS SQS hoặc một dịch vụ REST tích hợp sẵn để nhận tin nhắn từ các dịch vụ khác như một phần của kiến trúc hướng sự kiện.
Khi được sử dụng trên đám mây, các mô-đun tin nhắn có thể thay thế các chức năng serverless bằng cách xử lý tin nhắn đến trực tiếp trong bộ nhớ đệm phân tán.
Chúng giảm độ trễ trong việc truy cập dữ liệu trực tiếp và tránh sự cần thiết phải truy cập vào kho lưu trữ liên tục cho mọi tin nhắn.
Bộ nhớ đệm phân tán có thể tích hợp với nhiều loại kho lưu trữ liên tục, như Dynamo DB và Cosmos DB, để tự động truy xuất và cập nhật dữ liệu được lưu trữ.
Các mô-đun tin nhắn cũng giải quyết vấn đề đồng bộ hóa quyền truy cập vào kho lưu trữ liên tục bởi nhiều chức năng serverless.
Bộ nhớ đệm hoạt động trong thực tế
Giá trị của ScaleOut Active Caching trở nên rõ ràng khi nó được áp dụng cho các kịch bản đòi hỏi cả khả năng mở rộng và sự linh hoạt trong kinh doanh.
Hãy xem xét một công ty thương mại điện tử chuyên về quần áo.
Sử dụng các mô-đun API, công ty có thể triển khai logic tùy chỉnh vào bộ nhớ đệm phân tán để cải thiện trải nghiệm của khách hàng và cung cấp thông tin chi tiết kinh doanh trực tiếp.
Các công ty thương mại điện tử thường lưu trữ giỏ hàng trong bộ nhớ cache để giữ cho trang web của họ hoạt động nhanh dưới khối lượng công việc nặng.
Thay vì coi giỏ hàng là các đối tượng chung chung, công ty quần áo giờ đây có thể làm phong phú thêm logic giỏ hàng của mình với thông tin chuyên biệt, như loại trang phục, chất liệu, kiểu dáng, v.v.
Dữ liệu này có thể giúp công ty tính toán các danh mục quần áo nào đang thịnh hành theo khu vực hoặc mùa, theo dõi hiệu suất của các chương trình khuyến mãi đang diễn ra và tạo ra các đề xuất sản phẩm được cá nhân hóa dựa trên hành vi duyệt web của mỗi người mua sắm.
Kết quả là phản hồi tức thì cho người mua sắm và doanh nghiệp.
Các mô-đun tin nhắn mang lại lợi ích cho các ngành công nghiệp phải xử lý hàng nghìn sự kiện mỗi giây và duy trì khả năng phản hồi cao.
Ví dụ, các hãng hàng không sử dụng xử lý sự kiện để theo dõi vô số hoạt động giữ cho các hệ thống phức tạp của họ hoạt động.
Khi các điều kiện bất ngờ phát sinh, như hủy chuyến do thời tiết, khối lượng sự kiện có thể tăng nhanh chóng.
Bằng cách sử dụng các mô-đun tin nhắn để quản lý các đối tượng chuyến bay và hành khách, các hãng hàng không có thể sử dụng tốc độ và khả năng mở rộng của bộ nhớ đệm phân tán để đặt lại chỗ cho hành khách một cách hiệu quả trong khi tự động lưu lại các thay đổi.
Điều này loại bỏ chi phí và sự phức tạp của việc sử dụng các chức năng serverless, vốn thiếu bộ nhớ trong nhanh chóng và phải cạnh tranh để truy cập các kho lưu trữ dữ liệu liên tục.
Suy nghĩ cuối cùng
Sau khi phát triển từ kho lưu trữ thụ động cho dữ liệu thay đổi nhanh thành một cơ sở hạ tầng thông minh, hoạt động cung cấp năng lượng cho thế hệ ứng dụng trực tiếp tiếp theo, bộ nhớ đệm phân tán hiện đã đạt đến một điểm bùng phát.
Bằng cách kết hợp dữ liệu và logic ứng dụng lại với nhau,ScaleOut Active Cachingtăng tốc hiệu suất và cho phép các nhà phát triển xây dựng các hệ thống có thể mở rộng phù hợp với nhu cầu của họ.
Hiện có sẵn trongScaleOut Product Suite Version 6, nó giới thiệu một cách thức mới mạnh mẽ để khai thác sức mạnh của bộ nhớ đệm phân tán.
Hình ảnh:Unsplash
            
		




![[Tự học C++]  Số dấu phẩy động(float, double,…) trong C++](https://cafedev.vn/wp-content/uploads/2019/12/cafedevn_c_develoment-100x70.jpg)

