Владельцам 3.8.6: не поставили патч - потеряли форум!

Файловый Архив

  • Неограниченное количество категорий и суб-категорий
  • Настройки прав доступа по группам
  • Настройки прав доступа по каждой категории
  • Предпросмотр медиа файлов: FLV, IFLV, F4A, F4V, MP4, MP3, MOV и других...
  • Мультизагрузка файлов - SWFUploader
  • Добавление файлов с сервера
Подробности и история обновлений продукта в этой теме
Loading

Go Back   форум vBSupport.org > > >
Register Изображения Меню vBsupport Files Manager Аллея Звёзд Реклама на форуме Search Today's Posts Mark Forums Read
  • Мемберка
  • Администраторам
  • Premoderation
  • For English speaking users
  • Изменения в правах
  • Каталог Фрилансеров
Пароли на скачивание файлов в Member Area меняются автоматически каждый день
Если вам нужно скачать какой то скрипт, за паролем ко мне в ЛС
привет какирам kerk
Ещё раз обращаем Ваше внимание: всё, что Вы скачиваете и устанавливаете на свой форум, Вы устанавливаете исключительно на свой страх и риск.
Сообщество vBSupport'а физически не в состоянии проверять все стили, хаки и нули, выкладываемые пользователями.
Помните: безопасность Вашего проекта - Ваша забота.
Убедительная просьба: при обнаружении уязвимостей или сомнительных кодов обязательно отписывайтесь в теме хака/стиля
Спасибо за понимание
На форуме введена премодерация ВСЕХ новых пользователей

Почта с временных сервисов, типа mailinator.com, gawab.com и/или прочих, которые предоставляют временный почтовый ящик без регистрации и/или почтовый ящик для рассылки спама, отслеживается и блокируется, а так же заносится в спам-блок форума, аккаунты удаляются
for English speaking users:
You may be surprised with restriction of access to the attachments of the forum. The reason is the recent change in vbsupport.org strategy:

- users with reputation < 10 belong to "simple_users" users' group
- if your reputation > 10 then administrator (kerk, Luvilla) can decide to move you into an "improved" group, but only manually

Main idea is to increase motivation of community members to share their ideas and willingness to support to each other. You may write an article for the subject where you are good enough, you may answer questions, you may share vbulletin.com/org content with vbsupport.org users, receiving "thanks" equal your reputation points. We should not only consume, we should produce something.

- you may:
* increase your reputation (doing something useful for another members of community) and being improved
* purchase temporary access to the improved category:
10 $ for 3 months. - this group can download attachments, reputation/posts do not matter.
20 $ for 3 months. - this group can download attachments, reputation/posts do not matter + adds eliminated + Inbox capacity increased + files manager increased permissions.

Please contact kerk or Luvilla regarding payments.

Important!:
- if your reputation will become less then 0, you will be moved into "simple_users" users' group automatically.*
*for temporary groups (pre-paid for 3 months) reputation/posts do not matter.
Не можете скачать вложение?
Изменения в правах групп пользователей
внимательно читаем эту и эту темы
Короткая версия - тут
Уважаемые пользователи!

На форуме открыт новый раздел "Каталог фрилансеров"

и отдельный раздел для платных заказов "Куплю/Закажу"

 
 
Old  
Yoskaldyr
Специалист
Default Расширение стандартной системы кеширования vb 3

Не знаю как кто, но лично мне довольно часто нужно использовать какой либо кеш при написании хаков, чтобы лишний раз не дергать базу. Стандартная система кеширования vb (класс vbDatastore) не совсем подходит, т.к. она оптимизирована под один большой запрос всех данных при инициализации vb (еще до Init хука) и даже если используется любой внешний (xcache, ea, apc, memcached) все равно пишет дубликат в базу (datastore), как следствие этот класс не совсем подходит для частого изменения кеша, например для хаков типа чата (для информации - нет ни одного нормального чата для булки выдерживающего нормальные нагрузки).
Написать что-то жестко заточенное под конкретный кеш для меня не составляет проблем, но это совсем не подходит для публичных хаков, т.к. очень жесткая заточка под конкретную конфигурацию сервера, да и не красиво это.
Может есть у кого или универсальный класс не конфликтующий со стандартным классом булки для однотипной работы с xcache, ea, apc, memcached. И конечно желательно проверенный в работе, т.к. классов существует много, и проверить совместимость и не конфликтность со стандартным классом я могу только для xcache (под хорошей нагрузкой) и ea (без нагрузки).

P.S. Вообще-то уже и сам написал такой класс на базе класса булки и по идее он не должен конфликтовать со стандартным (для xcache точно работает без проблем под нагрузкой), но протестировать для всех кешей не было возможности (особенно критична совместимость со стандартным классом vb memcached-а, т.к. там коннекты к серверу, флаг подсоединенности и т.д. и т.п.).

Добавил файл с функциями расширяющим функционал обращения к варкешу (датастору). Расширение в плане прямого добавления/ прямого извлечения / прямого удаления записей из кеша + работа с TTL.

Работает с eAccelerator, XCache, APC
Не работает с Filecache и Memcached. Первый (Filecache) даже не рассматривал ввиду его скорости, второй не было где нормально протестировать (да и скорость у мемкеша тоже не очень)

Функции:
isenabled_datastore() - проверка что включен поддерживаемый датастор
get_datastore($title, $unserialize_detect = 2) - прямое извлечение записи из датастора (unserialize_detect аналогичен стандартному функционалу vb) возвращает null если запись извлечь не удалось
set_datastore($title, &$data, $ttl=null) - запись данных в датастор
delete_datastore($title) - удалить запись из датастора.

Все производимые операции с датастором никак не трогают датастор в базе, т.е. это не столько использование датастора, а сколько небольшая навеска для прямого использования установленного варкеша.
Attached Files
File Type: zip functions_datastore.zip (821 Bytes, 15 views)

Last edited by Yoskaldyr : 04-03-2010 at 01:54 AM. Reason: Добавил файл с функциями.
 
Old  
Yoskaldyr
Специалист
Default 0

Quote:
Originally Posted by netwind View Post
HTTP-трекер на php вообще изначально неправильный и неудобный протокол для файлообмена. Нагрузки, сходные с автоматическими запросами постоянно дрюкающего торрент-клиента очень непросто достичь обычному форуму.
Я разве разве что-то говорил о торрент трекере? У меня нагрузка более 200 запросов в сек не учитывая аннонсы и скрейпы торрент клиентов (с ними будет все 500 или 600 запросов в сек).
И я здесь не ставил вопросы как оптимизировать торрент трекер (в данном вопросе я рассказываю что и где оптимизировать). И торрент трекер это такой продукт что для получения нужной производительности приходится жертвовать универсальностью - сделал специально для xcache и нет проблем или поставил бинарный аннонсер и нет проблем.

Весь первоначальный вопрос сводился к тому кто и как использует различные кеширующие средства, потому класс vbDatastore не удобен для использования в хуках булки (т.к. отрабатывает полностью до самого первого хука), но очень удобен для своих отдельных скриптов.

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

Взять к примеру милый такой хак - пользователи зарегистрировавшиеся сегодня. Всего пару запросов, но делающих фулскан таблицы пользователей и при небольшой посещаемости и небольшом количестве пользователей никто и не почувствует что это фулскан, но если посещаемость будет большая + зарегистрированных пользователей более 100К, то 1 такой хак просто прикладывает форум. Да используя хук можно использовать datastore, но тогда или 2-й раз дергать все закешированные спецшаблоны по умолчанию (options, forumcache и т.п.) или не использовать пхп-кеш, а дергать из базы или править оригинальные файлы булки добавляя свою переменную в specialtemplates.

Yoskaldyr добавил 21.09.2009 в 14:00
Quote:
Originally Posted by netwind View Post
Хаков я написал не так много и они были обычные народные не связаные с варезом или кеширование всего и вся на ограниченных ресурсах. Datastore использовал один раз в баннерной системе - там где действительно нужно.
Примеры пожалуйста.

Last edited by Yoskaldyr : 09-21-2009 at 03:00 PM. Reason: Добавлено сообщение
 
Bot
Yandex Bot Yandex Bot is online now
 
Join Date: 05.05.2005
Реклама на форуме А что у нас тут интересного? =)
Old  
netwind
Гуру
 
netwind's Avatar
Default 0

:
Quote:
Originally Posted by Yoskaldyr View Post
и если есть возможность закешировать, то почему бы этого не сделать.
Неправильная логика. Если есть возможность и необходимость закешировать. Память ведь не бесконечна и ее всегда есть куда потратить.

Quote:
Originally Posted by Yoskaldyr View Post
Весь первоначальный вопрос сводился к тому кто и как использует различные кеширующие средства, потому класс vbDatastore не удобен для использования в хуках булки (т.к. отрабатывает полностью до самого первого хука), но очень удобен для своих отдельных скриптов.
Ok.
По моим наблюдением никто никак не использует кеши. Для глобальных постоянно нужных данных datastore работает нормально : http://www.vbulletin.org/forum/showthread.php?t=110628 (правка файлов для specialtemplates не нужна, мы уже это обсуждали на форуме)
Для остального используют простой кеш в mysql, потому как хаки могут работать в разных окружениях и гарантированно присутствуют только php и mysql.
Вызвано это
1. Уникальными правами доступа для каждого юзера за счет групп, списка игнорирования и тд.
2. Несравнимо более тяжелым фреймворком форума (все тот же global.php, экономить на спичках нет смысла).
3. Недостаточно большим числом хуков и как следствие неизбежным возрастанием числа отредактированных файлов. Как следствие высокой сложности поддержки такого кода.
4. Всем тупо пофиг. Vbulletin - это форум для коммьюнити о золотых рыбках, а не платформа для посещаемого портала.

netwind добавил 21.09.2009 в 14:47
Thread passwords Я выкладывал http://www.vbulletin.org/forum/showthread.php?t=156147
что предложишь закешировать там ?

Last edited by netwind : 09-21-2009 at 03:47 PM. Reason: Добавлено сообщение
 
Old  
Yoskaldyr
Специалист
Default 0

Quote:
Originally Posted by netwind View Post
правка файлов для specialtemplates не нужна, мы уже это обсуждали на форуме
Как раз здесь и указано что надо добавить specialtemplates http://www.vbulletin.org/forum/showthread.php?t=110628
Но не указано одно, что чтение датастора отрабатывается до любого хука, и как следствие чтобы это отработало например в showthread необходимо править файл showthread.php
Quote:
Originally Posted by netwind View Post
Несравнимо более тяжелым фреймворком форума (все тот же global.php, экономить на спичках нет смысла).
А если спичек целая спичечная фабрика? Иногда полезно заменить спичечный коробок одной зажигалкой.
Кстати vb-фреймворк не на столько тяжелый как его рисуют. Он очень хорошо оптимизируется опкодкешами, в отличии от многих других.
Quote:
Originally Posted by netwind View Post
Всем тупо пофиг. Vbulletin - это форум для коммьюнити о золотых рыбках, а не платформа для посещаемого портала.
Только вот почему то goha.ru на vbulletin и много других очень посещаемых порталов
Quote:
Originally Posted by netwind View Post
Недостаточно большим числом хуков и как следствие неизбежным возрастанием числа отредактированных файлов. Как следствие высокой сложности поддержки такого кода.
Вот поэтому я и не хочу править оригинальные файлы булки - делаю в самых крайних случаях. Но вот использовать датастор без правки файлов нормально нельзя, т.к. он отрабатывает до всех хуков.
Quote:
Originally Posted by netwind View Post
Thread passwords Я выкладывал http://www.vbulletin.org/forum/showthread.php?t=156147
что предложишь закешировать там ?
Хороший хак. Код нормальный. И почему если стоит вопрос о кешировании, так сразу понимать его что его нужно использовать везде? Например ни в одном из собственных хаков мне пока не понадобилось что-либо кешировать. Но вот для исправления чужих кривых хаков кеширование очень бы помогло.
 
Old  
netwind
Гуру
 
netwind's Avatar
Default 0

Quote:
Originally Posted by Yoskaldyr View Post
Как раз здесь и указано что надо добавить specialtemplates http://www.vbulletin.org/forum/showthread.php?t=110628
Но не указано одно, что чтение датастора отрабатывается до любого хука, и как следствие чтобы это отработало например в showthread необходимо править файл showthread.php
А кто-то забыл, что в комьюнити - главное обсуждение
Там на других страницах упомянуто, что хук init_startup таки работает раньше. Ты пропустил тему, из который вырос раздел : http://vbsupport.org/forum/showthrea...585#post267585

Quote:
Originally Posted by Yoskaldyr View Post
И почему если стоит вопрос о кешировании, так сразу понимать его что его нужно использовать везде?
"Это же новый тренд, Данила !" (есть такая передачка "Даешь молодежь")
Стараниями хаброюзеров, похоже, стремление все кешировать будет распространяться и дальше. Тогда как обычно можно было нормально написать запрос.
Вот, допустим, твой пример с последними зарегистрированными юзерами :
Достаточно округлить TIMENOW до текущего часа и использовать это значение вместо NOW() и запрос волшебным образом будет кешироваться в самом mysql. Правда кеш будет довольно быстро "выветриваться" когда юзеры постят или делают изменения в профиле. Поэтому нужно еще добавить индекс.

Quote:
Originally Posted by Yoskaldyr View Post
Только вот почему то goha.ru на vbulletin и много других очень посещаемых порталов
Просто они выросли из коммьюнити о золотых рыбках. Если посмотреть на ценовую политику jelsoft, то сразу станет ясно, что их не интересуют крупные форумы. Их интересуют инсталляции. Но мы же теперь не будем упрашивать jelsoft лицензировать форумы по посещаемости?
 
Old  
Yoskaldyr
Специалист
Default 0

Quote:
Originally Posted by netwind View Post
Там на других страницах упомянуто, что хук init_startup таки работает раньше.
Да мне глубоко побоку что там написано. У меня есть исходный код булки и там обработка specialtemplates идет до любых хуков и init_startup не исключение (по крайней мере в 3.7.х и 3.8.х). Не стоить верить всему что пишут на vbulletin.org.
 
Old  
kerk
k0t
 
kerk's Avatar
Default 0

интересная тема, не могу подключиться, т.к. только начал изучать сей момент =)
естессно и раньше знал про кэш датасторе, но ниразу сам его не пользовал до недавнего времени
но уже кое чего удалось добиться =)
вместо 20 и больше запросов на странице (чем больше разделов и подразделов, тем больше запросов), выполняется только 9, сделал структуру разделов хака, по образу и подобию структуры разделов форума и запихал все это дело в кэш
использую кэш пока только на страницах этого хака, но думаю переделать некоторые другие так же =)
 
Old  
Gulia
Специалист
 
Gulia's Avatar
Default 0

У меня при помощи datastore и vb optimise получилось добится постоянного 7-8 запросов на главной учитывая Vbseo и еще 3-4 хаков в том числе и отображение ботов. Без хака ботов вообще 6 запросов на главной
 
Old  
netwind
Гуру
 
netwind's Avatar
Default 0

Yoskaldyr, да как бы special_templates и не нужны. Если бы у тебя была лицензия, то по ссылке ты увидел бы
скрытый текст :
PHP Code:
$datastore_fetch[] = "'dropmenu'"

вот сам глянь в код includes/init.php :
PHP Code:
($hook vBulletinHook::fetch_hook('init_startup')) ? eval($hook) : false;

if (!empty(
$datastore_fetch))
{
    
$vbulletin->datastore->do_db_fetch(implode(','$datastore_fetch)); 

 
Old  
Yoskaldyr
Специалист
Default 0

netwind, Ну где здесь полное отрабатываение datastore-а????
Если более внимательно глянуть код, то при использовании specialtemplates данные берутся из кеша а не из базы (конечно если включен правильный класс), а если и из базы то все данные вытягиваются одним запросом. Зачем мне делать еще один дополнительный запрос и не использовать кеш если он у меня включен, т.е. булке можно с ним работать а мне нет?
$vbulletin->datastore->do_db_fetch - это не $vbulletin->datastore->do_fetch
или $vbulletin->datastore->fetch
Смотрим внимательнее и пробуем еще раз.

Last edited by Yoskaldyr : 09-22-2009 at 12:26 AM.
 
Old  
netwind
Гуру
 
netwind's Avatar
Default 0

Yoskaldyr, а нигде. Оно людям и не нужно.

Но официальный согласованный способ хранить и подцеплять данные требующие кеширования существует. Это людям и нужно. Верить vbulletin.org можно.

Кстати, ни один cпособ хранения datastore (xcache,apc,eaccelerator,memcache) не использует технику отображения переменных прямо в память php. Все они сериализируют массивы как строки и копируют их в память php. Память это совсем не экономит.
 
 

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off




All times are GMT +4. The time now is 08:46 PM.


Powered by vBulletin® Version 3.5.8
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd.