Performance of Simple API functions for multi-threaded applications comparable to those for single-threaded applications; both faster

Final Release Note

The performance of Simple API functions to support multi-threaded applications (those whose names end in _st e.g,. ydb_get_st()) is comparable to those that support single-threaded applications. Previously they were markedly (on the order of a half order of magnitude) slower. Functions to support single-threaded applications are also faster. [#420 (closed)]

Description

Currently a single-threaded application using the threaded SimpleAPI functions (ydb_set_st(), ydb_get_st() etc.) performs significantly slower (6x in one simplistic test) than the same single-threaded application that instead uses non-threaded SimpleAPI functions (ydb_set_s(), ydb_get_s() etc.). It would be desirable to improve the speed of threaded SimpleAPI functions to be as close as possible to the non-threaded SimpleAPI functions.

Draft Release Note

The threaded SimpleAPI functions (e.g. ydb_set_st(), ydb_get_st() etc.) match the corresponding non-threaded SimpleAPI functions (e.g. ydb_set_s(), ydb_get_s() etc.) in performance when used in a single-threaded application. Previously, the threaded functions used to be noticeably slower (as much as 6x slower). In addition, a multi-threaded application using the threaded SimpleAPI functions is also expected to see a noticeable performance improvement.

Edited by K.S. Bhaskar