@proGO

Страница 407 из 1674
Мерлин
15.01.2017
13:30:37
оверкилл в данном случае в человекочасах для настройки всего этого вместо примитивной фифо очереди
Тогда уже оверкилл - это пилить файлопомойку самому, когда есть готовые реализации

DreamingKitten
15.01.2017
13:31:09
Тогда уже оверкилл - это пилить файлопомойку самому, когда есть готовые реализации
есть готовые реализации файлопомоек, чистящих всё что старше суток? :)

Мерлин
15.01.2017
13:31:20
А с БД у тебя будет возможность гибко настраивать политики и т.д.

Google
DreamingKitten
15.01.2017
13:32:11
Maxim
15.01.2017
13:32:17
У меня в БД не только время хранится, но и оригинальное имя файла и его ID, который будет хвостом ссылки

Roman
15.01.2017
13:32:54
id можно хеш от имени

Maxim
15.01.2017
13:33:03
Можно упороться и запилить NoSQL на txt'шках, но я не настолько поехал.

id можно хеш от имени
Имена могут и совпадать

Несмотря на разный формат и вес

Roman
15.01.2017
13:33:37
Полный путь в fs

Если он совпадает, знаяит это один и тот же файл :)

Мерлин
15.01.2017
13:34:02
прицепить луа, сделать гуишку....
Можно поднять https://github.com/minio/minio и прицепить к нему какую угодно вебморду

Roman
15.01.2017
13:36:12
Лучше сразу купить сервис в Амазоне за 100$ в месяц. Ладно чуваки, я отойду в Java чат, там как то разумнее чем здесь сейчас.

Google
Serge
15.01.2017
13:39:42
А ТЗ и нет, я чисто для себя файлопомойку делаю с расчётом на то, что им также будут пользоваться знакомые и не очень люди. Хрен знает, может внезапно и нагрузка пойти либо засчёт веса файлов, либо засчёт их количества.
А гонору то было.. "надо вот так и всё" Еще раз. При попытке чтения файла или папки проверяешь что из этого устарело и ставишь в очередь на удаление или удаляешь сразу. Показываешь только не устаревшее. Так инвалидируют в этом мире подобные вещи все вменяемые люди.

Если достаточно часто проверять, то можно и не удалять при чтении, просто игнорировать

Alexey
15.01.2017
13:41:10
find /opt/files/ -mtime +1|xargs rm -f - не благодари!
-delete же проще. Ну и для xargs надо еще print0 у файнда, а то он на пробелах сломается. А так это лучший вариант.

Serge
15.01.2017
13:41:42
В твоей фс

Если хочешь от последнего чтения, бери atime

Kirill
15.01.2017
13:43:15
При чем тут бд? У файла есть время создания же
чтобы можно было без лишнего геморроя сделать разное время жизни файлов

Serge
15.01.2017
13:43:16
Ну и не было такого в тз

Да и все равно точно также делается

Kirill
15.01.2017
13:46:39
Это лишнее
тогда да, вариант без бд тоже ничего.

Maxim
15.01.2017
13:47:29
тогда да, вариант без бд тоже ничего.
Я ж примерно то же самое предлагал

низзя так делать

только таймер через базу

Это про таймер, да, согласен

Google
Maxim
15.01.2017
13:49:01
Но примерно тогда же я спрашивал про свойства файлов и вариант их чтения

Roman
15.01.2017
13:49:10
Надо где то хранить связку id - имя файла. Или id должен быть именем файла.

Kirill
15.01.2017
13:49:19
Serge
15.01.2017
13:50:26
Надо где то хранить связку id - имя файла. Или id должен быть именем файла.
Или хэшом с известной солькой, который работает в обе стороны

Maxim
15.01.2017
13:51:06
Размеры этого fifo могут быть ужасающими. И что делать при краше процесса?
Таки да. Это примерно то же самое, что держать горутины с отложенными таймерами. Перегруз или факап со стороны сервера и буфер всё.

Serge
15.01.2017
13:51:13
Размеры этого fifo могут быть ужасающими. И что делать при краше процесса?
Я вот пока не вижу почему бы не рассчитывать на свойства файла

Roman
15.01.2017
13:52:15
Совместо с find по крону
А нахрена тогда on demand?

Serge
15.01.2017
13:53:03
Совместо с find по крону
Так а тогда зачем чистить on-demand? Просто не показывать невалидное

А нахрена тогда on demand?
Рома, нам пора с тобой что-то вместе уже сделать:)

Roman
15.01.2017
13:54:08
А нахрена тогда on demand?
Нет, я предлагал проверку валидности файла ondemand

Roman
15.01.2017
13:55:03
find /opt/files/ -mtime +1|xargs rm -f - не благодари!
Лучше так не делать. Точнее, лучше xargs -n1024 -P num

Roman
15.01.2017
13:55:17
А дальше два врианта - либо удаляем сразу ненужное, либо по крону чистим. Но по крону чистить нужно всегда, потому что будут файлы к которым никто не обращается. Значит удалять по запросу - не нужно.

Roman
15.01.2017
13:56:29
В сухом остатке - при обращении проверяем atime/mtime на файловой системе. Чистим по крону. В 5 утра :) Никаких баз, очередей

Google
Roman
15.01.2017
13:56:47
id можно хеш от имени
Так нельзя делать.

А что будет, если крон захочет удалить файл, который начали скачивать?
Файл скачают и занимаемые им блоки будут помечены как свободные

Maxim
15.01.2017
14:00:54
От балды вбил golang nosql и вот что нашёл. Ваши оценки, господа? https://github.com/HouzuoGuo/tiedot

Мерлин
15.01.2017
14:01:48
Ничего
А, ну да

Roman
15.01.2017
14:03:06
Так нельзя делать.
От полного пути же. Но пофиг, это относится к логике приложения, а не обсуждаемой задаче.

Roman
15.01.2017
14:04:05
Это значит "привет sigbus на ошибках чтения/записи"

Admin
ERROR: S client not available

Roman
15.01.2017
14:04:48
Roman
15.01.2017
14:05:58
Ну есть же продакшн реди! https://github.com/boltdb/bolt
Вот это выглядит более вменяемо.

Quet
15.01.2017
14:06:56
Файл скачают и занимаемые им блоки будут помечены как свободные
не так но суть верная, ничего страшного не будет

Roman
15.01.2017
14:07:01
Или вот еще: https://github.com/syndtr/goleveldb

LevelDB используется например в Prometeus - а это ниибацо серьезная система мониторинга продакшен реди

Quet
15.01.2017
14:08:05
leveldb это немного не про то

Maxim
15.01.2017
14:08:07
Ну есть же продакшн реди! https://github.com/boltdb/bolt
Стоит брать для своих нынешних нужд сейчас?

Roman
15.01.2017
14:08:39
Я говорю, потому что я изучал вопрос NoSQL для Go

Quet
15.01.2017
14:10:15
А как?
файл удаляется файловой системой если на него нет хард линков и нет открытых дескрипторов если удалить файл это убьёт линк, но пока дескриптор открыт все ок

Google
Roman
15.01.2017
14:12:38
Стоит брать для своих нынешних нужд сейчас?
Если у тебя появлялась необходимость Memcache, Redis, Tarantool то лучше LevelDB/BoltDB. Потому что у тебя будет законченый код встроенный в приложение, который работает напрямую с памятью без оверхеда на протокол взаимодействия.

Quet
15.01.2017
14:13:26
Он помечается удаленным. Дальше помечаются его блоки данных
опять же нет удивляется inode, а блоки лежат как лежали но на них больше нет ссылок

Quet
15.01.2017
14:13:40
удаляется

автокоррекция..

Roman
15.01.2017
14:14:10
Это Daniel напишет для себя библиотеку функций под свою задачу. А нам, нубам, лучше использовать проверенные отцовские вещи.

Roman
15.01.2017
14:15:36
опять же нет удивляется inode, а блоки лежат как лежали но на них больше нет ссылок
Как у тебя inode удалится если есть fd ассоциированный с ней

?

Quet
15.01.2017
14:16:03
читай выше, пока есть открытые fd все живет

но при закрытии всех fd, если нет хард линков - удаляется inode

Roman
15.01.2017
14:16:47
Блин не парьтесь, это же не чат про C :)

Roman
15.01.2017
14:17:19
читай выше, пока есть открытые fd все живет
Ну так что происходит при удалении и наличии открытого fd?

Roman
15.01.2017
14:19:20
удаляется хард линк
Он с каким объектом в vfs ассоциирован?

Quet
15.01.2017
14:22:21
Он с каким объектом в vfs ассоциирован?
вопрос не понял. хард линк ссылается на inode

вроде в inode был счётчик линков

DreamingKitten
15.01.2017
15:07:55
Vladimir
15.01.2017
15:30:04
https://github.com/google/fchan-go

Страница 407 из 1674