mirror of https://github.com/voidlizard/hbs2
44 lines
1.8 KiB
Plaintext
44 lines
1.8 KiB
Plaintext
TODO: storage-weak-refs
|
||
Сделать ссылки, которые удаляются по достижению каких-то событий (например, истечение ttl).
|
||
Полезно, что бы не разрастался периметр к моменту, когда заработает сборка мусора.
|
||
Нужно, например, что бы кэшировать групповые ключи, так как сейчас сложно
|
||
сделать чистые (детерминированные) групповые ключи, да это и опасно.
|
||
|
||
Кейс: сохраняем ссылку на ключ, как SomeRef например.
|
||
|
||
По истечению заданного ttl ссылка должна быть удалена.
|
||
|
||
Как, например?
|
||
|
||
1. Это свойство hbs2-storage, не hbs2-peer
|
||
|
||
2. Поддержать тип --- обёртку?
|
||
Например, сейчас для любого типа ключа вычисляется хэш,
|
||
и ссылка пишется.
|
||
Можно добавить какую-то обёртку с метаданными, что писалась
|
||
не только ссылка, но и метаданные, например:
|
||
|
||
data WithExpiration t a = WithExpiration t a
|
||
|
||
instance Hashed (WithExpiration t a) where
|
||
hash (WithExpiration t a) = hash a
|
||
|
||
внутри сторейджа собирать метаданные в формате
|
||
[(String,String)] и писать в некий файл
|
||
|
||
A/X.metadata в виде:
|
||
|
||
key: value
|
||
key: value
|
||
key: value
|
||
|
||
3. Тогда при чтении (?) или время от временени:
|
||
|
||
читаем метаданные, смотрим, если ссылка протухла
|
||
--- то удаляем её.
|
||
|
||
|
||
|
||
|
||
|