Вы здесьТех. помощь в создании зеркала либрусека
Опубликовано сб, 25/10/2008 - 13:10 пользователем Bill_G
Чесно говоря надпись на сайте "sorry overload" в любое время дня и ночи достала. Один человек готов предоставить под зеркало VPS, прошу администрацию или близких к ней написать в ЛС - дам контакты
|
Вход на сайтПоиск по блогам и форумамUser menuПоследние комментарии
Aliki RE:Подайте бедному копеечку на книжку с литреса... 1 час
Isais RE:Таинственная личность админа Флибусты 3 часа babajga RE:Сказки бабушки Черепахи 9 часов babajga RE:Свист диких крыльев 9 часов Саша из Киева RE:Кто сможет раздобыть и оцифровать нужные мне книги? 1 день Саша из Киева RE:Турецкие мусорщики в Анкаре открыли библиотеку, полную... 6 дней Isais RE:Не тот автор 2 недели xieergai60 RE:Продление подписки 2 недели TaKir RE:Валерия Сергеевна Черепенчук А. Н. Николаева - Мифы... 2 недели Isais RE:Древняя Греция. Читаем... 2 недели laurentina1 RE:Ирина Александровна Велембовская - Немцы 3 недели Саша из Киева RE:Избранное 4 недели Alligatoreader RE:Багрепорт - 2 4 недели fedor.de RE:Отображение страницы Librusek 1 месяц Isais RE:Чиполь Сергеевич Наглецов - Огненный дракон [СИ] 1 месяц blahblahblah2024 RE:Беженцы с Флибусты 1 месяц sem14 RE:Что читать о блокаде Ленинграда. Подборка книг 1 месяц sem14 RE:Михаил Юрьевич Берг - Андеграунд. Итоги. Ревизия_5 1 месяц Впечатления о книгах
Саша из Киева про Сеф: Золотая шашка (Детская проза)
19 12 Моя огромная благодарность тому, кто разместил в Интернете распознанный текст этой книги! Это книга моего детства!
neletay про Шульц: Мой друг - домовой (Юмористическая фантастика, Фэнтези, Самиздат, сетевая литература)
19 12 На удивление, прочитала с удовольствием. Добрая и забавная история. Только корректор нужен.
decim про Капустин: История нашей еды. Чем отличались продукты советского времени от сегодняшних [litres] (История, Кулинария)
19 12 Не ругайте сгоряча. Книга годится как памятник эпохи. С учётом того, что пожилой автор работал в высших сферах и некоторые обычные безобразия для него на уровне ЧП. В идеале и вскоре после открытия(или ревизии) в ресторане ………
decim про Антоновский: Русские супергерои (История, Биографии и Мемуары, Научпоп)
19 12 Усишки монархии навалили кучу дайджестов для жертв попсы. Аффтар, "рус" означало не "воин", а "гребец", человек весла. Морской труд необходим, без него герой никуда бы не добрался. Даже, как в нашем случае, с попутным ветром. ……… Оценка: нечитаемо
Foset про Евфросиния Антоновна Керсновская
18 12 Да, Фрося бой-баба была, конечно. Но "дура отпетая", как она сама писала про характеристику близких. Сама голову засунула в это пекло, чего-то упырям всё доказать пыталась. Надо было сразу рвать в Румынию вместе с матушкой, ………
Alexandr A.Shpilman про Измайлов: Неправильный лекарь. Том 2 (Городское фэнтези, Попаданцы, Самиздат, сетевая литература)
18 12 Против ГГ готовятся применит магию... а тот тупо стоит манекеном... Ну один раз... а потом возникает мысль бросить такое чтение...
Лысенко Владимир Андреевич про Матвеев: Ниочёма-3 [СИ] (Юмор: прочее, Городское фэнтези, Попаданцы, Самиздат, сетевая литература)
18 12 Прочитал все три книги, легкое, расслабляющее чтиво. Оценка: отлично!
Barbud про Большаков: Целитель. Книга 10 (Боевая фантастика, Попаданцы, Самиздат, сетевая литература)
17 12 Есть авторы, которые не дописывают свой цикл, а есть те, что остановиться не могут, Большаков из вторых. Так и хочется сказать: "Горшочек, не вари!". Оценка: плохо
decim про Чапман: БондиАнна. В Россию с любовью (Биографии и Мемуары)
17 12 Ну, как поплавала?(с) Нечитаемо. |
Комментарии
Отв: Тех. помощь в создании зеркала либрусека
ау! либрусек это пустыня??
Отв: Тех. помощь в создании зеркала либрусека
может стоит написать в личку администрации? а так то что тут напишешь....
Отв: Тех. помощь в создании зеркала либрусека
Ларин щас путешествует по эквадору. Без него сами понимаете... Приедет, напишите ему. А пока есть движок и база - при желании можно поднять зеркало.
З.Ы. А контакты можно отправить на почту библиотекарей.
Отв: Тех. помощь в создании зеркала либрусека
реально сделать Web-версию сайта, чтобы каждый, кому хочется, мог сделать копию либрусека у себя на компе и выставить его в доступ? А список таких зеркал публиковать где-нибудь на главной странице или вообще сделать механизм автоматического форвардинга на наименее загруженные зеркала. Концепция похожая на реализацию http://gen.lib.rus.ec/ - сайт можно в том же виде держать у себя дома. Единственное, синхронизация коллекции пока не прорабатывалась в деталях.
Тогда либрусеков будет сколько хочешь, учитывая наплыв пользователей на сайт, в особенности тех, которые скачивают всё подряд. Плюс разгрузка ответственности, выживаемость и т.п. Пню понятно, что централизованный подход выгоден исключительно на уровне координации (головная база данных должна быть одна). Во всех остальных случаях лучше иметь децентрализованные решения.
bw
Отв: Тех. помощь в создании зеркала либрусека
Нужен второй вариант. Иначе при невозможности доступа на Либрусек не будет доступа и к списку зеркал.
Отв: Тех. помощь в создании зеркала либрусека
Для списка - легко. Форумы, почтовые рассылки... Для форвардинга, что наиболее удобно с точки зрения рассредоточения и живучести, нужен, видимо, отдельный сервер, узкоспециализированный. Чем-то система напоминает торрент ;), только нужна поддержка не только скачивания. Не знаю, есть ли аналоги?
ИМХО, вообще, если вынести все лишнее с Либрусека на другой ресурс (чат, форум, ЖЖ и проч.) - не отпадет ли проблема перегрузок? Ну, не может быть, чтобы сервер ложился от 300 посетителей! Специалисты, проконсультируйте, в чем тут дело? Ведь тормозит не скачивание, не канал - только база, т.е. сам сервер. На скачивание ни разу тормозов не видел, а вот на упаковку или на поиск - все время. Конечно, куда лучше было бы, если бы не сообщение о перегрузке выдавать, а ставить запрос в очередь на отсроченную обработку. Ну, кто работает с базами? Помогите Ларину и нам всем найти выход!
Отв: Тех. помощь в создании зеркала либрусека
Для начала, хорошо-бы, создать static.lib.rus.ec с книгами, на отдельном сервере. Используя только "static html"(генерировать скриптом, периодически).
А для "фич" использовать javascript и ajax.
Небудет всех "фич", но такой сервер выдержит, с честью, даже нагрузку на всю ширину канала.
А потом, если понравится, писать что-то вроде StillLife Витуса Вагнера.
Отв: Тех. помощь в создании зеркала либрусека
для того, чтобы выбрать конкретную схему расчленения либрусека нужно, чтобы ларин замерил сколько процессора ужирается форумом (это обязано быть дохера, с мускула берётся каждая строчка на форуме, каждый раз новый запрос), сколько камня жрут какие-то другие отделяемые части сайта. При наличии карты распределения нагрузки станет понятна схема разделения.
По идее форум и скачивание книг абсолютно ортогональны друг другу и разнести их на разные сервера особых сложностей представлять не должно.
Ещё меня вот какой вопрос волнует: кэшируются ли как-то страницы (читай "запросы к базе данных") или для каждого юзера каждая страница, включая главную, собирается за ново из данных базы? Мне кажется сам сайт может сам контент кэшировать, обновляя кэш только при вносимых изменениях. Тогда для каждого юзера страницы будут не собираться, а только высылаться.
Отв: Тех. помощь в создании зеркала либрусека
Кешируются - иногда 502 ошибку ловлю от ngeix'а (вроде как).
Отв: Тех. помощь в создании зеркала либрусека
Называется "лоад балансер".
Самый тупой, на сколько мне известно, делается из "раунд робин ДНС" - поднимаем свой ДНС (или конфигурим имеющийся) так, чтобы на запрос lib.rus.ec отдавались разные IP.
Это хорошо, конечно, когда у зеркал свои постоянные IP.
Если нет - хуже, но можно попробовать отдавать CNAME'ы...
Вот.
Отв: Тех. помощь в создании зеркала либрусека
условия, как я понимаю, как раз такие, что стандартное решение не прицепишь, а именно: IP может быть произвольным и зеркало может исчезнуть в любой момент. Главный сервер можно заставить вести подписку зеркал следующим образом:
1) чел, у которого копия сайта (скажем исключительно download-часть) заходит на lib.rus.ec/mirrors/subscribe?now, чем его IP вносится в живой список зеркал и участвует далее в механизме распределения нагрузки.
2) либрусек с того момента начинает пинговать сервер раз в минуту и выносит его IP из списка, если сервер не пронинговался 3 раза подряд с таймаутом в 10 секунд.
3) выбор зеркала делать на основе отчёта ps (unix) и данных о ширине канала (тут некоторый задел для творчества): загрузка . Где зеркала на виндах, либо разгрузку делать по рандому, либо придумать простой критерий выбора. Либо вообще всегда выбирать по рандому, но в данной задаче это может оказаться неэффективным, но для запуска пойдёт. Впрочем, всё зависит от того, какие каналы, какие вычислительные мощности, какие ОС будут у зеркал и сколько их будет. Возможно рандом окажется более оправданной концепцией и более простой в реализации.
Вот всё, что нужно. Демиургам сайта нужно лишь определить, какие части кода сайта жрут больше 1) трафика 2) камня, а затем определить, что из этого можно разделить без массивного кодирования.
Для начала хотя бы обрисуйте цифры, какие части сайта сколько каких ресурсов жрут, чтобы все видели и думали предметно, нежели абстрактно.
Действительно похоже на P2P, однако это скорее ad-hoc симбиоз централизованного Web-подхода и P2P распределения. Для юзера всё прозрачно, для исполнителей (повелителей зеркал) элементарно, для либрусека - самомасштабируемая подмога за цену минимальных пальцодвижений. Живучесть великолепная, масштабируемость замечательная. Единственное, уход серверов в любой момент конечно даст о себе знать, но хуже, чем сейчас, будет вряд ли.
Списки зеркал, кстати, всё-равно хорошо бы иметь в явном виде, чтобы FlashGet-ом, например, выкачивать со всех зеркал одновременно - там можно задавать список зеркал.
Беда с мускулом в такой схеме не решается кстати. Предложенное очевидно помогло бы разгрузить проблемы трафика, которые пока остро не стоят. Из реализуемого для мускула наверное только разделение форумов на корню - разные машины, разные базы данных - всё отдельно. Но опять же: нужны конкретные цифры по загрузке ЦПУ, - всё станет очевидно.
bw
Отв: Тех. помощь в создании зеркала либрусека
Ну, тут ещё можно посмотреть в сторону технологий а ля DynDNS - зеркало регистрирует свой текущий IP на центральном ресурсе, который обновляет балансер на своём round-robin DNS.
rrDNS, в свою очередь, отдаёт на запрос, скажем, download.lib.rus.ec, сразу пачку А-записей.
При этом эту пачку он каждый раз тасует (да хотя бы и просто круговым сдвигом), чтобы тупые клиенты ломились в "следующее" зеркало, а умные - могли сами обнюхать весь список.
При этом само зеркало может (мы же туда по HTTP попрёмся, так?) при перегрузке вместо запрошенного файла отдать Location-редирект на, скажем, "следующее" зеркало. При кольцевой организации списка зеркал вероятность бесконечного залупления редиректов будет невелика.
Только для этого свой DNS нужен...
Правда, небольшой и специализированный.
Можно и самопал слепить.
Впрочем гугель даёт довольно много релевантных ответов, типа этого и вот этого.
Отв: Тех. помощь в создании зеркала либрусека
Да реально, реально... Сколько уж можно об этом рассуждать? Движок есть, бд есть, апдейты ежедневные тоже есть, даже хостер и тот есть. Осталось найти знания веб програмирования и можно хоть сегодня поднимать :) Только вот знаний то нету...
Отв: Тех. помощь в создании зеркала либрусека
Ну у меня есть знания. Но чёта я не въехал в проблему? Что программировать-то надо?
Отв: Тех. помощь в создании зеркала либрусека
Да хз... Есть сервер. Че на нем вообще делать надо, чтобы зеркало заработало? Че на нем сделать надо, чтобы сервер автоматом синхронизировал бд? Ну и т.д... Проще говоря: как правильно прикрутить движок к "пустому" серверу :)
Отв: Тех. помощь в создании зеркала либрусека
синхронизация баз описана лариным в ветке allbooks.
движок вообще-то не нужно уж сильно прикручивать. Зеркала могут нести и пассивную функцию, не нужно создавать 10 сайтов, каждый из которых пытается рулить всё. Пусть рулит один, а остальные синхронизируются кэшированно, т.е. с некоторой задержкой. Тут всё-равно нужен анализ того, что работает синхронно (т.е. отправили мессагу - появилась по прибытии), а что асинхронно (т.е. отправляется сейчас, а во все клоны базы попадает раз в день, в 03:00). Эти две части определят, чему нужна мгновенная реакция, а что можно обновлять оптом раз в неделю.
Зеркала также можно построить так, чтобы они были абсолютно пассивными, т.е. банально на них перекидывался бы трафик. Но насколько я помню, ларин жаловался именно на перегруз мускула - для этого был куплен новый сервер. Т.е. анализировать надо, что нагружает мускул и как это минимизировать и разделять. Схема деления на сервер форума и download-сервер при такой задаче вряд ли сильно поможет: мускул-то всё-равно останется на одной машине и будет всю её нагружать безраздельно.
Отв: Тех. помощь в создании зеркала либрусека
А не получится ли так, что до тех пор пока обновления дойдут до зеркал, много народу будет пастись в обновлениях. Я например, уже давно хожу именно за обновлениями?
Отв: Тех. помощь в создании зеркала либрусека
Если только для скачивания книг - идеология P2P подходит лучше... наверное.
Отв: Тех. помощь в создании зеркала либрусека
http://thepiratebay.org/search/lib%20rus%20ec/0/99/0
Отв: Тех. помощь в создании зеркала либрусека
А вот чтоб с интерфейсом, как у корейца, да чтоб можно только обновления получить/отдать, да из нескольких источников, да все в одной базе, да... Вобчем, могу и продолжить, а впрочем, если хотя бы это скажешь где взять - уже ого-го!
Отв: Тех. помощь в создании зеркала либрусека
Я бы вообще предложил на вспомогательных сайтах оставить интерфейс типа веб-сервиса -
туда HTTP GET ... /download&book_id=2128507&format=fb2 , оттуда - OK 200 + собственно скачивание. Выбор сервера пользователем.... Вопрос неочевидный, либо ослиная схема (центральный сервер, на котором регистрируются вспомогательные) либо схема sourceforge, с preffered-серверами и переключением ручками. Единственное обязательное условие - не должен требоваться какой-то специфичный для Либрусека тонкий клиент, ибо и с платформонезависимостью, и с версиями, и с сопровождением - намаемся по самую нехочуху.
Что касается форумов.... Изрядную нарузку, имхо, дают именно блоги - то есть персональные ЖЖ наиболее плодовитых участников. М.б. имеет смысл заводить их на отдельных серверах (пусть Гугль за нас отдувается), а на странице Либрусека публиковать только ссылку/дату последней измененной записи ? Такое технически реализуемо ?
Снимет ли это нагрузку на ЛибРусЭк?
В интернете существует много различных рассылок. Может быть сделать рассылку "лист либрусека", которая приходила бы подписчикам листа. А в эту рассылку вкладывать файлы с книгами или прямые ссылки на скачивание. Тогда постоянные качатели будут иметь те же книги, не заходя сюда.
ЗЫ: Сорри если сказал глупость;) образование у меня гуманитарное;)
Отв: Снимет ли это нагрузку на ЛибРусЭк?
Вложения делать не надо, побъют-с. А вот с прямыми ссылками, да еще с аннотациями... Здравое зерно есть...
Кстати, 2All - а что, если при синхронизации данных между основным сервером и вспомогательными использовать иерархическую структуру FTN ?
Отв: Тех. помощь в создании зеркала либрусека
"пастись в обновлениях" - имеется в виду на центральном сервере? Сервер ляжет, и все пользователи волей-неволей расползутся по зеркалам. Или Вы что-то другое имели в виду ?
Отв: Тех. помощь в создании зеркала либрусека
Готов предложить свою помощь. Волею случая по роду деятельности занимаюсь как раз разработкой высокопроизводительных систем высокой надежности. С разгрузкой и тюнингом MySQL, nginx и т.п. постоянно занимаюсь. Есть множество вариантов разгрузки системы даже без приобретения дополнительного железа.
Отв: Тех. помощь в создании зеркала либрусека
это хорошо. мы передадим ларину. спасибо