Skip to content

[#514] [WIP] Keep active call in table

Jynn Nelson requested to merge jyn514/YDBOcto:call-in-table into master

This is a WIP for fixing #514. In particular, it is missing any sort of new tests.

Currently, Octo loads a call-in file and sets it as active. After this MR, Octo will instead load the call-in file and store the descriptor through the process lifetime. It will change the active table only when necessary, switching back to the old table afterwards.

Possible improvements:

  • The new CALL_IN_KEEPING_TAB macro is not particularly efficient. For SELECT queries (_ydboctoselect), it might be better to use a ci_name_descriptor with ydb_cip, which is both more efficient than the existing implementation and does not require switching the active call-in table for each query. For the initial startup (_ydboctoInit), the call-in is only called once so ydb_cip would not help.

Unresolved questions:

  • Can _ydboctoInit and _ydboctoselect themselves call other M routines which depend on $ydb_ci? This use case is not currently supported.
Edited by Jynn Nelson

Merge request reports