Модель развития PostgreSQL как международного свободного продукта и сообщества (Иван Панченко, OSSDEVCONF-2019)
Материал из 0x1.tv
- Докладчик
- Иван Панченко
PostgreSQL является одним из наиболее успешных свободных проектов мирового масштаба. Он прошел путь от академической разработки до промышленной СУБД. Соответственно менялось и сообщество. Может ли PostgreSQL быть образцом для других? Как на развитие PostgreSQL влияет его лицензия? Мы проанализируем основные этапы истории развития PostgreSQL, как сообщества, так и продукта, и выделим положительно и отрицательно влияющие на их развитие факторы, и поймём, почему PostgreSQL именно такой.
Содержание
Видео
Презентация
Thesis
Postgres возник в 1986 году как научная разработка профессора университета в Беркли М.Стоунбрейкера. В своей знаменитой статье [1] он закладывает основные концепции этой СУБД, в том числе расширяемость и версионный механизм обеспечения транзакционных свойств (ACID). Postgres того времени сильно отличается от современного. Например, в нём не было поддержки языка SQL, который в то время уже существовал [2], но только готовился к стандартизации [3].
В Open Source Postgres вышел в 1995 году под именем Postgres95, затем в 1996 году в связи с появлением поддержки языка SQL установилось название PostgreSQL [4,5]. Сформировалось сообщество разработчиков, членом которого мог быть любой желающий, и любой из них имел доступ в CVS-репозиторий. Рост объема кода, количества коммитов и необходимость эффективной работы с многочисленными ветвями кода привели к переходу на GIT в 2010 году [6,7]. Возможность коммита в репозиторий получило ограниченное количество наиболее авторитетных разработчиков — коммитеров [8]. Это выражает рост требований к качеству кода, обусловленный применением PostgreSQL во всё более ответственных задачах.
PostgreSQL стал использоваться в крупном бизнесе примерно с 2000 года. Вначале это были интернет-компании (Rambler, Skype, и др).
Приблизительно в 2008 году начали говорить о том, что PostgreSQL повернулся лицом к промышленным заказчикам (Enterprise-сектору). Это связано с появлением потоковой репликации, дающей возможность организовывать отказоустойчивые кластеры, и с существенным улучшением поддержки Microsoft Windows.
В наше время PostgreSQL и его производные используются в крупнейших БД России и мира. Соответственно величине и серьезности пользователей PostgreSQL, стало меняться и сообщество разработчиков. В 2004 году была создана первая компания, специализирующаяся на обслуживании и развитии PostgreSQL — британская 2nd Quadrant. В последующем году была основана американская Enterprise DB. Сейчас в мире действует 4 основных центра разработки PostgreSQL, которые способны реализовывать крупные проекты. Таким образом, от сообщества гиков-индивидуалов основной вес переместился к сообществу сотрудников компаний, получающих деньги за свою работу. Компании более эффективно представляют интересы крупных заказчиков, и это стимулирует разработку функций, нужных таким заказчикам, дающих высокую производительность, отказоустойчивость, простоту администрирования, и т. д.
Важную роль в развитии PostgreSQL играет его лицензия [9], разрешающая создание производных, в т.ч. коммерческих, закрытых продуктов. Парадоксально, но это не приводит к утечке идей из Open source. Наоборот, из-за того, коммерческие производные продукты (форки) нуждаются в постоянном, неизбежно трудоёмком мёрдже изменений из ванильного PostgreSQL, их производители становятся заинтересованы и в обратном потоке изменений. Таким образом идеи и их реализации, апробированные компаниями в коммерческих форках, возвращаются в open source. Это формирует устойчивую ситуацию взаимовыгодного сотрудничества коммерческих компаний и open source сообщества. Эта ситуация может оказаться более долговечной, чем отдельные коммерческие компании или открытые продукты [10].
Примечания и ссылки
- [1] Stonebraker, M.; Rowe, L. A. (1986). The design of POSTGRES. ACM SIGMOD Record. 15 (2): 340. doi: https://en.wikipedia.org/wiki/Digital_object_identifier https://doi.org/10.1145/16856.16888.
- [2] Chamberlin, Donald (2012). Early History of SQL http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=6359709. IEEE Annals of the History of Computing. 34 (4): 78–82. doi:https://doi.org/10.1109/MAHC.2012.61
- [3] Database Language SQL/ANSI X3 135 (1986)
- [4] История PostgreSQL. https://postgrespro.ru/docs/postgresql/11/history
- [5] История PostgreSQL. https://www.2ndquadrant.com/en/postgresql/postgresql-story/
- [6] Postgres: Hello GIT, goodbye CVS. https://www.endpoint.com/blog/2010/01/28/postgres-hello-git-goodbye-cvs
- [7] Hagander, M. PostgreSQL — now on git. https://blog.hagander.net/postgresql-now-on-git-175/
- [8] Список коммитеров PostgreSQL https://wiki.postgresql.org/wiki/Committers
- [9] Лицензия PostgreSQL. https://www.postgresql.org/about/licence/
- [10] Momjian, B. Will PostgreSQL live forever? http://momjian.us/main/writings/pgsql/forever.pdf
- Discuss on Facebook
- Discuss on VK
Plays:122 Comments:0