LibRusLib
Четверг, 28.03.2024, 16:42
Приветствую Вас Гость | RSS
 
Главная ФорумРегистрацияВход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Форум » LibGen - Библиотекарь » Version 2.x » Начинаем работу
Начинаем работу
drserjДата: Воскресенье, 19.01.2014, 23:20 | Сообщение # 31
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Репутация: 30
Статус: Offline
Цитата VV123 ()
as убрать не могу, кто-то в свое время отказался разрешить редактировать шапку.
да и ладно, не ошибка, просто и без него работать будет...

Цитата VV123 ()
1. А вот по этому пункту надо что-то решать. По причине схожих проблем с мультилибом и решил сообщить, с учетом того что кой-какой фукционал был взят из либген-библиотекаря.

наоборот... 

Цитата VV123 ()
В связи с тем что "любителей" хранить все что скачано становиться все больше

да, нет предела извращеньям... хотя, я и сам такой... вся флибуста в двух вариантах + большая часть либруса + FW + одиночные качания... Но я исправляюсь и усиленно давлю ненужное!

Цитата VV123 ()
и хранят они это в жестком формате репозитория,


и не хотят менять на предложенный другими, проверено... А формат подразумевает не только мд5 в качестве имени, но и наличие фиксированного расширения и фиксированную структуру каталогов внутри репозитория... Я себе месяц почти перегонял триста тыщ....


drSerj
 
drserjДата: Воскресенье, 19.01.2014, 23:20 | Сообщение # 32
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Репутация: 30
Статус: Offline
Цитата VV123 ()
то надо использовать сначала удаление без поиска, а если система вернет ошибку тогда ипользовать поиск.

что еще увеличит время обработки... Не, тут два варианта - или всё, или ничего. Или поддержка формата, или сиди и жди.

Цитата VV123 ()
Что касается той же актуализации, в мультилибе таки было решено отказаться от промежуточной таблицы.
да здрасти... mlactual.* - для чего? Я отказался в таблице отображения от группировок/сортировок, что дало возможность использовать сам грид в стандартном, упрощенном режиме. Иначе сама отрисовка жрала кучу времени и ресурсов. А алгоритм - тот же. И единственное спасение для сотен тысяч записей - полная поддержка фиксированного формата. Жалею, что в свое время не сделал как хотел, повелся на сопли и слезы - хотим и так и сяк. Сейчас не было бы 99% траха и проблем....
VV1236399
Цитата
Какаято фигня в алгоритме, потому что есть у меня группа в которой 25 тыс. записей и если добавлять в эту группу 1 запись то это условно долго (20-30 сек.) а если добавлять 20-30 записей то пара сек.
а х.е.з. я проверить не могу, у меня стольких книг в либгене нет, точнее, их там вообще нет... А проблема возникает, как я понял, только на большом количестве...


drSerj
 
VV123Дата: Воскресенье, 19.01.2014, 23:41 | Сообщение # 33
Генерал-майор
Группа: Проверенные
Сообщений: 304
Репутация: 2
Статус: Offline
Цитата drserj
Жалею, что в свое время не сделал как хотел, повелся на сопли и слезы - хотим и так и сяк. Сейчас не было бы 99% траха и проблем....


Это наверное еще без меня было...

Добавлено (19.01.2014, 22:41)
---------------------------------------------

Цитата drserj
а х.е.з. я проверить не могу, у меня стольких книг в либгене нет, точнее, их там вообще нет... А проблема возникает, как я понял, только на большом количестве...


Да ёпрст, третий раз, вот ссылка: 
Цитата VV123
тестовый фрагмент репозитария на 200 тыс. файлов с нулевым размером http://yadi.sk/d/28miAPL6GKoyj (38 МБ)


скачай и проверь


Сообщение отредактировал VV123 - Понедельник, 20.01.2014, 02:35
 
drserjДата: Понедельник, 20.01.2014, 10:47 | Сообщение # 34
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Репутация: 30
Статус: Offline
Цитата VV123 ()
Это наверное еще без меня было...

х.е.з...

Цитата VV123 ()
Да ёпрст, третий раз, вот ссылка:
 
Цитата VV123 ()
скачай и проверь


скачал. когда буду проверять - не знаю.


drSerj
 
drserjДата: Понедельник, 20.01.2014, 23:25 | Сообщение # 35
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Репутация: 30
Статус: Offline
Цитата VV123 ()
select *, (select group_concat(catname  separator ', ') from libusercatname join libusercat using(CatId) where libusercat.md5=main.md5) as CatName from main join detail using(md5) left join description using(md5) left join librating using(md5) left join libdownloaddata using(md5) left join libuserkeyword using(md5) left join libuserprim using(md5) left join topics using(topic_id) where COALESCE(lang,"ru")="ru" and `CatName` LIKE "%%"

не пойму, что ты хочешь получить в результате???? catname - одни null...


drSerj
 
VV123Дата: Понедельник, 20.01.2014, 23:57 | Сообщение # 36
Генерал-майор
Группа: Проверенные
Сообщений: 304
Репутация: 2
Статус: Offline
Цитата drserj ()
не пойму, что ты хочешь получить в результате???? catname - одни null...

Это у тебя null, а у меня до хрена групп и есть записи которые в разных группах, подгруппах, ну вообщем возникает необходимость посмотреть.
 
drserjДата: Вторник, 21.01.2014, 11:29 | Сообщение # 37
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Репутация: 30
Статус: Offline
Цитата VV123 ()
Это у тебя null, а у меня до хрена групп и есть записи которые в разных группах, подгруппах, ну вообщем возникает необходимость посмотреть.

дык конкретно, что ты хочешь увидеть в результате?


drSerj
 
VV123Дата: Среда, 22.01.2014, 11:28 | Сообщение # 38
Генерал-майор
Группа: Проверенные
Сообщений: 304
Репутация: 2
Статус: Offline
Цитата drserj ()
дык конкретно, что ты хочешь увидеть в результате?


Вот есть у меня группа "не целевое" и в ней подгруппы "худ. лит.", "детская", "комиксы" и т.п. хочу посмотреть это в одной куче, чтоб видеть количество и общий размер, вот таким запросом:
CatName` LIKE "худ. лит." or
CatName` LIKE "детская" or
CatName` LIKE "комиксы" or
....


Сообщение отредактировал VV123 - Среда, 22.01.2014, 11:29
 
drserjДата: Среда, 22.01.2014, 21:32 | Сообщение # 39
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Репутация: 30
Статус: Offline
Цитата VV123 ()
Вот есть у меня группа "не целевое" и в ней подгруппы "худ. лит.", "детская", "комиксы" и т.п. хочу посмотреть это в одной куче, чтоб видеть количество и общий размер, вот таким запросом: CatName` LIKE "худ. лит." or CatName` LIKE "детская" or CatName` LIKE "комиксы" or

Завтра на работе, если время будет - подумаю.


drSerj
 
VV123Дата: Четверг, 23.01.2014, 19:15 | Сообщение # 40
Генерал-майор
Группа: Проверенные
Сообщений: 304
Репутация: 2
Статус: Offline
Цитата drserj ()
По поводу удаления - каждый файл удаляется отдельным запросом, и каждый раз производится поиск файла. Чем больше файлов - тем значительно медленнее этот поиск производится. И это не вина программы, сколько реалии файловой системы. Согласен, изменяя алгоритм, ужесточая рамки форматов, можно добиться прироста скорости на несколько порядков. Но это значит - накладывать жесткие ограничения на способ хранения данных. Я столкнулся с этим в мультилибе, где у человека полторы сотни тысяч одиночных файлов. При таком раскладе файл искался порядка 20-30 секунд. Пришлось для любителей подобной рассыпухи принять очень жесткий формат, при котором поиск файла не производится, а ссылка на него формируется по заданному алгоритму. Обращение к файлу уменьшилось до десятых долей секунды. Но это касается тех, у кого десятки или сотни тысяч файлов.


А зачем формировать ссылку по заданному алгоритму, можно в таблице libdownloaddata добавить колонку с полным путем к файлу и этой записью и оперировать, к тому же это решит проблему (о которой упоминал bookwarrior) сохранения имени файла и доступа к нему из программы т.е. можно будет не добавлять мд5 в конце имени при импорте.
 
drserjДата: Четверг, 23.01.2014, 21:57 | Сообщение # 41
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Репутация: 30
Статус: Offline
Цитата VV123 ()
А зачем формировать ссылку по заданному алгоритму, можно в таблице libdownloaddata добавить колонку с полным путем к файлу и этой записью и оперировать, к тому же это решит проблему (о которой упоминал bookwarrior) сохранения имени файла и доступа к нему из программы т.е. можно будет не добавлять мд5 в конце имени при импорте.

а за тем, что местоположение может быть не одно, и привязывать книгу к полному пути - крайне нежелательно. Это уже говорилось не раз.
Динамическое же формирование пути (путей) по заданному алгоритму позволяет полностью избавиться от проблем без потери скорости при поиске. И этот вопрос больше не обсуждается. Так будет.


drSerj
 
VV123Дата: Пятница, 24.01.2014, 14:28 | Сообщение # 42
Генерал-майор
Группа: Проверенные
Сообщений: 304
Репутация: 2
Статус: Offline
Цитата drserj ()
И этот вопрос больше не обсуждается. Так будет.

Ну нельзя так разрушать последние надежды пользователя на светлое будущее smile
Цитата drserj ()
а за тем, что местоположение может быть не одно, и привязывать книгу к полному пути - крайне нежелательно. Это уже говорилось не раз. Динамическое же формирование пути (путей) по заданному алгоритму

Здесь можно по подробнее. Для меня это одно и тоже. Т.е. есть путь G:\Library\709000\0bd2d1a8c3d59e0dbe46448cbd486b30 он в таблице libdownloaddata привязан к мд5, прога берет его и испоьзует без всяких поисков или прога берет мд5 и по алгоритму подставляет имя папки + имя диска получает тот же путь, в чем разница. Привязка к полному пути тоже не статична и меняется при импорте или актуализации.
 
drserjДата: Суббота, 25.01.2014, 00:18 | Сообщение # 43
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Репутация: 30
Статус: Offline
Цитата VV123 ()
Ну нельзя так разрушать последние надежды пользователя на светлое будущее

ну уж нет, хватит жевать сопли, пора начинать повелевать !  prof

Цитата VV123 ()
Здесь можно по подробнее. Для меня это одно и тоже. Т.е. есть путь G:\Library\709000\0bd2d1a8c3d59e0dbe46448cbd486b30 он в таблице libdownloaddata привязан к мд5, прога берет его и испоьзует без всяких поисков или прога берет мд5 и по алгоритму подставляет имя папки + имя диска получает тот же путь, в чем разница. Привязка к полному пути тоже не статична и меняется при импорте или актуализации.


Новый формат хранения контента в мультилибе: папка контента+\XX\YY\MD5.zip, где XX-первые две цифры от  MD5, YY - вторая пара цифр.
Смысл в том, что ссылка формируется динамически, самой программой без поиска файла по списку. Если папок с контентом несколько - будет несколько попыток обращения к файлу. Папку контента можно изменить, что нельзя будет сделать, если я пропишу  путь G:\Library\709000\0bd2d1a8c3d59e0dbe46448cbd486b30.  
Зачем XX\YY? Для ускорения обращения к файлу. Если в каталоге тысячи файлов (а у меня, например, более 350 тысяч) то войти в каталог, мягко говоря, затруднительно. Любой файловый менеджер обгадится... А так - быстро и красиво. Почему добавлено принудительное расширение .zip? Потому-что в поле таблицы ext имеется неоднозначность - это может быть как расширение документа, так и архива. Ориентироваться на него при поиске нельзя. 
Всё вышеописанное дает огромное преимущество как при поиске файла, так и в процессе актуализации. Это максимально удобный и самый быстрый вариант. Если в обычной ситуации на таком количестве файлов поиск книги производился от 30 секунд до нескольких минут на весьма быстром компе, то тут - миллисекунды. Да и однозначность (что очень немаловажно) в определении имени файла.


drSerj
 
drserjДата: Суббота, 25.01.2014, 00:24 | Сообщение # 44
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Репутация: 30
Статус: Offline
Цитата ;6416
Вот есть у меня группа "не целевое" и в ней подгруппы "худ. лит.", "детская", "комиксы" и т.п. хочу посмотреть это в одной куче, чтоб видеть количество и общий размер, вот таким запросом: CatName` LIKE "худ. лит." or CatName` LIKE "детская" or CatName` LIKE "комиксы" or
 
Вот подумал, и даже не знаю чем помочь. Тот вариант, который ты пытался использовать - не прокатит, и это однозначно.
Вся проблема в том, что заранее не известно количество вложений. 
В отличие от оракла, насколько я помню, в MySQL (да и в других базах) обычным запросом рекурсию обхода дерева не решишь. Надо писать в мускуле функцию... А вот хватит ли у тебя знаний... Впрочем, гугль в помощь smile


drSerj
 
UstsvДата: Четверг, 13.03.2014, 08:55 | Сообщение # 45
Рядовой
Группа: Пользователи
Сообщений: 1
Репутация: 0
Статус: Offline
Спасибо за LIBGEN, но набралось чуток вопросов.
  • На ftp://libgen.org/dbdumps/ поменялся формат баз? По дефаулту забирает сильно неполную, от чего либген выдает ошибки. Перенастроил на http://gen.lib.rus.ec/dbdumps/, но где поменять имена баз? Сделал распаковку вручную, переименовал, считалось нормально.
  • Рабочее место 1.5G архив + 5G распаковка + 5G конвертация + 5G база, несколько не ожидал, Ну и 1ч10мин только на конвертацию.
  • В связи со п2, вопрос, не будет либгена, с возможностью работы с внешней базой? Все одно MariaDB крутится на машине, и сильно быстрее и всем в локалке.
  • И разделением прав на админской версии и пользователям, в мультилиб сделал отдельные аккаунты, создание баз и обновление только от рута, у юзеров только для чтение.
  • Может можно уговорить хозяев библиотек делать инкрементные выкладки дампов баз?
  • В поиске по умолчанию идет OR. Как-то AND привычнее, и * понимает только после запроса. Упс, нашел, чекбокс полнотекстовый поиск работает наоборот.
  • Можно удлинить имя файла для экспорта, режет ~200 символов.


Сообщение отредактировал Ustsv - Четверг, 13.03.2014, 08:56
 
Форум » LibGen - Библиотекарь » Version 2.x » Начинаем работу
Поиск:

Copyright LibRusLib © 2024