172 похожих чатов

Я вот ещё думаю, есть ли какое-то решение, которое сможет

извлечь пользу из того, что в качестве ключей у меня sha256sum?

21 ответов

9 просмотров

Git? 😂

Выкинуть sha256 и взять xxhash. Куда вам криптохеши? И ещё на перфоманс жалуетесь...

Andrey-Kartashov Автор вопроса
Wild_Wind
Выкинуть sha256 и взять xxhash. Куда вам криптохеш...

это особенность реализации, её не выкинуть. И сумма считается на клиенте, сервер этим не занимается. Разве что если валидацию прикрутить

Andrey Kartashov
это особенность реализации, её не выкинуть. И сумм...

Т.е. данные уже приходят с хешом. Хорошо. Но все равно это никак нельзя использовать, т.к. sha* тормоз. Ужасный тормоз по сравнению с xxhash.

Andrey-Kartashov Автор вопроса
Wild_Wind
Т.е. данные уже приходят с хешом. Хорошо. Но все р...

я к тому, чтоб база вообще хеш не считала, а сразу в индекс значение пихала. раз хеш уже посчитан и является ключом

Wild_Wind
https://github.com/Cyan4973/xxHash

А что у него с коллизиями?

Dmitriy [Отпуск]
А что у него с коллизиями?

Есть, как и у любого не криптохеша, но на обычных нагрузках почти не заметно.

Andrey Kartashov
я к тому, чтоб база вообще хеш не считала, а сразу...

А после вы хотите взять по ключу и каждый раз считаете хеш? Или он уже у вас где-то лежит?

Wild_Wind
Т.е. данные уже приходят с хешом. Хорошо. Но все р...

Коллизии же будут проблемой, разве нет?

Pablo K
Коллизии же будут проблемой, разве нет?

Они у тебя будут раз в сто лет. На файлах. Разного размера.

Wild_Wind
Они у тебя будут раз в сто лет. На файлах. Разного...

Я так понял, что файлы ни разу не рандомные, а контролируются юзером

Pablo K
Я так понял, что файлы ни разу не рандомные, а кон...

Это артефакты сборки, блобы. Шанс на колизии крайне минорнвй. А юзер по умолчанию доверенный.

Andrey Kartashov
я к тому, чтоб база вообще хеш не считала, а сразу...

Используй в качестве ключа целые числа, а не строки, и тогда база не будет считать хеши. Правда придётся число битов в хеше урезать до маскимально поддерживаемой DB величины для целых чисел.

Andrey-Kartashov Автор вопроса
Kirill Kuzminykh
Используй в качестве ключа целые числа, а не строк...

не могу, sha256sum мне всё равно нужна, и из базы блобы надо доставать именно по sha256sum. Кэш должен реализовать content addressable storage. От конечных клиентов запросы приходят именно в таком виде - "дай блоб с таких хешом"

Andrey Kartashov
не могу, sha256sum мне всё равно нужна, и из базы ...

Почикай sha256 на несколько чисел допустимого размера, и используй составной индекс по нескольким полям 😊

Wild_Wind
Это артефакты сборки, блобы. Шанс на колизии крайн...

А можно референс на тс, что это именно артефакты сборки?

Andrey-Kartashov Автор вопроса
Kirill Kuzminykh
Почикай sha256 на несколько чисел допустимого разм...

хм. А какие kv так умеют? Поделить [u8; CONST] на несколько частей не проблема

Andrey Kartashov
хм. А какие kv так умеют? Поделить [u8; CONST] на ...

Если использовать не простейший kv, то можно применить тот же самый механизм поиска с хешами что и в базах. Хеши ведь позволяют быстро ограничить объём данных в которых надо искать. На последнем этапе всё равно происходит полное сравнение в соответствии с указанным запросом. Таким образом ты можешь свой sha256 уменьшить, например, до 64 бит и использовать это как не уникальный числовой ключ. А сам sha256 хранить в отдельном поле. По ключу ты быстро получишь 1 или несколько записей, по которым быстро проверишь на полное совпадение с sha256.

Похожие вопросы

Обсуждают сегодня

а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Добрый день. Хочу сделать отрисовку по команде на панели. Почему-то рисуется только при втором вызове. С чем может быть связано, не подскажете? procedure TForm1.FormDblClick(...
Kirill Filippenok
20
Всем доброго дня! Подскажите может кто использовал связку Pagebuilder + Clientsetting. Сами параметры с типом pagebuilder в модуле Clientsetting работают нормально, можно такж...
Александр Добриков
12
А почему в си некоторые вещи работают с двойными кавычками некоторые с одинарными? Нельзя было все сделать с одними или чтоб работало с разными? например чтоб выводить строки ...
.
15
Всем привет! Нужен совет от опытных. Переношу свой проект с Делфи 10.2 Токио на Лазарус 3.2 установленный через инсталлятор fpcupdeluxe-x86_64-win64. При импортировании проект...
Дмитрий Завгородний
7
Эх кто-то пришел и весь праздник испортил :( You need complex FBX scene importing setup to change things on import? good luck with that. You need navigation and pathfinding? g...
Serg Gini
5
Всем привет! Подскажите. Я написал приложение на Delphi 10.2 Tokyo под Windows 10. И передо мной стал вопрос о том чтобы сделать это приложение кроссплатформенным (под Linux и...
Дмитрий Завгородний
24
Всем привет! procedure TForm1.FormCreate(Sender: TObject); type TStartEnd = record S: Byte; E: Byte; end; var a, b: TStartEnd; begin {1} a.S := 1; {2} a.E := 2; ...
Руслан Михайлович
10
Всем привет!) я тут новенький и пытаюсь освоить evolution методом тыка. У меня при переходе между папками файлов выскакивают вот такие уведомления Можете подсказать как их от...
Диман Samoed
10
Какого хера? /Sources/App/Modules/User/Models/UserLinkApple.swift:21:20: warning: stored property '_id' of 'Sendable'-conforming class 'UserLinkApple' is mutable @ID(...
Alexander Sherbakov
14
Карта сайта