В SVN обновил механизм пользовательских сессий. Теперь сессии хранятся в отдельной таблице и содержат данные о последней дате активности пользователя и его IP. Это позволит снять нагрузку с запроса на получения списка онлайн юзеров, который раньше приходилось делать ко всей таблице пользователей.
Также появилась новая фишка — теперь сессия авторизованного юзера обновляется в БД не при каждом запросе к сайту, а с интервалом в 10 минут. Т.е. каждый раз она сохраняется в кеше и каждые 10 минут сбрасывается в БД. Это позволит избавиться от большого числа UPDATE запрос при значительном онлайне пользователей, что должно сказаться на производительности, особенно у обладателей MyISAM, т.к. это engine полностью лочит таблицу при записи в неё.
Надеюсь на вашу помощь в тестирование этого нововведения :)
ЗЫ Забыл добавить, т.к. обновление в БД происходит минимум раз в 10 минут, то при отображении списка онлайн юзеров возможна погрешность в сортировке, которая составляет примерно 10 минут
Это не просто оптимизация, а изменение логики работы. И подход верный. Я так понимаю, эта доработка возникла не просто сама по себе, а потому, что она нужна для других функций. А раз уж сделано, то почему бы не выложить?
Ясно. Просто я думал, что тут слабое место — это время загрузки страницы (у лс 0.1-0.3 время, а должно быть 0.03-0.06). Так же я думал, что к таблице с пользователями обращения всёравно идут часто. Например при постройке комментариев или топиков.
Похоже, что я ошибался.
Я пока не тестил, но есть вопрос в тему по ранней версии.
Я работаю с нескольких компьтеров, и при поочередном посещении сайтов на LS приходится логиниться. Это огрешность или фишка безопасности? Если сделано для безопасности — можно вынести этот параметр в конфиг?
пока сложно протестировать, так как не до конца закончена оптимизация БД, например при добавлении топика ошибки, хотелось бы так сказать в более рабочем варианте посмотреть
изменения в function.php были внесены еще раньше, т.е. в прошлых ревизиях
выборочно лучше не нужно накатывать обновления, а то грозит такими неприятностями как эта
Теперь, при желании, можно смело анонимусу давать возможность постить. Кстати не помешало бы, в качестве опции, сохранить и стандартный механизм авторизации. При грамотной настройке хоста, со старым механизмом авторизации, по идее не должно возникать проблем с безопасностью.
Еретично это как-то однако…
Предложение на такой борде: "… (нужное вписать) залогиньтесь!" Будет иметь буквальный смысл. А что как и залогинется? Страшно даже представить.
После релиза 0.3.1 какие коммиты из SVN можно без проблем ставить и тестить? Или полностью SVN уже рабочая? Хочется знать что можно делать, а что не стоит пока или же вообще лучше ждать следующего релиза.
ИМХО, для экспериментов на локальной машине можно юзать что угодно, хоть десяток копий можно поставить. А вот на рабочих сайтах я бы рекомендовал только объявленные релизы ставить.
в svn у вас код постоянно поломанный. Почитайте книгу «Непрерывная интеграция». Побольше тестите релизы перед выпуском. Постоянно баги вываливаються всякие. Пишите через тесты что ли.
А вообще спасибо! скрипт у вас шикарный и грамотно написан. Развонялся потому что хочу его же но без багов.
почитайте зачем нужен SVN и как вести разработку, возможно станет понятно почему в SVN(в trunk) версия не обязана быть рабочей в принципе. Рабочие и протестированные релизы лежат в tags
:) Нет уж. Я как раз свое прочитал. В больших конторах тем кто поломал билд в свн цепляют уши на целый день. Или он покупает всему офису пицу. Поломанный Билд — это херово. И про разработку почитать нужно похоже вам. Вы просто неработали никогда в команде — это видно сразу. Могу посоветовать хорошую книгу «Непрерывная интеграция» Поль М. Дюваль. Это класика, такая же как банда четырех. Почитайте. Вы очень сильно гоните беса. Да еще и так уверенно говорите, то чего сами незнаете.
ЗЫ Я вообще в шоке — где вы такое прочитали про SVN? Ссылками на литературу желательно ответьте. Я вот ее прочитал достаточно, да и с свн поработал достаточно. Жду ваших извинений после прочтения книги.
где говорится, что текущая рабочая версия(trunk) всегда должна быть работоспособной? Вы мне предлагаете методику работы с репозитарием, но методик много, да и отсутствие популярной методики — это тоже своеобразный метод работы. Я исхожу из того, что если я не следую предложенной вами методики — это не значит, что я делаю неправильно.
В команде я работал, в большой и крупной, где были и проектировщики, и составители ТЗ, и разработчики, и тестеры, и нагруз-тестеры и всё завязано по цепочке. Предложенная вами схема делать атомарные коммиты не приводящие к краху сборки — это замечательно и она работала в моей компании. Но работает она ровно до того момента, когда вдруг необходимо вносить существенные изменения в архитектуру/работу приложения, которые не ограничиваются одним днём, одним коммитом и не делятся на атомарные коммиты. такая ситуация сейчас происходит и с ЛС, изменения настолько глобальны, что при первом же коммите они рушат систему, пока не будут внесены все изменения, кторые могут занять не один день. А я не привык растягивать один коммит больше, чем на один день — стараюсь придерживаться принципа: один коммит — одна фитча. Так удобнее делать откаты и т.п.
да вы что?!
а еще есть гемморой по их объединению, тем более применительно к ЛС на такой ранней стадии развития делать ответвления — это не рационально.
Что еще вы знаете?
Валера, Вы наверно на ХабраХабре пересидели? Или Вы из параллельного мира?
Лайв-Стрит вообще-то бесплатная разработка, и Максим Орт, не Вам, не кому либо другому ничего не должен и не чем не обязан! Он сегодня по идее может оценить коробочную версию продукта по 500 у.е и такие советчики как Вы моментом окажутся в своей реальности! ;-)
Даже если оценит, весь ранее опубликованный код можно продолжать использовать в соответcтвии с gpl. Могу посоветовать хорошую книгу «Непрерывная интеграция» Поль М. Дюваль.
А вот это уже в багрепорт: livestreet.ru/blog/bugreport/
И поверьте — от конкретных замечаний по багам пользы будет больше, чем от пикировок, кто каких книг больше прочитал
а с чего бы она должна увеличиваться? посмотрите как там что в файле подсчёта рейтинга организовано. при голосовании за коммент увеличивается только сила. правда это совсем не для этой темы вопрос
с чего вы взяли, что это баг? с того, что это работает не так как вам хочется?
при голосовании за коммент рейтинг(карма) не меняется, изменяется только сила, степень изменения зависит от силы голосующего.
Эх, нашелся бы еще энтузазист, который расписал бы где-нить, что такое «сила», «рейтинг», от чего они зависят, как считаются и т.д. Для многих это в новинку.
Будешь смеяться — я сам толком не знаю, как это все считается. Я, честно говоря, как-то никогда особо не заморачивался всеми этими цифирьками. Разумеется, приятно, когда тебя плюсуют, но делать из этого самоцель — наф-наф-наф
только что ставил версию из свн в локали.
заметил 2 момента:
1) в svn sql.sql не хватает таблицы prefix_session
2) ругается скрипт при установке на отсутствие папки для /templates/compiled
я справился, просто отмечаю для вас эти моменты ;)
70 комментариев
Оптимизировали там, где это требовалось в последнюю очередь…
Похоже, что я ошибался.
Я работаю с нескольких компьтеров, и при поочередном посещении сайтов на LS приходится логиниться. Это огрешность или фишка безопасности? Если сделано для безопасности — можно вынести этот параметр в конфиг?
func_array_simpleflip($aAllowData); (User.class.php строка 67)
func_build_cache_keys($aUserId,'user_'); (User.class.php строка 110)
и далее по аналогии.
выборочно лучше не нужно накатывать обновления, а то грозит такими неприятностями как эта
Предложение на такой борде: "… (нужное вписать) залогиньтесь!" Будет иметь буквальный смысл. А что как и залогинется? Страшно даже представить.
А вообще спасибо! скрипт у вас шикарный и грамотно написан. Развонялся потому что хочу его же но без багов.
ЗЫ Я вообще в шоке — где вы такое прочитали про SVN? Ссылками на литературу желательно ответьте. Я вот ее прочитал достаточно, да и с свн поработал достаточно. Жду ваших извинений после прочтения книги.
В команде я работал, в большой и крупной, где были и проектировщики, и составители ТЗ, и разработчики, и тестеры, и нагруз-тестеры и всё завязано по цепочке. Предложенная вами схема делать атомарные коммиты не приводящие к краху сборки — это замечательно и она работала в моей компании. Но работает она ровно до того момента, когда вдруг необходимо вносить существенные изменения в архитектуру/работу приложения, которые не ограничиваются одним днём, одним коммитом и не делятся на атомарные коммиты. такая ситуация сейчас происходит и с ЛС, изменения настолько глобальны, что при первом же коммите они рушат систему, пока не будут внесены все изменения, кторые могут занять не один день. А я не привык растягивать один коммит больше, чем на один день — стараюсь придерживаться принципа: один коммит — одна фитча. Так удобнее делать откаты и т.п.
а еще есть гемморой по их объединению, тем более применительно к ЛС на такой ранней стадии развития делать ответвления — это не рационально.
Что еще вы знаете?
Лайв-Стрит вообще-то бесплатная разработка, и Максим Орт, не Вам, не кому либо другому ничего не должен и не чем не обязан! Он сегодня по идее может оценить коробочную версию продукта по 500 у.е и такие советчики как Вы моментом окажутся в своей реальности! ;-)
И поверьте — от конкретных замечаний по багам пользы будет больше, чем от пикировок, кто каких книг больше прочитал
при голосовании за коммент рейтинг(карма) не меняется, изменяется только сила, степень изменения зависит от силы голосующего.
предлагаю предположить, что голосующий не обладает достаточной силой…
ЗЫ Пардон за оффтоп
заметил 2 момента:
1) в svn sql.sql не хватает таблицы prefix_session
2) ругается скрипт при установке на отсутствие папки для /templates/compiled
я справился, просто отмечаю для вас эти моменты ;)
у себя не смог такое воспроизвести