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à việc 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 việc tăng độ trễ.
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, chính sách này 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à làm tăng độ trễ thời gian chạy và lỗi kho dữ liệu. Tốc độ xử lý và quyền 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à một đặ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 có độ trễ khi bắt đầu chạy cao.
- Lỗi kho dữ liệu, cho biết vấn đề về tốc độ xử lý và quyền truy cập 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ủ. Một số thông báo lỗi chính thường gặp:
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ễ.