Loading…
This event has ended. View the official site or create your own event → Check it out
This event has ended. Create your own
Please visit the C++Now website.
View analytic
Thursday, May 12 • 4:30pm - 5:15pm
The Effective Structured Data Marshalling/Demarshalling Through Boost.Fusion Introspection In A High Performance Web Service

Log in to save this to your schedule and see who's attending!

The Effective Structured Data Marshalling/Demarshalling Through Boost.Fusion Introspection In A High Performance Web Service The Yandex company is the one of the biggest internet companies in Russia. We provide various users' network interactive services, such as: web-search, e-mail, maps, photohosting and so on. Our team is developing e-mail backend. Message receiving, handling, sending are most typical tasks in backend service. At C++Now 2014 we talked about the optimization of a Boost.Asio-based networking server. Now we want to talk about effective data marshalling and demarshalling which is taking a significant part of our internal web services workload. In this talk we are looking for generic solution of effective marshalling and demarshalling of a structured data like instances of structures, STL containers, classes and so on. We start from the simple implementation which is based on the Boost.Fusion framework, discuss the problems and limitations of this solution. Then we propose different workarounds and optimisations of the solution to achive the performance. We propose solutions based on following key points: * minimization of data copying in order to decrease CPU and memory usage; * elimination of hidden synchronization and locks to provide maximum parallelism and independed work of the solution in different threads; * asynchronous interfaces to use callbacks and/or coroutines for the IO events handling; * stream-like raw data and structured objects processing. For each of these points we provide overview on how it affects total performance.

Speakers
avatar for Sergei Khandrikov

Sergei Khandrikov

Internet search and personal services, Yandex
Sergei Khandrikov has over 10 years of experience in software engineering and C++ development. He has been a backend C++ developer on the Web Mail Interface team at Yandex, LLC, since 2011. Sergei graduated from Bauman Moscow State Technical University as a specialist in robotics and automation systems in 2004. His career started as software engineer and system architect in automation and robotics. He conducted development and research in several... Read More →
avatar for Piotr Reznikov

Piotr Reznikov

Yandex.Mail developer, Yandex
Peter has been a backend developer at Yandex LLC since 2011. He is working at Web Mail Interface team for Yandex.Mail service, maintaining and developing various backend applications, using C++ (and other languages, like PL/SQL or Python, where applicable). | Peter is constantly expanding and revising his knowledge of modern C++, including upcoming C++17 proposals. Metaprogramming and functional programming in C++ is in field of his special... Read More →


Thursday May 12, 2016 4:30pm - 5:15pm
Bethe

Attendees (14)