ALT Linux Team development discussions
 help / color / mirror / Atom feed
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

             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