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

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

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

21 ответов

24 просмотра

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.

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта