edgeways.ru
Список форумов
Техфорум
Обсуждение вопросов, связанных с работой форумов. Замечания, предложения, проблемы.  
НеВопрос 18. Про архивирование форумов.
Аватарка Пользователь: edge (IP-адрес скрыт) [Модератор]
Дата: 06, November, 2011 07:02

В связи с частыми вопросами касательно некоторых тем и сообщений, которые не могут найти (напр. "..не могу найти тему chispa1707(Степаненко) Мастер-класс работы с базами данных..") или касательно желания продолжить старую тему ("..добавить в уже имеющиеся и обсудить именно там..") -- стоит сделать разъяснение сути архивирования форумов.

Каков смысл вообще разделения форумов на архивы и текущие форумы.

А.
Форум это не только страничка в браузере, которую видит посетитель-читатель-писатель. Для того, чтобы посетитель увидел эту страничку, её нужно сначала создать и переслать ему. Создаётся страничка на веб-сервере, набором программ, который на жаргоне называется "движкОм форума", чтоб подчеркнуть, что это 1) то, что двигает и позволяет "ездить" и 2) единый набор разных функций.

     (читатель) - (браузер) - (интернет) - (веб-сервер) - (движок)

или если выбросить то, что "как солнце и воздух", "само по себе существует" ("..солнце светит днём, когда и без того светло.."© ), ;) то

     (читатель) - (движок)



Б.
"Движок форума" строит разнообразные странички, сохраняет и читает сообщения в базе данных. База данных это хранилище информации, которую использует "движок". (В отличие от "движка" это не жаргон, а обычный термин). Общение с базой данных производится "движком" через сервер базы данных.

     (читатель) - (движок) - (база данных)

В.
С ростом количества сообщений растёт и объем базы данных. От её внутреннего устройства и размера зависит тот объем необходимых операций, которые нужно выполнить серверу базы данных, чтобы выбрать необходимые данные и передать их движку. Сотни-тысячи сообщений это одно, десятки и сотни тысяч сообщений это уже несколько другое. Для доступа разных посетителей к разным сообщениям серверу приходится обращаться к разным участкам базы данных. Десятки сотни посетителей обращаются к последним сотням сообщений. Кто-то делает поиск по всему объему. Десятки поисковых роботов сканируют то, что сами вздумают, когда вздумают и где вздумают.

Г.
Пока тот оперативный объем, с которым приходится работать серверу базы данных меньше его оперативных возможностей, всё работает и все довольны. Но когда потребности достигают и превышают оперативные возможности сервера -- наступает падение производительности системы, задержки выполнения запросов, выстраивание запросов в длинную очередь, которая ждет пару запросов, которые не могут быть исполнены вследствие отсутствия ресурсов и прочие неприятности.

Д.
Для решения этих проблем следует либо увеличить возможности сервера, либо уменьшить потребности базы данных.

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

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

Так возникает "архив" и "новый форум".

Е.
"Новый форум" можно открыть "с нуля", т.е. без старых сообщений. Несколько раз именно так и делалось. Все читатели и писатели сами копировали старые и текущие обсуждения и продолжали темы на новом форуме. Однако, это можно сделать только один раз, когда "старый форум" закрывается и открывается "новый". Один раз этот разрыв связности можно перетоптаться.

Но майско-июньско-июльский переход был лишен подобной возможности. Текущий набор форумов и разнообразных архивов был достаточно велик, как оказалось, для того, чтобы "легко и просто" "взять и перенести". Старый хостинг не справлялся с производительностью. Несколько взятых на пробу хостингов тоже не справились, несмотря на позиционирование и декларации. В результате пришлось делать несколько довольно объемных миграций с хостинга на хостинг, и "открывать" каждый раз "новый форум" было бы совершенно безответственной затеей.

Поэтому был сделан срез от марта по тогдашний текущий майский момент, т.е. почти 3 месяца дискуссий были скопированы в новую базу данных (разумеется, с вычисткой всех хвостов, которые были прикреплены к более ранним темам, но попали в срез), и дискуссии продолжались в том же режиме и темпе, несмотря на переключения хостингов. Уменьшенный объем новой БД позволял быстро копировать и быстро работать. Читатели форумов занимались чтением, писатели писаниной, и никто не капал на мозг народному слесариату внутренних дел про то "когда же будет форум, ну когда же будет форум". У всех было чем заняться, не мешая друг другу.


Ж.
В настоящее время существует набор тем и сообщений в текущем экземпляре форумов, и есть "архив". Они пересекаются в наборе сообщений с начала марта по почти конец мая. Более ранние сообщения есть только в "архиве". Более поздние только в текущем форуме.

Вот условное соотношение, где расположены сообщения по времени.
Старый форум (архив)

09.2007                                           05.2011
 *----------------------------------=======*

Новый форум (текущий)
                                 03.2011                           сегодня
                                   *=======-------------------*

Отдельные сообщения не копировались и не переносились. В реальности это единый один поток сообщений, который разделяется движком на темы и ответы, затем уже в этом виде показываемые читателям.

З. Для поиска тем следует учитывать, что функция "Искать" работает только в том экземпляре форумов, в котором она запущена на поиск. Если искомое на найдено в текущем форуме, есть смысл переключиться на архив и поискать там то же самое. Для быстрого переключение (без кликаний по кнопкам и ссылкам) можно воспользоваться изменением адреса страницы -- убрать две единицы "11" из слова "forum11". "forum11" это текущий форум, а тот же самый адрес но с "forum" -- это соответствующий раздел или страница в "архиве".


(tu): Турист

Перейти: <>
Опции: ОтветитьЦитировать

Ваше имя: 
Ваш email: 
Тема: 
Smileys
...
(loading smileys)
Незарегистрированный пользователь должен ввести код, чтобы публиковать сообщение. Действителен только последний показанный код.
Введите код:  Картинка
В онлайне
Michael_Sv
Гости: 33

This forum powered by Phorum.