Не смотря на то, что этот код писал не я, мне понятно почему реализовано именно так. Да, возможно, реализацию можно сделать лучше, но текущий вариант вполне работоспособен.
Может быть мы когда-нибудь и придем к этому, но пока такой задачи не стоит. При этом я не говорю, что это плохо или нереализуемо :) Любой дополнительный компонент увеличивает сложность системы и понижает надёжность, пусть даже и опосредованно.
Сейчас сбор характеристик запроса и подходящих баннеров у нас не является узким местом.
Когда-то были проблемы с производительностью этого источника, мы его переписали, производительность нас удовлетворила, и мы успокоились.
Другими словами, у нас задача не в том, чтобы отдать контент максимально быстро, а в том, чтобы отдать контент не медленнее, чем за N миллисекунд. И мы не занимаемся оптимизацией пока укладываемся в эти N.
Извините, что отвечаю не на тот коммент, но внизу мое сообщение не заметят. mc_dir, в чем претензия к данному коду? Да static, да protected, и да — описывает формат. Если внимательно почитать код, то можно понять почему сделано именно так. Мы не принуждает использовать наш фреймворк. Кстати, мы его не продаем. ;)
Если он вам не по душе, просто не обращайте на него внимания. Если хотите улучшить — код открыт, патчи приветствуются. )
vaevictus Мы ищем ведущего разработчика не для того, чтобы переписать класс Timestamp, у нас и без этого хватает работы ;)
OnPHP — это фреймворк, который используется для вполне утилитарных задач. Вряд ли кто-то будет писать туда код «чтобы было». В последнее время код пишется под конкретную задачу. То же самое касается правок — если старый код никто не исправляет, значит он работает.
Мы решаем частную задачу: нам нужно максимально быстро показывать хорошие баннеры. Списки баннеров, которые предположительно подходят для показа, строятся в одном месте и раскидываются по всем сервера. Запрашиваются же они всегда с localhost (только localhost для всех разный :). Мгновенная синхронизация нам не нужна. Не будет ничего страшного если на какое-то короткое время значения на серверах будут немного разные.
Последовательный кеш мы писали для другой не менее частной задачи:
У нас есть приложение, которое весьма похоже на мемкеш — habrahabr.ru/company/wapstart/blog/146957/ Оно умеет отдавать характеристики запроса по переданным заголовкам. Грубо говоря может «собрать» географию, оператора по переданному Ip адресу и т.д.
Само собой характеристики запроса меняются крайне редко, поэтому мы сделали двухуровневое кеширование: локальный кеш -> удаленный кеш -> очередь -> СУБД.
А так Вы правы, в случае, если лежит всё, мы будем ждать по timeout секунд на каждый сервер. В нашем случае — 0.1. На самом деле сервера memcached падают крайне редко.
Гм, одно и тоже письмо можно помечать кучей ярлыков простым драг-н-дропом.
Можно сделать себе два ярлыка, например: «требуется ответ» и «требуется ответ, но не срочно» и всегд двумя движениями мыши добиться желаемого результата.
Добавлю про wildcard — они действуют только на домены, которые на один уровень выше, чем тот, на который был выдан сертификат, т.е. если вы покупаете wildcard на *.site.ru, то www.site.ru, admin.site.ru в браузере будут выглядеть нормально, но на www.admin.site.ru браузер уже выведет предупреждение.
Нужный формат при выводе можно получить используя toFormatString($format); — github.com/onPHP/onphp-framework/blob/master/core/Base/Date.class.php#L261
А что вы предложили? Перенести строковую константу из метода в свойство? Шило на мыло, не находите?
Т.к. переопределяется в наследнике.
тогда его тоже пришлось бы делать статичным, т.к. этот метод используется вне объекта.
А это противоречит логике.
Данный метод нужен для создания даты — github.com/onPHP/onphp-framework/blob/master/core/Base/Date.class.php#L75
Для ее импорта из примитивов или базы — github.com/onPHP/onphp-framework/blob/master/core/Base/Date.class.php#L302
И для toString() по-умолчанию — github.com/onPHP/onphp-framework/blob/master/core/Base/Date.class.php#L256
Не смотря на то, что этот код писал не я, мне понятно почему реализовано именно так. Да, возможно, реализацию можно сделать лучше, но текущий вариант вполне работоспособен.
Это от слова «дичь»? )
Сейчас сбор характеристик запроса и подходящих баннеров у нас не является узким местом.
Когда-то были проблемы с производительностью этого источника, мы его переписали, производительность нас удовлетворила, и мы успокоились.
Другими словами, у нас задача не в том, чтобы отдать контент максимально быстро, а в том, чтобы отдать контент не медленнее, чем за N миллисекунд. И мы не занимаемся оптимизацией пока укладываемся в эти N.
mc_dir, в чем претензия к данному коду? Да static, да protected, и да — описывает формат. Если внимательно почитать код, то можно понять почему сделано именно так. Мы не принуждает использовать наш фреймворк. Кстати, мы его не продаем. ;)
Если он вам не по душе, просто не обращайте на него внимания. Если хотите улучшить — код открыт, патчи приветствуются. )
vaevictus Мы ищем ведущего разработчика не для того, чтобы переписать класс Timestamp, у нас и без этого хватает работы ;)
OnPHP — это фреймворк, который используется для вполне утилитарных задач. Вряд ли кто-то будет писать туда код «чтобы было». В последнее время код пишется под конкретную задачу. То же самое касается правок — если старый код никто не исправляет, значит он работает.
Последовательный кеш мы писали для другой не менее частной задачи:
У нас есть приложение, которое весьма похоже на мемкеш — habrahabr.ru/company/wapstart/blog/146957/ Оно умеет отдавать характеристики запроса по переданным заголовкам. Грубо говоря может «собрать» географию, оператора по переданному Ip адресу и т.д.
Само собой характеристики запроса меняются крайне редко, поэтому мы сделали двухуровневое кеширование: локальный кеш -> удаленный кеш -> очередь -> СУБД.
Пруф — svn.php.net/viewvc/pecl/memcache/tags/RELEASE_3_0_5/memcache.c?revision=303968&view=markup (строка 1104 и далее). Соответственно можно задать таймаут меньше одной секунды, чем мы и пользуемся. :)
А так Вы правы, в случае, если лежит всё, мы будем ждать по timeout секунд на каждый сервер. В нашем случае — 0.1. На самом деле сервера memcached падают крайне редко.
ps. К слову, в trunk у параметра уже стоит Int.
Слайд с презентации яндекса.
Можно сделать себе два ярлыка, например: «требуется ответ» и «требуется ответ, но не срочно» и всегд двумя движениями мыши добиться желаемого результата.
2. pinba не профайлер mysql
dixi
Он всего лишь хранит данные в чем-то похожем на mysql, но ни как не профайлит mysql, как вам могло показаться.
Pinba — это не профайлер sql запрсоов, как вам показалось.
Я бы купил десяток.
Нна фото видно много пространства под открытым небом и тонких стен. Зимой это будет отапливаться?