Как удалить данные старше нескольких дней в базах данных rockdb или leveldb?

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


person Michael    schedule 12.09.2016    source источник
comment
поэтому я предположил, что вы хотите, чтобы данные имели ttl?   -  person sel-fish    schedule 12.09.2016
comment
Какова структура данных, которые вы храните в базе данных?   -  person amirouche    schedule 08.11.2016
comment
Какие языки вы используете?   -  person amirouche    schedule 25.12.2016
comment
Я использую golang, если вы имеете в виду язык программирования   -  person Michael    schedule 18.02.2017
comment
@sel-fish да, я думаю, что ttl - это то, что я хотел   -  person Michael    schedule 18.02.2017
comment
@Michael добавьте метку времени в запись leveldb/rocksdb и измените логику компакта, чтобы удалить запись с истекшим сроком действия, на которую вы можете ссылаться github.com/lotair/tair/tree/develop/src/storage/ldb/leveldb   -  person sel-fish    schedule 18.02.2017


Ответы (1)


RocksDB имеет специальную базу данных, которая называется Date_tiered DB. Вы можете указать ttl, с которым вы хотите открыть базу данных. Он в основном разбивает данные, которые вставляются в несколько CF, и удаляет CF целиком, когда истек срок ttl. Обратите внимание, что когда БД открывается во второй раз с другим ttl, время истечения срока действия данных рассчитывается на основе новых.

Кроме того, вы можете создать свой собственный custom compaction filter, чтобы удалить старые данные во время сжатия. Это на самом деле избавляет от боли при удалении и может быть выполнено в качестве фоновой работы.

person krithikaGopalakrisnan    schedule 01.08.2018