Curriculum vitae
Print this page for a paper copy.
A shorter, one-page version is available as a PDF.
Experience
pgEdgeSep 2025 — present
Active-active logical replication across PostgreSQL clusters. Led the architectural redesign of the Spock extension, removing its dependencies on patches to core Postgres.
Postgres ProfessionalDec 2017 — Sep 2025
Principal Software Engineer, Head of the Query Optimization Lab
Led query optimizer development — SwitchJoin, built-in re-optimization, shuffle join, distributed query optimization — and implemented the re-optimization feature for the enterprise fork. Contributed optimization features and patch reviews to PostgreSQL core, reviewed the lab's code, spoke at conferences on query optimization, and kept a technical blog.
PostgreSQL Core Developer, Tech Lead
Architect of Shardman, a distributed database system built on PostgreSQL: proposed and prototyped substantially all of the query optimization and distributed execution features it runs on today. Designed the query plan freezing extension (sr_plan). Began the self-join elimination and GROUP BY reordering work that later landed in PostgreSQL 18 and 17.
PostgreSQL Core Developer
Developed the Multimaster extension and implemented parallel recovery; maintained the Adaptive Query Optimizer. First core contributions landed in PostgreSQL 12: less write-ahead log during GiST, GIN and SP-GiST index builds.
Academician V.P. Makeyev State Rocket CentreMar 2010 — Mar 2018
Team lead for CAE modeling of supersonic and hypersonic flows around re-entry vehicles and upper spacecraft stages; computation of heat loads and thermal design of shielding systems; design and implementation of mathematical models of high-enthalpy flows. Tooling: ANSYS Fluent with user-defined functions, FlowVision, the Monte-Carlo code SMILE, ANSYS Mechanical and Mechanical APDL, plus purpose-built thermal analysis programs.
South Ural State UniversityJul 2005 — May 2012
Visiting Lecturer
Gas dynamic analysis; parallel computation in CAE software.
Associate Professor
Research on parallel methods for database systems and C/C++/Java systems programming. Taught software engineering, parallel methods for database systems, technical aspects of IT law, and geoinformation systems in a database context.
Open source
The planner and executor work below is my own, and runs across employers rather than belonging to any one of them: the salaried subject is replication, the contributor subject has been query optimization since 2017. Upstream history credits me as author on 43 commits and as reviewer on 67, across PostgreSQL 12 to 19.
In PostgreSQL core
- Self-Join Elimination (PostgreSQL 18) — Drop a self-join from the query tree when a single scan provably returns the same rows. Committed for 17, reverted, redesigned and committed again for 18; the RowMark and placeholder edge cases that caused the revert are fixed in the version that shipped.
- OR-clause to array transformation (PostgreSQL 18) — Turn a long chain of OR'd equality tests into a single ScalarArrayOpExpr, so the planner can match it to an index or a bitmap path instead of walking the chain. Also reverted once before landing.
- GROUP BY key reordering (PostgreSQL 17) — The optimizer is free to choose the order of grouping columns; ordering them to cut comparison work is now a costed choice, controlled by enable_group_by_reordering.
- Extended statistics for hash join bucket size (PostgreSQL 18) — Use multivariate statistics to estimate hash join bucket size, instead of assuming independence between the hash keys.
- Tuple-bound propagation through Append (PostgreSQL 18) — Teach Append to take the query's tuple fraction into account when accumulating subpaths, so a LIMIT above a partitioned scan is not planned as though every partition would be read in full.
- PG_MODULE_MAGIC_EXT (PostgreSQL 18) — An extension can now declare its name and version in the module magic block, so the server knows what it loaded rather than inferring it.
- WAL volume reduction in index builds (PostgreSQL 12) — Generate less write-ahead log while building GiST, GIN and SP-GiST indexes, and drop an unnecessary copy when reading a WAL record that fits on one page.
Open upstream
5 patches in the PostgreSQL commitfest and one more on the mailing list, neither landed nor rejected — listed with their status here.
Extensions of my own
- pg_track_optimizer (open source) — finds queries the planner got wrong, before they become an incident danolivo/pg_track_optimizer
- pg_middleout (early stage) — a top-down planning pass that memoizes correlated subplans danolivo/pg_middleout
- pg_index_stats (open source) — derives extended statistics automatically from the indexes you already have danolivo/pg_index_stats
Education
Ph.D. in Computer Science (distributed databases)2005–2009
Thesis: query processing methods in database management systems for multiprocessor systems with a hierarchical architecture. Supervisor: Prof. L.B. Sokolinsky.
M.S. in Computer Science2000–2005
Selected publications
2010
- Query Processing in a DBMS for Cluster Systems. Programming and Computer Software, 2010, Vol. 36, No. 4, pp. 205–215.pdfdoi
2008
- Использование метода частичного зеркалирования при балансировке загрузки в параллельных СУБД для кластерных систем. Вестник ЮУрГУ, серия «Математическое моделирование и программирование», 2008, № 27 (127), вып. 2, С. 57–62 (in Russian).pdf
- Модель вариантов использования параллельной системы управления базами данных для грид. Вестник ЮУрГУ, серия «Математическое моделирование и программирование», 2008, № 15 (115), вып. 1, С. 42–53 (in Russian).pdf
2007
- Technologies of parallel database systems for hierarchical multiprocessor environments. Automation and Remote Control, 2007, No. 5, pp. 112–125.pdf
- Технологии параллельных систем баз данных для иерархических многопроцессорных сред. Автоматика и телемеханика, 2007, № 5, С. 112–125 (in Russian).pdf
Complete list on the publications page — 34 entries in total, plus 3 registered software programs and 5 grants and awards.
Talks
9 conference and meetup talks between 2019 and 2026 — see the talks page.
Core competencies
- Languages: C/C++, SQL, Perl, Python, LaTeX
- Expertise: relational databases, PostgreSQL internals, query optimization, performance tuning, scalability, mentoring and code review
- Tools and platforms: PostgreSQL, MySQL, MS SQL Server, Citus, GitHub Actions, Linux, bash, gdb, perf, git
Certifications
- 2023 — Verified International Academic Qualifications, World Education Services
- 2022 — IELTS General Training, overall band score 7, British Council
- 2014 — Hypersonics: from shock waves to scramjets, edX honor code certificate