Как стать автором
Обновить
2
0
userID = '11855' @bvasya

Пользователь

Отправить сообщение

MemcacheDB и MemcacheQ — ключевые компоненты высокопроизводительной инфраструктуры

Время на прочтение5 мин
Количество просмотров7.5K
Cегодня мы поговорим о компонентах для высокопроизводительной и масштабируемой архитектуре на основе сервера memcached, а именно — распределённой базе для хранения данных MemcacheDB и системы очередей сообщений MemcacheQ.



Сначала рассмотрим, а что у нас есть в распоряжении для создания распределённой инфраструктуры хранения данных для веб-приложения. Ну, первое, что приходит в голову — кластеризация базы данных, это теперь поддерживается во всех распространённых системах, а также различные технологии репликации. Например, самая популярная СУБД для веб-проектов, MySQL поддерживает как репликации так и кластеризацию. Ещё можно обратится к традиционным файловым система и хранить данные в файловой системе, к примеру, Apache Hadoop. Но часто это слишком высокоуровневое решение, обычно же требуется гораздо проще варианты — когда нужно хранить и оперировать просто парами ключ-значение. Если серьёзно посмотреть, такая функциональность позволит покрыть потребности 90% веб-приложений. А если мы прибавим к этому возможность очень и очень быстро оперировать данными, хранить их в виде распределённой многосерверной системе и возможность постоянного хранения, устойчивого к сбоям — получим очень привлекательную платформу.

Читать дальше →
Всего голосов 50: ↑50 и ↓0+50
Комментарии23

MySQL Query Cache

Время на прочтение5 мин
Количество просмотров110K
В MySQL есть очень полезная функциональность — кеш запросов. Кеш запросов доступен в MySQL начиная с версии 4.0.
Многие СУБД имеют подобную функциональность, но в отличие от MySQL они кешируют планы выполнения запросов, тогда как MySQL кеширует результаты запросов.
Дальше о том, как работает кеш запросов, как его настраивать и оптимально использовать.
Читать дальше →
Всего голосов 70: ↑67 и ↓3+64
Комментарии60

Исходный код Habrahabr доступен и распространяется под GPL2?

Время на прочтение1 мин
Количество просмотров707
Конечно, прямых свидетельств нет и наверное не будет, но есть множество косвенных признаков подтверждающих теорию о том, что код Хабра основан на Open Social Networks Constructor, открытом проекте распространяемым под лицензией GPL2.
Читать дальше →
Всего голосов 98: ↑72 и ↓26+46
Комментарии55

AdMe.ru: Тэги, полнотекстовый поиск и всё такое…

Время на прочтение9 мин
Количество просмотров7.5K
В этой статье я открою секреты того, как работает adme.ru, а именно я расскажу о том как устроено хранение статей и тэгов, как работает полнотекстовый поиск, поиск по тэгам и всё такое…

В статье приведён пример структуры таблиц, рабочий конфиг Sphinx и немного php кода с примерами выборок.
Читать дальше →
Всего голосов 71: ↑64 и ↓7+57
Комментарии32

Плавный переезд

Время на прочтение3 мин
Количество просмотров10K
После того, как мне попались на глаза рассказы о переезде информационной инфраструктуры компании с места на место, я подумал, что переезд среднего контентного интернет-проекта с одной площадки на другую — тоже довольно интересная тема. Особенно интересно то, как сделать это с минимальными перебоями в работе.

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

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

Рассказ рассчитан на подготовленную аудиторию и не является точным пошаговым руководством к действию.

Читать дальше →
Всего голосов 76: ↑73 и ↓3+70
Комментарии34

Баланс

Время на прочтение7 мин
Количество просмотров981
До недавних пор база данных нашего ресурса обслуживалась на пару двумя серверами: Bonnie и Clyde. Clyde — основной сервер проекта, отвечающий на все запросы, Bonnie — сервер, поддерживающий базы других проектов и слейв-клиент базы суперхабра.

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

Учитывая постоянно растущий объём данных и нагрузку, настала пора предпринять шаг в сторону масштабирования аппаратных ресурсов базы данных.

что из этого вышло
Всего голосов 96: ↑85 и ↓11+74
Комментарии57

Таблица значений отступов от букв до верха и низа строки

Время на прочтение1 мин
Количество просмотров1.5K
Предлагаю вашему вниманию таблицу значений отступов от букв до верха и низа строки, для стандартного значения line-height.
Эта таблица нужна для точного определения padding или margin обрамляющего или близлежащих элементов.

Вот картинка-легенда, чтобы было понятно о чем речь:
легенда
Читать дальше →
Всего голосов 56: ↑47 и ↓9+38
Комментарии47

Веб-приложение, одна маленькая особенность верстки

Время на прочтение3 мин
Количество просмотров3K
В качестве примера, иллюстрирующего поставленную задачу, могу привести вот этот топик: Миниатюрное приложение-калькулятор. Особенность, которую должен учесть верстальщик, заключается в следующем: окно с приложением обычно не растянуто на весь экран (зачем, например, разворачивать на весь экран калькулятор или софтфон?), но при этом размер окна может меняться пользователем, причём меняться очень даже произвольно, вплоть до полного экрана.

Итак, возникла производственная задача: необходимо расположить на страничке шапку фиксированной высоты, а всё остальное место заполнить контейнером с возможностью появления полосы прокрутки в случае большого количества контента в нём. Т.е. должна прокручиваться не страничка, а див (а-ля аська, в шапке кнопочки, в контейнере контакт-лист). Казалось бы, задача тривиальная, решается с кандачка (у дива высота 100% и каким-то образом вычесть из неё фиксированную высоту шапки). Ан нет, час битья лбом о клавиатуру ничего не принёс.
Читать дальше →
Всего голосов 44: ↑35 и ↓9+26
Комментарии55

MySQL Performance real life Tips and Tricks. Part 3-rd.

Время на прочтение14 мин
Количество просмотров23K
Решил продолжить цикл заметок по данной тематике. В данной статье особое место хотел уделить профайлингу MySQL запросов. Описать средства, которые предоставляются MySQL для профайлинга, и что нужно делать для определения узких мест запроса.

Также, после опубликования первых двух статей я получил пару отзывов и вопросов, связанных с проектированием БД / расстановкой индексов / составлением запросов. На многие вопросы старался отвечать. С некоторыми из них поделюсь и в этой статье.

Читать дальше →
Всего голосов 56: ↑54 и ↓2+52
Комментарии40

Пишем свой первый скрипт для Greasemonkey

Время на прочтение3 мин
Количество просмотров42K
Greasemonkey — это расширение для Mozilla Firefox, и некоторых других браузеров на основе движка Gecko, которое позволяет пользователю добавлять JavaScript на любую страницу. Сам файл с JS должен быть оформлен соответствующим образом.

Для чего же пользователю, к примеру мне, или вам, нужно добавлять JS на страницы любых сайтов? Это чудесная возможность управлять внешним видом страницы и её функционалом. Естественно есть ограничения, которые накладывает сам язык JS. Однако и возможностей у него очень и очень много.

Как правило, большинство скриптов для Greasemonkey тесно «дружат» с CSS. Так что получается, этот пост несколько пересекается с темой User-CSS — однако я в название топика не стал выносить этот аспект.

Давайте же напишем пару очень простых скриптов для Greasemonkey, ну а жертвой для наших опытов возьмём, само собой, habrahabr.
Читать дальше →
Всего голосов 29: ↑21 и ↓8+13
Комментарии17

HabraFx на взлёт

Время на прочтение2 мин
Количество просмотров601
Приветствую, Хабражители!
HabraFx
Пока некоторые на Хабрахабре рассуждают о будущем ресурса, мы пытаемся облегчить, в некотором роде, жизнь хабралюдям. В этих целях мною было создано расширение под названием HabraFx, с помощью которого пользователи браузера Firefox 3 смогут получить некоторые дополнительные возможности по работе с Хабрахабром.

Что это такое?
Всего голосов 291: ↑257 и ↓34+223
Комментарии204

Онлайн генератор Paper Critters

Время на прочтение1 мин
Количество просмотров1.5K
paper.jpg
С помощью генератора Paper Critters можно свободно оформить свою бумажную игрушку, а затем скачать для распечатки. Кроме того, есть огромная галерея уже оформленных человечков. Также есть очень удобный 3D просмотр.
Всего голосов 29: ↑20 и ↓9+11
Комментарии7

Использование связки из PHP и MySQL совместно с Google Maps

Время на прочтение13 мин
Количество просмотров17K

Отсебятина


А вот и перевод третьего урока по Google Maps API. Этот урок — как видно из названия — посвящен созданию карт при помощи данных, хранящихся в БД. Как и предыдущие — кросс-пост из моего блога.

Читать дальше →
Всего голосов 53: ↑44 и ↓9+35
Комментарии23

jQuery для начинающих

Время на прочтение9 мин
Количество просмотров504K
jQuery Logo

jQuery — это замечательный JavaScript Framework, который подкупает своей простотой в понимании и удобством в использовании. Но изучение надо с чего-то начинать, и лично моё мнение — лучше всего начинать с наглядных примеров, и они далее…

Читать дальше →
Всего голосов 251: ↑230 и ↓21+209
Комментарии83

Codeigniter with PEAR

Время на прочтение3 мин
Количество просмотров1.8K

В этой статье я расскажу как подключить библиотеки PEAR в Фреймворк Codeigniter. Если PEAR установлен в системе по умолчанию и у вас есть доступ для инсталляции отдельных библиотек, то все просто. Иначе приходится подключать все ручками. Сразу приведу ссылку на источник: codeigniter.com/wiki/PEAR_integration. Ниже я перевел это руководство, в код добавил некоторые, по моему мнению, исправления.
Читать дальше →
Всего голосов 16: ↑15 и ↓1+14
Комментарии18

Триггеры в MySQL

Время на прочтение2 мин
Количество просмотров296K
Триггер — это хранимая процедура, которая не вызывается непосредственно, а исполняется при наступлении определенного события ( вставка, удаление, обновление строки ).
Поддержка триггеров в MySQL началась с версии 5.0.2
Читать дальше →
Всего голосов 54: ↑50 и ↓4+46
Комментарии49

Использование Nginx и php для проверки прав доступа перед отдачей файлов

Время на прочтение2 мин
Количество просмотров13K
Иногда на сайте возникает необходимость ограничить доступ к некоторым файлам по разным причинам(раздавать файлы только авторизованным пользователям, антилич и так далее). Для решения данной задачи можно использовать разные подходы:

  1. Раздавать файлы с помощью скрипта на php(заменить php на то, что нравится больше). При данном подходе мы передаем в качестве параметра скрипту имя файла. Код проверяет все условия, при которых возможно получения доступа к данному файлу и принимает решение, выдать 404 или запрошенный файл. Данный подход подходит для мелких файлов, однако при возрастании размера отдаваемого файла он будет потреблять много системных ресурсов, т.к. файл будет вычитываться в память и затем отдаваться.
  2. Использовать некоторые неочевидные возможности веб-серверов.

Читать дальше →
Всего голосов 26: ↑23 и ↓3+20
Комментарии12

ГеоКонтакт – смотрим кто где

Время на прочтение3 мин
Количество просмотров4.3K
Мы часто желаем знать – где находятся другие люди. Так, собираясь на встречу, друзья хотят узнать, кто уже на месте, а кто еще дома или в пути. Родители желают знать, где сейчас их дети, вернулись ли они уже из школы. В организациях желают знать, где их сотрудники и где отправленный груз. ГеоКонтакт – это новый сервис, который ответит на вопрос «Где?».
Читать дальше →
Всего голосов 14: ↑9 и ↓5+4
Комментарии19

Типы данных в MySQL (сжатый справочник для PHP программиста)

Время на прочтение5 мин
Количество просмотров103K
Что и как и как много хранит MySQL?

Данный материал создан специально для программистов, которые быстро смогут определиться какой тип данных лучше выбрать для хранения значений в БД MySQL.

Для затравки, интересная цитата из мануала по MySQL:
«Максимальный размер записи в MyISAM составляет 65534 байтов. Каждый BLOB или TEXT-столбец засчитывается здесь как 5-9 байтов.» — как это трактовать однозначно не понятно. НО ясно что много-примного столбцов в таблицу на засунешь. «Извращенистые программисты» — будьте аккуратны (66000 столбцов вы точно создать не сможете).

UPD: Если найдете ошибку, или я что-то где-то утаил — отпишитесь в комментах, с удовольствием добавлю.

UPD1 В первую очередь (и самый лучший вариант для новичков) прочитать ОФИЦИАЛЬНЫЙ МАНУАЛ dev.mysql.com/doc/refman/5.0/en/data-types.html (спасибо Psyh за прямую ссылку), а здесь вырезка для META обработчиков данных (как в лице программистов так и в лице машинной обработки).

UPD2 В принципе, все что написано ниже, можно прочитать по адресу www.mysql.ru/docs/man/Column_types.html (за ссылку «русского перевода», спасибо artuska).

UPD3 Еще одну неплохую ссылку предоставил 4all: newcontinent.ru/h/mysqlc (материал на русском)

UPD4 Цитата из комментов от egorF:
# 14«Как главный редактор русскоязычного перевода доки на MySQL, я рекомендую в него не заглядывать — он уже сказочно морально устарел.»

Читать дальше →
Всего голосов 86: ↑62 и ↓24+38
Комментарии38

Проект за 7 дней

Время на прочтение1 мин
Количество просмотров1.5K
Мы работаем над одним проектом вот уже больше 2-х лет. Он занимает все рабочее и свободное время. И вот мы на финишной прямой и у нас все готово, но… подвел нас один поставщик (очень большая и медленная компания) последнего аппаратного модуля, без которого никуда. Ожидается готовность только в сентябре, октябре. В связи с этим появилось немного свободного времени. Где-то неделя.

И мы решили вытащить с дальней пыльной полки хорошую идею, на которую раньше просто не было времени.
Читать дальше →
Всего голосов 105: ↑93 и ↓12+81
Комментарии152

Информация

В рейтинге
Не участвует
Откуда
Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность