Сделайте пожалуйста загрузку TTH из альтернативных NTFS-потоков #146
The text was updated successfully, but these errors were encountered:
dhamp commented Mar 14, 2015From tehnic. @yandex.ru on January 08, 2012 14:35:08
Issue 1251 has been merged into this issue.
dhamp commented Mar 14, 2015From 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, 2015From Valdi. @gmail.com on January 16, 2012 07:49:02
Не вижу необходимости записывать что-то, помимо самого TTH, который занимает 40 байт.
dhamp commented Mar 14, 2015From tehnic. @yandex.ru on January 16, 2012 07:59:44
Не вижу необходимости записывать что-то, помимо самого TTH, который занимает 40 байт.
Это из-за полного или частичного непонимания особенностей работы протокола.
Корневой хэш (тот самый TTH, который вы имеете в виду) бесполезен без всех остальных хэшей кусков файла. Поэтому общий размер мета-данных, отоносящихся к файлу, зависит от размера файла и количества частей, на которые он будет разбит.
dhamp commented Mar 14, 2015From Valdi. @gmail.com on January 16, 2012 08:11:52
Суть не в том, чтобы хранить хэш целиком в дополнительных аттрибутах, а в том, чтобы идентифицировать файл. А все нужное будет храниться в базе самого eiskalt. Мне хэши нужны для того, чтобы сделать виртуальный каталог аниме с сортировкой по годам, тегам и прочему, и чтобы эти файлы не перехэшировались. Можно хоть md5 хранить в xattr.
dhamp commented Mar 14, 2015From egikpetrov on January 16, 2012 08:37:46
Хранение расширенных атрибутов в inode (EA in inode). Хранение расширенных атрибутов, таких как ACL, атрибутов SELinux и прочих, позволяет повысить производительность. Атрибуты, для которых недостаточно места в inode, хранятся в отдельном блоке размером 4KB. Предполагается снять это ограничение в будущем.
то есть фактически должен быть как минимум 4 килобайта. 4040 байт < 4 килобайт, непорядок ) ещё интересно конечно как узнать размер inode на смонтированном разделе.
dhamp commented Mar 14, 2015From vasily.n.k@eml.ru on January 16, 2012 09:34:56
исправление для чтения тэга. небольшой мусор с отладкой -- не коммитить напрямую! ключевое:
после этого начали сходится суммы тэга сгенерированные флаем.
dhamp commented Mar 14, 2015From vasily.n.k@eml.ru on January 16, 2012 10:15:35
Можно коммитить этот, включает фикс от предыдущего. чистый.
dhamp commented Mar 14, 2015From 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, 2015From tehnic. @yandex.ru on January 18, 2012 06:11:32
Суть не в том, чтобы хранить хэш целиком в дополнительных аттрибутах, а в том, чтобы идентифицировать файл.
У вас с автором задачи разные запросы.
dhamp commented Mar 14, 2015From tehnic. @yandex.ru on January 18, 2012 06:12:28
Начальная реализация этой задачи сейчас есть в мастер-ветке и ее желательно начать тестировать. (В смысле: пользователям, а не только разработчикам)
dhamp commented Mar 14, 2015From Valdi. @gmail.com on January 18, 2012 06:26:33
С ext4 будет работать? В 4кб влезет?
dhamp commented Mar 14, 2015From tehnic. @yandex.ru on January 18, 2012 06:49:24
Тестирование необходимо как раз, чтобы все проверить. Должно работать, если файлы не совсем гиганские, а в рамках разумного. В коде функции хэширования размер блока увеличили в два раза специально ради этого. Что затронет всех пользователей.
dhamp commented Mar 14, 2015From vasily.n.k@eml.ru on January 18, 2012 06:49:43
Суть не в том, чтобы хранить хэш целиком в дополнительных аттрибутах, а в том, чтобы идентифицировать файл. А все нужное будет храниться в базе самого eiskalt. Мне хэши нужны для того, чтобы сделать виртуальный каталог аниме с сортировкой по годам, тегам и прочему, и чтобы эти файлы не перехэшировались. Можно хоть md5 хранить в xattr.