Вычислить дельту в ConcurrentHashmap в Java

Я использую ConcurrentHashmap в Java, и теперь я хочу скопировать эту хэш-карту в другую переменную, которая работает на сервере, и поэтому сначала я скопирую всю хэш-карту, но затем я хочу передать только дельту хэш-карты.

Например, у меня есть 20 записей, и 2 записи изменятся. Затем я хочу отправить сообщение о том, что были изменены только две записи, чтобы получить одинаковую хэш-карту на сервере и уменьшить перегрузку.

Итак, есть ли идея, как я могу рассчитать эту дельту? Спасибо.


person atticus3000    schedule 04.07.2013    source источник
comment
Для этого вы можете использовать MapDifference Гуавы.   -  person fge    schedule 04.07.2013


Ответы (1)


Как вы переносите карту на сервер?

Первоначальным решением было бы клонировать исходную карту непосредственно перед отправкой. Если первый раз, пришлите полный клон. Если нет, сравните текущий клон с предыдущим и отправьте различия. Замените предыдущий клон новым и сделайте то же самое в следующей итерации.

person APinto    schedule 04.07.2013