Сделайте пожалуйста загрузку TTH из альтернативных NTFS-потоков #146

Сделайте пожалуйста загрузку TTH из альтернативных NTFS-потоков #146

The text was updated successfully, but these errors were encountered:

dhamp commented Mar 14, 2015

From tehnic. @yandex.ru on January 08, 2012 14:35:08

Issue 1251 has been merged into this issue.

dhamp commented Mar 14, 2015

From vasily.n.k@eml.ru on January 16, 2012 07:25:43

http://kerneltrap.org/index.php?q=mailarchive/linux-fsdevel/2008/3/15/1171264/thread Размер атрибута, который записывает флай, приблизительно 6-7 килобайт. Исследовал вопрос по предельному размеру xattr. Для ntfs-3g(где по дефолту streams_interface=xattr) можно установить атрибут 64К. Для XFS предел по докам тоже 64К. А вот для ext2/3 похоже предел 4К.

$ dd if=/dev/zero bs=1 count=4040|attr -s test gdb.txt 4040+0 записей считано 4040+0 записей написано Attribute "test" set to a 4040 byte value for gdb.txt:

скопировано 4040 байт (4,0 kB), 0,0114472 c, 353 kB/c

Если же больше, то уже

$ dd if=/dev/zero bs=1 count=4041|attr -s test gdb.txt 4041+0 записей считано 4041+0 записей написано скопирован 4041 байт (4,0 kB), 0,00594498 c, 680 kB/c attr_set: На устройстве не осталось свободного места Could not set "test" for gdb.txt

dhamp commented Mar 14, 2015

From Valdi. @gmail.com on January 16, 2012 07:49:02

Не вижу необходимости записывать что-то, помимо самого TTH, который занимает 40 байт.

dhamp commented Mar 14, 2015

From tehnic. @yandex.ru on January 16, 2012 07:59:44

Не вижу необходимости записывать что-то, помимо самого TTH, который занимает 40 байт.

Это из-за полного или частичного непонимания особенностей работы протокола.

Корневой хэш (тот самый TTH, который вы имеете в виду) бесполезен без всех остальных хэшей кусков файла. Поэтому общий размер мета-данных, отоносящихся к файлу, зависит от размера файла и количества частей, на которые он будет разбит.

dhamp commented Mar 14, 2015

From Valdi. @gmail.com on January 16, 2012 08:11:52

Суть не в том, чтобы хранить хэш целиком в дополнительных аттрибутах, а в том, чтобы идентифицировать файл. А все нужное будет храниться в базе самого eiskalt. Мне хэши нужны для того, чтобы сделать виртуальный каталог аниме с сортировкой по годам, тегам и прочему, и чтобы эти файлы не перехэшировались. Можно хоть md5 хранить в xattr.

dhamp commented Mar 14, 2015

From egikpetrov on January 16, 2012 08:37:46

Хранение расширенных атрибутов в inode (EA in inode). Хранение расширенных атрибутов, таких как ACL, атрибутов SELinux и прочих, позволяет повысить производительность. Атрибуты, для которых недостаточно места в inode, хранятся в отдельном блоке размером 4KB. Предполагается снять это ограничение в будущем.

то есть фактически должен быть как минимум 4 килобайта. 4040 байт < 4 килобайт, непорядок ) ещё интересно конечно как узнать размер inode на смонтированном разделе.

dhamp commented Mar 14, 2015

From vasily.n.k@eml.ru on January 16, 2012 09:34:56

исправление для чтения тэга. небольшой мусор с отладкой -- не коммитить напрямую! ключевое:

после этого начали сходится суммы тэга сгенерированные флаем.

dhamp commented Mar 14, 2015

From vasily.n.k@eml.ru on January 16, 2012 10:15:35

Можно коммитить этот, включает фикс от предыдущего. чистый.

dhamp commented Mar 14, 2015

From vasily.n.k@eml.ru on January 16, 2012 10:19:28

Упс, забыл про сигнатуру, тоже неправильная писалась:

--- a/dcpp/HashManager.h +++ b/dcpp/HashManager.h @@ -254,7 +254,7 @@ private: void deleteStream(const string& p_filePath);

dhamp commented Mar 14, 2015

Поправил сорцы и исправил ошибку. Пушнул изменения в 2.2.x. Особое внимание прошу уделить https://github.com/negativ/eiskaltdcpp/commit/23d0bf094cdd18bc05b82b85090385e1027ee9ea#L0R130 - здесь в случае несовпадения временной отметки или контрольной суммы атрибут удаляется. Но так как я не уверен что временная метка во Флайлинке генерируется идентично Unix time то возможно ложное срабатывание, пожалуйста протестируйте.

Status: Accepted Owner: dein.neg. @gmail.com Labels: -Priority-Medium Priority-High

dhamp commented Mar 14, 2015

From tehnic. @yandex.ru on January 18, 2012 06:11:32

Суть не в том, чтобы хранить хэш целиком в дополнительных аттрибутах, а в том, чтобы идентифицировать файл.

У вас с автором задачи разные запросы.

dhamp commented Mar 14, 2015

From tehnic. @yandex.ru on January 18, 2012 06:12:28

Начальная реализация этой задачи сейчас есть в мастер-ветке и ее желательно начать тестировать. (В смысле: пользователям, а не только разработчикам)

dhamp commented Mar 14, 2015

From Valdi. @gmail.com on January 18, 2012 06:26:33

С ext4 будет работать? В 4кб влезет?

dhamp commented Mar 14, 2015

From tehnic. @yandex.ru on January 18, 2012 06:49:24

Тестирование необходимо как раз, чтобы все проверить. Должно работать, если файлы не совсем гиганские, а в рамках разумного. В коде функции хэширования размер блока увеличили в два раза специально ради этого. Что затронет всех пользователей.

dhamp commented Mar 14, 2015

From vasily.n.k@eml.ru on January 18, 2012 06:49:43

Суть не в том, чтобы хранить хэш целиком в дополнительных аттрибутах, а в том, чтобы идентифицировать файл. А все нужное будет храниться в базе самого eiskalt. Мне хэши нужны для того, чтобы сделать виртуальный каталог аниме с сортировкой по годам, тегам и прочему, и чтобы эти файлы не перехэшировались. Можно хоть md5 хранить в xattr.

📎📎📎📎📎📎📎📎📎📎