Управление размером кучи распределенной карты Hazelcast - PullRequest
0 голосов
/ 17 мая 2019

Я использую Hazelcast в качестве встроенной распределенной карты в своих API, таких как MemTable, для накопления записей перед отправкой в ​​другое хранилище. Мой вопрос:

Можно ли управлять размером кучи с помощью объекта LocalMapStats, предоставленного для IMap?

Я читал об этом объекте, и хотя такие методы, как getHeapSize () или getOwnedEntryMemoryCost () плюс getBackupEntryMemoryCost (), возможно, могли бы дать мне стоимость памяти для сравнения с порогом, а затем решить, что делать с данными.

Заранее спасибо.

1 Ответ

0 голосов
/ 20 мая 2019

Вы можете определить стоимость кучи Карты через API. Это также легко сделать с помощью консоли сценариев на портале центра управления Hazelcast. Код как показано ниже

function findOverallDataSizeImap() {
var objs = hazelcast.getDistributedObjects();
var len = objs.length;
var output='';
var totalSizeInMB=0.0;
for(var i=0;i<len;i++){
if(objs[i] instanceof com.hazelcast.core.IMap){
output = output+' Name : '+objs[i].getName() +' Size (MB) :'+
(objs[i].getLocalMapStats().getHeapCost()/100000)+' \n';
totalSizeInMB=totalSizeInMB+(objs[i].getLocalMapStats().getHeapCost()/100000);
}
}
output = output + ' Total Size (MB) = ' + totalSizeInMB;
return output;
}
...