Синхронный QueryClient с более удобным API #342
Gazizonoki
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Старый дизайн TQueryClient
Это низкоуровневый интерфейс, который дает пользователю сессию для ручного использования, TTxControl для прямого использования, обработку ошибок через TStatus, который провоцирует boilerplate у пользователя, и асинхронное API, из-за которого при синхронном использовании получается колбаса из вызовов функций.
Такой интерфейс имеет место быть в очень высоконагруженных приложениях, но большинству пользователей он создает только лишние сложности. Предлагается сделать синхронный QueryClient, более дружелюбный к пользователю для решения большинства задач пользователя:
NYdb::NQuerySync::TQueryClient
.Новый дизайн TQueryClient
TDbRequestError
.TRetryHandle
- не владеет сессией, а дает API к нейTTxControl
транзакция создается с объектомTTransaction
и действует на протяжении его лайфтайма. (Как в libpqxx)Один запрос в транзакции (на явной сессии)
Было:
Стало:
Ретрай запроса
Было:
Стало:
Интерактивная транзакция
Было:
Стало:
Ретрай интерактивной транзакции
Было:
Стало:
Beta Was this translation helpful? Give feedback.
All reactions