Jsonb в PostgreSQL и NoSQL тренд: сравнение функциональности и производительности
Использование слабоструктурированных данных определенно является трендом современности, и это верно не только для NoSQL, но и для традиционных RDBMS. Многие реляционные базы данные (например, PostgreSQL, Oracle, db2, Mysql) позволяют хранить данные в json формате, и, очевидно, реализуют это по-разному.
Доклад содержит две части:
- Сравнение поддержки json в PostgreSQL и других реляционных базах данных, а именно Mysql, Oracle, db2, MSSql в контексте реализованных возможностей, функций и т.д.
- Сравнение производительности для баз с наиболее полной поддержкой json (PostgreSQL и Mysql) а также MongoDB на различных видах нагрузок и конфигураций.
Слайды
Видео
Другие доклады
-
Kevin Grittner EnterpriseDB
Всё об изоляции транзакций в PostgreSQL для разработчиков приложений
Когда множество пользователей, процессов или потоков выполнения одновременно модифицируют их общие данные, это может вызывать проблемы, если каким-то образом не урегулировать условия гонки. Эти проблемы особенно остро проявляются в базах данных, реализующих семантику ACID. Набор изменений, объединённых в транзакцию базы данных, должен проявляться атомарно, и для параллельных транзакций, и для процесса восстановления после сбоя. Каждая транзакция должна переводить базу данных из одного согласованного состояния (с точки зрения бизнес-правил) в другое. Для эффективной разработки необходимо иметь возможность запрограммировать каждую транзакцию независимо от других транзакций, которые по стечению обстоятельств могут выполняться в то же самое время. В случае сбоя все изменения, внесённые транзакциями, об успешном завершении которых были уведомлены приложения, а также все изменения, ставшие видимыми для других транзакций, должны оставаться в базе после восстановления. За многие годы были выработаны различные стратегии обеспечения этих гарантий, а иногда гарантии корректировались тем или иным способом. В данном докладе будет рассказано, каким образом обеспечиваются эти гарантии или их компромиссные варианты, с упором на методику сериализуемой изоляции снимков (SSI, Serializable Snapshot Isolation), применяемую в PostgreSQL (и ни в какой другой производственной СУБД на данный момент). Хотя SSI уже работает быстрее и с большей степенью параллельности, чем любая другая методика управления условиями гонки с наиболее типичной нагрузкой, есть много путей для дальнейшего увеличения производительности, некоторые из которых требуют помощи эксперта по различным методам доступа индексов; эти вопросы и будут обсуждены в данном докладе. Кроме того, на докладе будут представлены некоторые общие идеи о том, как можно использовать методики SSI с XTM в распределённой системе. В конце мы оставили время для группового обсуждения оптимизации и возможных применений в распределённой среде.
-
Борис Верюгин ООО "Диасофт Платформа" Руководитель управления развития
Автоматизированная миграция приложений с проприетарных СУБД на PostgreSQL
В докладе будут представлены технические решения компании "Диасофт Платформа" по миграции приложений с проприетарных СУБД (на примерах Oracle и Microsoft SQL Server) на PostgreSQL. Эти решения реализует программный продукт "Diasoft Database Adapter".
Разработанные нами технические решения позволяют автоматизировать: 1) миграцию схемы БД (включая трансляцию кода хранимых процудур и функций); 2) миграцию данных; 3) миграцию приложений-клиентов СУБД без какого-либо изменения их кода.
-
Олег Иванов Postgres Professional Разработчик
Применение методов машинного обучения для улучшения планировщика
В докладе будет рассказано о существующем планировщике PostgreSQL, о возможностях его улучшения с помощью методов машинного обучения и о полученных в этой области результатах.
-
Евгений Сергеев
Lua в Postgres(из alpha в beta)
В докладе хотел бы рассказать про возможности использования языка луа в постгресе, способы расширения функциональности при помощи готовых модулей, возможности удаленной отладки, про проделанные изменения с версии 1.0, отличия в стиле написания кода plpgsql и pllua при использовании функций как аргументов. Так же можно рассказать про некоторые спорные моменты, такие как расширение поддерживаемых типов данных в этом языке. Если интересна другая сторона, то могу поделиться опытом доработки фунциональности скриптового языка в постгресе.