Я делаю POC с Aerospike. Кажется, он соответствует всем моим потребностям, кроме одного. Когда я устанавливаю TTL в записи, он истекает после истечения срока действия TTL, как и ожидалось, но у меня есть требование, когда я хочу, чтобы аэрокосмическая станция уведомила меня, когда выходила запись. Возможно ли это?Aerospike TTL прослушиватель
ответ
Вы можете получить запись TTL с UDF и сравнить с текущим временем
Скелет UDF дается здесь:
локальная функция get_metadata (ЗАП) возвращение record.ttl (РЭЦ); конца
https://discuss.aerospike.com/t/how-to-query-the-metadata-such-as-ttl-of-record-from-tools/916
Я подозреваю, что это будет довольно ресурс тяжелой, если вы делаете это для каждой записи периодически, но это возможно, чтобы иметь свой бег приложения, UDF каждый так часто и пинг уведомления, когда запись близко к истечению срока действия.
Если вы посмотрите на более общий уровень, вы можете grep журналы для NSUP (это подсистема, которая обрабатывает истечение срока действия и выселение), и есть четкое сообщение журнала, указывающее, когда NSUP удаляет записи.
Aerospike не сделает это за вас из коробки. Вы можете сделать это, выполнив задание периодического сканирования. В политике проверки вы можете установить includeBinData в false. Это будет очень эффективное сканирование, поскольку оно будет возвращать только метаданные записей. В метаданных вы можете проверить ttl и прочитать полные записи, срок действия которых истекает.
Благодарим за интерес к аэрокосмической промышленности. Как вы хотите, чтобы Aerospike уведомил вас?
У нас был этот запрос в течение длительного времени и рассмотрели варианты осуществления. В распределенной системе существует ряд проблем.
Например, мы могли бы записать запись в файл журнала в специальный «файл истечения». Конечно, эти данные могут быть потеряны при сбое сервера, поэтому он не является избыточным.
Другим механизмом является вставка в очередь или выполнение сетевого события (вызов REST). Для этого также требуется распределенный журнал, чтобы уведомления не удалялись (что делает Aerospike с его функцией перекрестного центра обработки данных).
Таким образом, меня интересует вид механизма уведомления, который вы хотели бы.
Метод Бен Бэйтс предлагает использовать функцию сканирования UDF для переноса выдержки в такое сканирование UDF. Затем в UDF вы также можете уведомить об этом. Это должно работать, но вам нужно поместить TTL в корзину и не использовать стандартный механизм TTL. Это, безусловно, будет менее эффективным, чем стандартный механизм TTL в C, но может обеспечить то, что вам нужно.
- 1. Индивидуальные TTL для элементов списка в Aerospike
- 2. AeroSpike создал TTL в моих записях
- 3. Найти записи с TTL 0 в Aerospike
- 4. Aerospike как кеш дедупликации
- 5. Aerospike Config для небольшого сервера
- 6. Aerospike autocompletion
- 7. Aerospike - Внедрение блокировки «пакетной операции»
- 8. Aerospike: получить время upsert без явного хранения его для записей с TTL
- 9. Aerospike - «n_bytes_memory пошел отрицательный» в пространстве имен с памятью с ttl
- 10. Установите TTL для большого аэросайтового списка из node.js-клиента
- 11. aerospike: удалить всю запись в комплекте
- 12. Aerospike не начиная
- 13. Aerospike connect using JavaScript
- 14. Aerospike: Удалить все ящики
- 15. Aerospike AMC - Невозможно подключиться
- 16. Aerospike clrestore2 не работает
- 17. npm aerospike install issue
- 18. Aerospike UDF Logging - сообщение
- 19. Aerospike reverse hash PK
- 20. Aerospike - SyntaxError: Неожиданный токен {
- 21. Aerospike проектирование базы данных
- 22. Aerospike конфигурации In-Memory
- 23. Aerospike на EC2
- 24. Debug aerospike lua UDF
- 25. Тестирование модулей для Aerospike
- 26. Aerospike Aql WARN AEROSPIKE_ERR_TIMEOUT
- 27. Aerospike Replication Without Persistence
- 28. nodejs + aerospike сбои
- 29. Хранить данные в aerospike
- 30. Проблема непротиворечивости с Aerospike
Звонок REST будет отличным. –
По сравнению с Redis. Вы можете начать redis с уведомлениями о событиях, и вы можете настроить, какие типы событий вы хотите, чтобы ваш сервер Redis мог уведомлять (например, писать, читать, истекать и т. Д.), Поэтому вы можете подписаться на ваш сервер и когда что-то происходит, срабатывает обработчик событий. Что-то вроде этого было бы очень полезно для аэроспей. Я рассматриваю возможность использования аэрокосмического оборудования, но это требование для меня, и я не могу заплатить цену за выполнение запросов каждый раз, чтобы проверить, что скоро истечет, ни разбора журналов. это не хорошо в исполнении, и это любительское решение. –
@CesarVillasana Ну, кто-то должен периодически проверять, истекает ли ключ, и это супер неоптимально, независимо от того, сделано ли это на БД или на стороне клиента.Redis реализует полупассивный способ истечения срока действия ключей, поэтому вы получаете только событие истечения срока действия, когда ключ был удален, а не когда он истек. – spektom