From: Igor Zubkov <igor.zubkov@gmail.com> To: ALT Linux Team development discussions <devel@lists.altlinux.org> Subject: [devel] postmortem p7 import at packages.altlinux.org Date: Sun, 26 May 2013 22:08:51 +0300 Message-ID: <CAJXf7QOdaa1HHdO+8BgoxMagsecrt3MZcst7ekfmmnBBtYktPA@mail.gmail.com> (raw) Hi, Я обещал рассказать почему p7 так долго заливался и что пошло не так. Начнём с теории. Как вообще пакеты заливаются и что происходит на фоне. После сохранения пакета в базу, в терминологии ruby on rails это событие (callback) называет after_save, вызывается sphinx который обновляет delta индекс. В обычном случае, индекс пересчитывается на лету очень быстро и дальше идёт импорт следующего пакета. Так происходит для пакетов с исходниками и дальше для бинарных пакетов. Это индекс (для ускорения) пересчитывается каждую ночь. В это время поиск не доступен. Раньше он просто показывал 500-страницу, сейчас говорит о том что индекс перестраивается и попробуйте позже. Это занимает примерно 10 минут. Было бы классно сделать так что бы когда он пересчитывал весь индекс, sphinx отдавал данные из старого. Но у нового плагина thinking-sphinx (через который работает весь поиск) версии 3.x почему такой опции больше нет. Что же пошло не так. Как раз из-за дельта индексов всё и застопорилось. В начале всё было ещё быстро, данные добавились в базу и пересчитался дельта индекс. Чем больше пакетов влилось, тем медленнее пересчитывается этот дельта индекс. Получалось на один пакет пересчёт всего дельта индекса который к тому моменты стал очень большим. Пришлось вмешаться в этот процесс, остановить его, добавить код который отключал дельта индексы при заливке и пересчитывал их после. И через день всё заработало. На будущее, packages.altlinux.org выдержит добавление нового бранча (t7 ведь будет?) и по времени это займёт несколько дней. Соответствующие изменения в од я добавлю. -- Igor Zubkov http://hi.im/ice
next reply other threads:[~2013-05-26 19:08 UTC|newest] Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top 2013-05-26 19:08 Igor Zubkov [this message] 2013-10-24 10:46 ` Igor Zubkov 2013-10-25 16:50 ` Igor Zubkov
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=CAJXf7QOdaa1HHdO+8BgoxMagsecrt3MZcst7ekfmmnBBtYktPA@mail.gmail.com \ --to=igor.zubkov@gmail.com \ --cc=devel@lists.altlinux.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
ALT Linux Team development discussions This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \ devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru public-inbox-index devel Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.devel AGPL code for this site: git clone https://public-inbox.org/public-inbox.git