API Lua map не включает большинство операций типа данных Map , реализованных в клиентах (например, MapOperation * 1006 клиента Java). * учебный класс).
Производительность операций с собственной картой значительно выше, так почему бы вам использовать здесь UDF вместо вызова remove_by_rank_range
из клиента?
Следующее, что нужно знать, это то, что любая операция записи, будь то UDF или клиент, вызывающий метод map remove_by_rank_range
, сначала захватывает блокировку записи. Я ответил на другой вопрос stackoverflow об этом поток запросов . Ваша UDF не дает никакой выгоды описанной вами проблеме по сравнению с операцией карты клиента.
Если вы хотите ограничить размер вашей карты, вы должны делать это в то же самое время, когда вы добавляете новые элементы на карту. Эти две операции будут объединены с operate()
- вставкой с последующим удалением. У меня есть пример того, как это сделать в rbotzer / aerospike-cdt-examples .