Компания EnterpriseDB намерена приблизить свой диалект, реляционную СУБД PostgreSQL с открытым кодом, к миру NoSQL и добавить туда функции автоматического сегментирования (autosharding).
Выступая на конференции NoSQL Now, проходившей в Сан-Хосе, главный архитектор баз данных EnterpriseDB Брюс Момджан рассказал о планах компании в отношении своей СУБД. «В ближайшие год-два мы намерены реализовать там функции автоматического сегментирования, благодаря которым десятки серверов Postgres будут работать унифицированным образом, разделяя друг с другом транзакции и рабочую нагрузку, – сообщил он. – Таким образом, Postgres сможет справляться с нагрузками, которые ранее были под силу только продуктам NoSQL, поддерживающим многоузловые конфигурации. В настоящее время соответствующие возможности Postgres ограничены».
Затем Момджан более подробно остановился на намерениях EnterpriseDB, указав, что поддержка Postgres больших наборов данных приобретает все большую актуальность. «Мы подошли к той черте, за которой избежать роста нагрузки уже не удастся, – подчеркнул он. – Решать этот вопрос сообщество собирается за счет автоматического сегментирования. Один центральный сервер Postgres будет принимать запросы, определять, какие сегменты лучше подходят для их обработки, и перенаправлять запросы туда. В настоящее время EnterpriseDB и NTT совместно работают над решением этой задачи».
Возможность автоматического сегментирования - уже не первое движение Postgres в сторону NoSQL. В 2012 году в СУБД были добавлены функции для работы с типом JSON, а в прошлом году программное обеспечение Postgres Extended Datatype Developer Kit позволило разработчикам использовать PostgreSQL в приложениях, которым ранее требовались только решения NoSQL.
Момджан отводит Postgres на предприятиях роль центрального брокера данных. Трудно сказать, сможет ли Postgres сравниться по скорости с системой Apache Cassandra, объединяющей 100 узлов, но по функционалу СУБД, предлагаемая EnterpriseDB, явно превосходит Cassandra. «Здесь как всегда приходится искать определенные компромиссы, – пояснил Момджан. – Какая нужна производительность, какой функционал и какое решение лучше всего подходит в данном конкретном случае?»
Поддержка внешних источников данных позволяет, оставив данные в Cassandra, обращаться к ним из Postgres, получая преимущества реляционных СУБД и аналитических средств. Postgres поддерживает и другие внешние источники данных, включая Oracle, MySQL и MongoDB.