Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

YouTube

Design and Implementation of DBMS Asynchronous Client Library

CppNow via YouTube

Overview

Explore the design and implementation of an asynchronous DBMS client library in this comprehensive conference talk from C++Now 2018. Delve into efficient database communication, type-safe queries, and result handling. Learn about customization points, library extensions, and performance optimization techniques. Discover how to implement strongly typed requests and responses without boilerplate, and extend the library's type system using Boost.Hana and Boost.Fusion. Examine the benefits of C++17 for flexibility and type safety, and explore the limits of constexpr in database interactions. Gain insights into asynchronous programming techniques using Boost.Asio and Networking TS, and understand how concepts aid in providing an efficient, customizable mechanism. The talk covers the implementation of these ideas in the production-ready PostgreSQL client library, ozo, which supports binary protocol, retries, transactions, and streaming. Finally, learn about testing strategies using GUnit and get a comprehensive overview of database communication models, connection abilities, query building, and result handling using modern C++ techniques.

Syllabus

Intro
What are we doing?
What do we use?
What do we need from client library?
What is our proposal?
Database communication model
Brief example
How does it work?
Connection abilities
Connection provider concept
Connection concept
User connection type
Connection wrapper concept
Unwrap connection
Connection and wrapper combination
Why concepts?
Dark side of concepts
Use static asserts to check your type
Back to the request example
User defined type
OID map usage
OID map storage
How to send a query to PostgreSQL?
Query template
Query builder: compile time tests
Why query configuration?
Query configuration file
Query type definition
Query repository
Ideas for result
Boost.Hana deserialization problem solution
Asynchronous completion token
Convert completion token into callback
Transactions concept implementation
Read database result row by row: stackless coroutines

Taught by

CppNow

Reviews

Start your review of Design and Implementation of DBMS Asynchronous Client Library

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.