Bạn đang xem tài liệu về Apigee Edge.
Truy cập vào tài liệu Apigee X. thông tin
Chính sách Key-Value Map (KVM) là một thành phần cơ bản trong việc quản lý cấu hình và giá trị động trong hệ thống. Tuy nhiên, sự hiện diện và tra cứu các khoá không tồn tại trong các KVM này có thể ảnh hưởng đáng kể đến hiệu suất và dẫn đến độ trễ tăng lên.
Antipattern
Khi một chính sách KVM cố gắng truy xuất giá trị cho một khoá không tồn tại trong Key-Value Map, thì chính sách đó sẽ dẫn đến các lệnh gọi bổ sung đến cơ sở dữ liệu Cassandra. Việc tăng cường giao tiếp với cơ sở dữ liệu phụ trợ, đặc biệt là đối với các khoá không tồn tại, sẽ tiêu tốn nhiều tài nguyên và thời gian hơn, do đó làm tăng độ trễ tổng thể của yêu cầu.
Tác động
Tác động chính của mẫu chống này là độ trễ thời gian chạy tăng lên và lỗi kho dữ liệu. Tốc độ xử lý và khả năng truy cập dữ liệu của hệ thống bị ảnh hưởng tiêu cực, vì tỷ lệ cao của các lượt tra cứu khoá không tồn tại là nguyên nhân chính gây ra độ trễ quan sát được. Đây là đặc điểm thời gian chạy phụ thuộc trực tiếp vào bản chất của các yêu cầu đến.
Hiện tượng
- Hệ thống cho thấy độ trễ khi bắt đầu chạy tăng lên.
- Lỗi kho dữ liệu, cho biết vấn đề về tốc độ xử lý và quyền truy cập vào dữ liệu.
Thông báo lỗi
Phân tích tệpsystem.log
cho thấy có các lỗi lặp lại liên quan đến Cassandra, cụ thể là liên quan đến việc truy xuất dữ liệu và trạng thái nhóm máy chủ. Các thông báo lỗi chính được ghi nhận bao gồm:
ERROR DATASTORE.CASSANDRA - AstyanaxCassandraClient.get() : Exception while fetching rowKey : [7ccd1062-6e05-4d12-aa86-5c7bf944682d, app_credentials, kms] from column family:{} in keyspace:{}
ERROR DATASTORE.CASSANDRA - AstyanaxCassandraClient.logHostPoolInCaseOfErrors() : Cassandra Host Pool under use - All Hosts: xx.xx.xx.102(xx.xx.xx.102):9160,xx.xx.xx.101(xx.xx.xx.101):9160,xx.xx.xx.103(xx.xx.xx.103):9160. Active Hosts: xx.xx.xx.101(xx.xx.xx.101):9160,xx.xx.xx.102(xx.xx.xx.102):9160
Chẩn đoán
Phân tích tệp system.log
của trình xử lý thông báo cho thấy các giá trị L1MissL2Miss
tăng lên trong báo cáo chỉ số KVM 5 phút.
Ví dụ: CACHE.org__env__KVM-Example.statistics [hitCount=215 L1MissL2Miss=14120 hitRate=5 L1MissL2Hit=212 getCount=556]
Phương pháp hay nhất
Để giảm thiểu vấn đề này, bạn nên thêm các giá trị giả cho các khoá không tồn tại trong KVM. Phương pháp này sẽ giảm số lượng lệnh gọi đến Cassandra cho các khoá không tồn tại, giúp cải thiện hiệu suất và giảm độ trễ.