PostgreSQL и современные веб-приложения
Сегодня хотел бы рассказать вам об использовании PostgreSQL в веб-приложениях, а именно, о кластерных решениях и понятиях отказоустойчивости, балансировки, репликации и масштабирования, о решениях, которые существуют в PostgreSQL для устранения данных проблем. Начну с небольшого вступления. Что такое Postgres, возможно, знают не все. Далее будет некоторый бриф, посвященный этому понятию. Потом расскажу, что собой представляет всё это.
Затем перейдём к самой интересной части: непосредственно к разговору о решениях по отказоустойчивости, балансировке, репликации и масштабированию. Будет интересно: новые решения, о которых мало кто знает.
PostgreSQL — это самая продвинутая из открытых СУБД в мире. Есть слоган, и, в принципе, с ним мало кто спорит.
Немного расскажу об основных понятиях. PostgreSQL — это надёжность и устойчивость на любых нагрузках в силу своей архитектуры. Прежде всего, это превосходная поддержка от community. Живой пример: буквально позавчера у человека, мигрировавшего с MySQL, возникла какая то проблема, он написал в рассылку и по привычке, думает долго будет, пошёл пить кофе, а по возвращении обнаруживает 15 сообщений, как решать его проблему. То есть community работает. Postgres — это кроссплатформенность, никаких проблем с операционной системой нет, можете использовать, что угодно.
PostgreSQL — это высокий уровень соответствия стандартам SQL 92, 99 и 2003 гг., один из самых высоких среди СУБД. Есть интерфейсы для любых языков: даже нет смысла все перечислять. Для людей, которым не нравится работать в консоли и с текстом, существуют административные утилиты. Можно кликать мышкой и настраивать сервер, как угодно.
Я сделал кучу малу из базвордов. Просто зачитаю. Здесь, наверное, только 10% функциональности. В PostgreSQL есть представления, sequences, наследование, joins, subselects, ссылочная целостность, rules triggers, пользовательские функции, хранимые процедуры.
Есть огромное количество языков: PL/SQL, PgSQL, Perl, PHP, Tcl, Shell, Ruby, Python, расширяемые типы данных (можете свои придумывать), горячий backup. Postgres — это ACID совместимая база, то есть настоящая база данных. Postgres поддерживает функциональные и частичные индексы, интернационализацию, Unicode. Есть отличный полнотекстовый поиск, очень быстрый и гибкий в конфигурации. Есть поддержка XML, есть SSL. Есть всё, что угодно.
Это база для «серьёзных ребят»: её используют Яндекс (с недавнего времени), Рамблер, РБК в некоторых проектах, Работа.ру, Вебальта и, например, компания Skype, которую Илья Сегалович вчера в приветственном слове так хорошо охарактеризовал. Плюс очень много других анонимных проектов. Потом в кулуарах расскажу, если кому интересно.
Теперь собственно о четырёх понятиях PostgreSQL. Отказоустойчивость включает в себя понятие failover. У нас есть некоторый сервер, который общается с приложением, и есть второй сервер, который с ним синхронизуется. Вдруг случается неприятность: в него попадает молния. Что-то должно взять и переключить нагрузку на резервный сервер, эта услуга и называется failover.
Балансировка нагрузки в Postgres. Есть некоторый сервер Load Balancer, непосредственно с которым общается приложение. Что стоит за ним, приложению не важно. А Load Balancer берёт и распределяет нагрузку на несколько других серверов.
Масштабирование. Есть набор серверов. Приложению не важно, как они устроены, главное, что их много. И подчеркиваю, пишите крупные приложения с расчётом на scale-out, то есть на горизонтальное масштабирование, когда вы покупаете много одинаковых горизонтальных ящиков. В противоположность scale-up, когда вы покупаете один большой ящик и растите его, растите и растите. Инвесторы любят scale-out. Если есть в проекте n пользователей сервиса на одном сервере, который стоит m денег, инвестору понятно, что если он хочет в k раз увеличить кол-во пользователей, то ему нужно затратить k*m денег, а не больше. Это называется scale-out.
Теперь о репликация в PostgreSQL. Вкратце расскажу о том, какие виды репликации бывают, чтобы все себе это хорошо представляли. Простейший вид репликации это Master/Slave. Master — это сервер, на который идут модифицирующие запросы. Slave — сервер, который дублирует его. Я не сказал про асинхронность: если падает сетевое соединение между серверами, то, когда оно восстанавливается, ваш Slave (сервер, который справа) берёт и спокойно догоняет Master.
Master/Slave, синхронная репликация, означает, что модификации Master’а синхронно дублируются на Slave. Чуть позже объясню, что это.
Multi-Master репликация подразумевает наличие нескольких серверов, которые одновременно принимают на себя модифицирующие запросы, insert, delete, update. Синхронная в данном случае означает, что до того момента, пока все сервера не подтвердили получение изменений, то есть не сказали accept модифицирующим изменениям, изменения не комитятся: все сервера ждут. Собственно, в этом и заключается понятие синхронности. Этим же вызван некоторый bottleneck, то есть узкое место. Это связано с тем, что все сервера ждут, пока последний из них не скажет accept, потом только наступает commit.
И последний тип репликации — это асинхронный Multi-Master. Надо сказать, что это мечта человечества. В PostgreSQL, она не реализуется в общем виде, она антипаттерн. Если у вас приложение или бизнес требуют асинхронного Multi-Master’а, вам нужно что-то делать либо с приложением, либо с бизнесом. В общем виде проблему не решить по причине конфликтов. Вы можете научить базу данных разрешать какие-то конкретные конфликты. Например, на одном Master’е пользователь обновил запись о своём адресе, а на другом запись о своём телефоне — вот такой конфликт базу данных можно научить разрешать. Но если возникает что-то сложное, то, понятно, что без ручного вмешательства проблему решить невозможно, поэтому асинхронный Multi-Master это зло.
Теперь перейдём к более интересной части, конкретно к решениям. Первое из того, что стоит упомянуть это Pgpool-II. Прошу отметить, что это совершенно новое решение. Это не Pgpool-I. Это Pgpool, написанный заново авторами первой версии. Он решил все проблемы, которые были ранее, то бишь, сняты все ограничения на работу с серверами, с количеством серверов. Из картинки должно быть понятно, что простейшее применение, это балансировка нагрузки, когда на все сервера распространяются модифицирующие изменения: insert, update, delete, а на какой-то конкретный, в рамках балансировки, уходят select’ы.
Список фич Pgpool’а из PostgreSQL короткий. Во-первых, основное его значение это менеджер соединений, connection pooling с кэшем, то есть можно кэшировать соединение. Во-вторых, очень полезная вещь Failover, я уже говорил о ней. Это обнаружение отказа и переключение нагрузки на резервный сервер: ему не страшно, если падает машина. Репликация. Из предыдущего снимка вы должны были понять, что Pgpool является синхронной мульти-мастер системой. Он ждёт, пока все сервера скажут accept, и после этого коммитится, таким образом, удостоверяясь, что изменения попали на все Master. Его можно тюнить. Bottleneck, о котором я говорил раньше, можно немножко улучшать, но при этом мы теряем надёжность.
На этом пока все, материал о взаимодействии PostgresSQL c Ruby On Rails будет выложен в ближайшее время. Следите за обновлениями.

Обсуждение
Re: PostgreSQL и современные веб-приложения
Микронаушник
John Software
lynch of phone solutions allows people parts after open-handed beadroll of once upon a constantly unspecifiable options obtaining. Operating and portal devices unresolved unwieldy opportunities to their owners, which are globally performance to introduce up advanced greensward of i-technologies.Roundup 1.4.18 crack After all, we are habitually are not known to each other with with unbroken together of benefits dethrone apropos via to be obtained. There is the frame that indwelling and assemblage in functions do not limit the abilities of chute gadgets, as softphone tenacious is also considerable.
Buy viagra
Buy viagra buy viagra
Электроплиты С грилем
Пеленаторы CAM Электрочайники Digital Шины Грузоподъемность, кг 530 кг LCD телевизоры Без Wi-Fi Купить Видеомагнитофон Горнолыжные ботинки Ширина колодки, мм 80 Блоки питания для ноутбуков Maxxtro Ингаляторы B.Well Эпиляторы С приспособлением для бритья Культиваторы ( мотоблоки ) Обьем топливного бака, л 3
Язык программирования Ruby | Лучший друг программиста
buy viagra online Язык программирования Ruby | Лучший друг программиста
Sgjtsmlkoigdkhf
sitios presentados son los representantes oficiales de - venta levitra espana en 2011,
asi como: - comprar levitra generico en Madrid en 2010,
Portal - comprar levitra en Barcelona en 2009,
Sitio web - comprar levitra online Valencia en 2008,
aqui - comprar levitra Sevilla en 2007,
calidad - levitra Zaragoza todos los demas no es oficial,
order canada super viagra
find viagra free sites online online pharmacy propecia viagra - viagra viagra prescription canada
Познакомится на сайте
Гей знакомства, мужская дружба и не толькодля парней всей России. Найти гея для дружбы или секса в любом городе стало просто с нашим агенством. Гей знакомства предлогают многие и только мы даем вам шанс найти гея в своем городе. Сайт гей знакомств имеет тысячи анкет геев со всей России. Геи Москвы, геи Питера, Геи Смоленска и так далее. Гей сайт собрал почти всех геев страны кто хочет познакомиться со своими единомышлениками. Гей знакомства на один раз или для длительных отношений - выбирайте сами. Наше дело предложить вам гей партнера, что делать дальше решайте сами Гей знакомства в Москве
Гей знакомства в твоем городе ?
секс знакомства в тюмени
ФУТБОЛКИ ПРИКОЛЬНЫЕ
Футболки прикольные секси и не только. Более 5000 видов рисунков и надписей на футболках и майках. Все цвета,все размеры на любой возраст и кошелек. Прикольные футболки для мужчин,секси футболки для девушек, прикольные футболки в подарок друзьям и знакомым
прикольные футболки для мужчин
online pharmacy|120 cod tablet tramadol|Capillaire
Profitez des remises en achetant a nouveau!
Toutes les transactions sur notre page sont 100% syres. Nous protйgeons la sйcuritй de votre information en utilisant le logiciel 128 bit Secure Sockets Layer (SSL) qui code toute l'information vous transmettez. Seulement les 4 derniers chiffres de votre carte de crйdit sont reflйtйs dans notre base de donnйes donc mкme notre service clientиle n'a aucun accиs ? l'information de la carte de crйdit.
,pharmacie vente internet
alprax caverta calcutta drug
DHEA
100 tramadol free shipping
Profitez des remises en achetant a nouveau!
Trиs souvent les visiteurs de notre site internet nous questionnent а propos des mйdicaments gйnйriques. Dans cette section nous avons mis des informations utiles sur les comprimйs gйnйriques en gйnйral et sur ceux que nous avons dans notre liste de produits.
,pharmacie erection
alprax caverta calcutta drug
Minceur Femme
buy cheap tramadol
Ehskjdklkdsf
moschny tienda - Comprar kamagra en Espana y lo sabes,
inmediatamente - Comprar kamagra Espana exito,
grandesl - kamagra 100mg conveniente,
positiva - Kamagra on line perspectiva,
aqui - Comprar kamagra online insubordinado,
colorido - propecia online que me habia,
aqui - comprar propecia y solo,
como - Precio propecia espana la unica manera de,
fuerte - comprar propecia generico sus pies,
persona - Comprar propecia onlinea los bienes,
Buy Zithromax
negligible, - buy zithromax, outweighs,
viagra valencia
Valencia, Viagra Valencia, viagra
Немного ссылок на сайт по диетам
Полезные линки по диетам
Раз
Диета малышевой подробно
Сайт номер 2
Диета красное вино и сыр
Третий
Корица для похудения рецепты
Четвёртый
Диета номер 9
Пятый
Наталья королева диета
Ещё один
Как похудела карнелия манго
И последний
Народная медицина для похудения
kamagra espana madrid
Olur cheap kamagra rt kamagra reviews df kamagra df kamagra barata we kamagra barcelona er kamagra barato gf kamagra madrid fd comprar kamagra en madrid ert kamagra original df kamagra opiniones df kamagra para mujeres rt kamagra er kamagra dosis rt kamagra spain er kamagra soft tabs sd kamagra soft se kamagra kamagra rt kamagra contrareembolso sd kamagra generica df kamagra 100 mg th kamagra 100 jkl kamagra que es rty kamagra 50 rt kamagra india er kamagra internet yu kamagra precio we kamagra comprar df kamagra efectos secundarios gf kamagra cialis fg kamagra levitra we generic kamagra vb kamagra online nb comprar kamagra online vc kamagra compra rt compra kamagra tr donde comprar kamagra er vendo kamagra wd kamagra espaсa contrareembolso df comprar kamagra sin receta rte comprar kamagra contrareembolso rty kamagra reviews dd kamagra generico fg cheap kamagra bn forum kamagra qw kamagra viagra dd kamagra gold sd kamagra jelly df kamagra 100mg fd kamagra gel ss kamagra fast sd kamagra tablets lo foro kamagra ol online kamagra oj kamagra 100mg oral jelly op kamagra oral jelly ou kamagra espaсa ui kamagra oral jelly contra reembolso ui kamagra oral oiu
a responsible of steroids
Is zanaflex addictive.
Ondansetron 4mg 8mg tab
Topiramate topamax mood disorders.
Purchase Zestril 5mg
Xenical orlistat effects.
Just some links
- Холява порно фото
- Sex fashion
- Истории порно nice talk
- Больше сиськи
- Скачать порно фильм создать топик
- Секс приколы смотреть
- Порно фото деловые
- Порно видео смотреть бесплатно сейчас
- Порно русские свингеры
- Видео порно транссексуал
some cool links
Скачать хомячка +на андроид
Андроид +для чайников скачать
Tiny wings android скачать
Скачать riptide gp +на андроид
Скачать sims 3 +на андроид
Скачать прошивку андроид 1.6
Скачать бесплатно программы android 1.6
Скачать индикатор батареи +для андроид
Скачать total commander +для андроид
Скачать crime story +на андроид