Graphite вполне неплохая система, но в ней нет функционала «проинкрементить данные» ;-/
Поданные на вход данные заменяют те что есть в data-point, получается, чтобы проинкрементить, мне нужно достать сначала старое значение, и потом записать новое, для многопоточного обновления ещё и блокировку держать…
Дело, конечно, полностью Ваше, но стороння прошивка имеет немало других плюсов, помимо собственно наличия поддержки openvpn. В частности, Вы сможете подобрать железо конкретно под Ваши нужды, т.е. достаточно быстрый проц для быстрого шифрования, память и USB для торрент клиента, хороший радиочип и нужное кол-во антенн… Также, возможно после настройки openvpn Вам возможно захочется добавить несколько роутов или просто поковыряться через ssh, или поставить ещё несколько софтин…
Кардинальная смена прошивки вовсе не так страшна, как может показаться ) Да и в большинстве случаев можно восстановить оригинальную заводскую.
Один из заслуживающих внимания подходов, но есть несколько ньюансов.
1. Требуется сброс данных из буферов в файловую систему (FLUSH TABLES)
2. Для целосности требуется удерживать блокировку на запись на время сброса буферов и создание снепшота (FLUSH TABLES WITH READ LOCK)
3. При большой активности и загрузке диска время, потраченное на обе операции (сброс + снепшот) может быть весьма большим, порядка минут.
4. Для уменьшения этого времени стоит сделать предварительные сбросы буферов mysql и FS, без блокировки, сделав просто FLUSH TABLES и создав после этого снепшот и удалив его. После этого полное создание бекапа со снепшотом пройдет быстрее.
5. Даже с блокировкой снепшот получится «грязный». Во первых, mysql запустит его проверку, это займет время при восстановлении, во вторых, у меня на innodb были случаи, что на горячих снепшотах рассинхронизировалась впоследствии репликация. На снепшотах после остановки mysqld проблем с репликацией не было.
Ну как самый дубовый вариант — триггер на удаление оставить, но игнорировать удаляемые строки, которые имеют старый create_date, т.е. те строки которые удаляются для того, чтобы не замусоривать основную таблицу (архивируются).
Уточню.
Если выставить меньшее значение — при пиковой загрузке cpu будет простаивать, некому его будет нагрузить.
Если большее — при пиковой загрузке возникнет конкуренция за cpu, и воркер, вместо того чтобы доработать и закончить запрос, будет прерван, и вернется к работе после паузы — соотв возрастет среднее время выполнения запроса.
Действительно, лишний перенос строки создал впечатление что просто опущена конструкция «FROM `doctors`WHERE»…
Тем не менее, рассуждения выше остаются в силе, наличие OR приведет к тому что будет сделаны 3 независимых выборки и результат будет объединен. Впрочем, в действительности все зависит от актуальных данных и сообразительности планировщика запроса.
А так первые две выборки индексируются независимо, и последняя (где AND) индексируется составным индексом, который также сработает и для одной из первых выборок (в зависимости от очередности полей в индексе). Так что надо все те же два индекса.
2) Выигрыш в том что это снижает дисковый io (немного нагружая проц трафиком на виртуальной сетевухе). Логи пишутся на диск в одном месте в одной фс, а не в куче разных вдс. Заодно их можно сжимать, а ещё использовать для логов отдельный диск.
3) В таком случае надо разобраться, логи ли генерят этот io. пару сот тысяч визитов в сутки это в среднем несколько запросов на скрипты в секунду, максимум несколько десятков, — это маленький поток логирования, он не должен создавать особых проблем.
В любом случае для ускорения io на запись рекомендую использовать хардварную raid карту с буффером на пару сот мег-гиг. Сам raid при этом конфигурить не обязательно, главное настроить кеширование записи на експортируемом юните.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.
Поданные на вход данные заменяют те что есть в data-point, получается, чтобы проинкрементить, мне нужно достать сначала старое значение, и потом записать новое, для многопоточного обновления ещё и блокировку держать…
Хотя все это мог бы делать и сам Graphite