+ h[4:6], почему не полный хеш?
возможно это пригодится, потому что в доках пишут Specifically, hardware using slower drives or network infrastructures tend to exhibit poor performance in buckets or prefixes with a flat hierarchy of objects Что плоская иерархия медленее работает, а такие пути тебе дадут более разветленную иерархи/
Чтобы ls ab* не ставил раком твою систему
так там же блочное хранилище ls ab*. Почему листинг объектов должен ложить систему?
он систему и не кладёт. он кладёт тулинг, который ожидает что со списком объектов можно работать в памяти.
допустим. Но когда я делаю SELECT id FROM table в postgres на 2М таблицу, ФС же не ложится, почему в объектном должно?
Какое еще блочное хранилище?
а оно и не ложится. ложится клиент.
оговорка, объектное
погодите, а как в minio тогда реализуется версионирование файлов? Допустим там всё реализовано примитивно file1.v1 file1.v2 ... file2.v1 ... но в чем собствннно проблема? Клиент выполняет запрос, ему в ответ отдается листинг. Или есть инфа, что сервер minio ложится если там листинг большой?
да, но клиенту то, по задаче не нужен листинг с s3. Вот есть юзер, у него есть какое-то количество аватарок. Бэкенд в курсе под какими ключами он сохранил аватарки юзера в s3 и скорее всего даже держит эту инфу в базе. То есть задача листинга аватарок для юзера, вообще не сводится к запросу листинга в s3, а сводится к запросу к базе бэкенда - "вывести картинки юзера" Тем более ему предлагали хранить аватарки по схеме hash'а - h[0:2]/h[2:4]/h[4:6]/h в таком кейсе листинг вообще бесполезен, ведь нет смысла запрашивать h[0:2]/h[2:4]/h[4:6]/ - оно вернет просто список хешей, без какой-либо семантики То есть, я в треде совсем не догнал, причём вообще ls ab* и нафига делать листинги в ФС. Я допускаю что minio как-то не очень файлы там хранит, но вряд-ли же оно там делает ls ab* для листинга, допустим если листинг вдруг понадобился, но я полагаю что там реализация листинга явно лучше реализована, чем банальный ls по папке
тут палка о двух концах. хранение стейта минио в файловой системе предполагает что люди будут пользоваться доступом к файловой системе для каких-то целей. например, делать бекап рсинком. или переносить с одной ноды на другую контент как-нибудь, как переносят контент постгреса, например. при этом минио может сгенерировать 100М файлов на этой файловой системе, что для большей части типичного тулинга около файловой системы будет многовато и болезненно.
а вы об эксплуатации. Всё понял. Но тут дело оперейшенов, надо minio изучать Но ваще странно что программист будет так задумываться так сильно в нюансы хранения в minio, мне кажется тут абстракции протекли чутка =)
инженер думает обо всём проекте целиком.
Обсуждают сегодня