C++Now 2018: Roman Siromakha “Design And Implementation Of DBMS Asynchronous Client Library”
Channel: CppNow
Date: 07/06/2018

http://cppnow.org
—
Presentation Slides, PDFs, Source Code and other presenter materials are available at: http://cppnow.org/history/2018/talks/
—
How to communicate with a database and use a connection efficiently, make queries and get results in a type-safe manner? What is the design for a library which provides a convenient and efficient interface to interact with DBMS? What are customization points? Where are extensions required and what could they be? But don't forget about performance. 

We'll talk about data transmissions, and the techniques providing typed requests and responses. How to implement queries with strongly typed arguments and no boilerplate. How to extend the library type system with custom types using convenient introspection mechanisms of Boost.Hana and Boost.Fusion and without code generation at all. What C++17 allows us to provide flexibility and strong type guarantee. Where are the limits of constexpr in this field. How to implement the library in an efficient asynchronous manner using Boost.Asio and Networking TS. We'll try to consider various asynchronous programming techniques and the ways to support them in a single interface. Finally, we will talk about the library design. How the concepts help us to provide an efficient mechanism with wide customization. Eventually, we'll look at how to test all of it by GUnit. 

All of this is implemented in PostgreSQL client library named ozo. Ozo is production ready and supports the binary protocol, retries, transactions, streaming. 
— 
Roman Siromakha
Yandex
Software Developer

Roman graduated from Bauman Moscow Technical University as M.S. in Software Engineering. 
He is a Software Developer at Yandex, making backend for web mail interface dealing with C++. 
His hobby is to learn about AI by studying and participating in the Russian AI Cup competition, OpenMW project using C++. 
He has been constantly improving his expertise in C++ by using and studying it from his earliest days in university until today. 
—
Videos Filmed & Edited by Bash Films: http://www.BashFilms.com
---

*--*

---