<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ydb/yt/cpp/mapreduce/interface, branch main</title>
<subtitle>Mirror of YDB github repos</subtitle>
<id>https://code.mastervirt.ru/ydb/atom?h=main</id>
<link rel='self' href='https://code.mastervirt.ru/ydb/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/'/>
<updated>2026-07-19T13:32:19Z</updated>
<entry>
<title>YT-27970: add opt-in native client side multiplexing</title>
<updated>2026-07-19T13:32:19Z</updated>
<author>
<name>achains</name>
<email>achains@yandex-team.com</email>
</author>
<published>2026-07-19T10:58:26Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=88a3c167e6203b6c935160d318b6081ebe03abfc'/>
<id>urn:sha1:88a3c167e6203b6c935160d318b6081ebe03abfc</id>
<content type='text'>
commit_hash:87de51fe271596eaf0354bc99ef472e3a3c29d0f
</content>
</entry>
<entry>
<title>YT-28161: Add Commit options</title>
<updated>2026-07-18T10:04:56Z</updated>
<author>
<name>achains</name>
<email>achains@yandex-team.com</email>
</author>
<published>2026-07-18T08:29:44Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=7afc2c8650259f3b8e29491e1701bdcba2d1d62b'/>
<id>urn:sha1:7afc2c8650259f3b8e29491e1701bdcba2d1d62b</id>
<content type='text'>
commit_hash:254111f674ff4126bd7781741ad035f436bfa073
</content>
</entry>
<entry>
<title>YT-28451: Add tagged logging API and opaque event payload</title>
<updated>2026-07-17T09:07:46Z</updated>
<author>
<name>babenko</name>
<email>babenko@yandex-team.com</email>
</author>
<published>2026-07-16T07:32:17Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=cc4f0cb52cee106a1e84c653823087861b8c8df5'/>
<id>urn:sha1:cc4f0cb52cee106a1e84c653823087861b8c8df5</id>
<content type='text'>
Replace `TLogEvent::MessageRef` with an opaque `Payload` that carries the message
together with structured key/value tags, deferring tag rendering to the consumer
(logging thread).

- Add the `TTaggedPayloadWriter`/`TTaggedPayloadReader` codec (`NDetail`), with a
  per-thread chunk-cached builder so tagged logging does no per-message heap
  allocation.
- Model the payload as a typed `TLogEventPayload` — a `std::variant` of the opaque
  strong typedefs `TTaggedLogEventPayload` and `TStructuredLogEventPayload` (each
  over `TSharedRef`). The active alternative identifies the event kind, so the
  separate `ELogMessageKind` enum and `TLogEvent::MessageKind` field are removed;
  consumers dispatch via `std::holds_alternative`/`std::get` instead of a tag.
- Add the fluent `YT_TLOG_*` API: `YT_TLOG_INFO("Message").With(key, value)` and
  `.With(key, value, "%spec")`; disabled levels skip argument evaluation.
- Add well-known tags: `.With(value)` attaches a value under a statically known
  key resolved by ADL (e.g. `.With(error)` for the `Error` tag).
- Teach the plain-text and structured formatters to render tags; add the
  `enable_native_tags` knob to emit tags into a nested structured attribute.
- Add producer-side benchmarks. The tagged API is cheaper than `YT_LOG_*` for
  tagged calls and on par for tag-free ones:

#|
|| **Producer call** | **`YT_LOG_*`** | **`YT_TLOG_*`** | **Δ** ||
|| no tags   | 81 ns  | 82 ns  | +2%  ||
|| 1 tag     | 124 ns | 88 ns  | -29% ||
|| 2 tags    | 140 ns | 101 ns | -28% ||
|| 3 tags    | 372 ns | 283 ns | -24% ||
|#

--

#| || **&lt;a href="https://nda.ya.ru/t/p0sVNSOC7ijzFF" target="_blank"&gt;![](https://nda.ya.ru/t/mAiQIjHx7Mm3JC =30x) Echo tests&lt;/a&gt;** || |#
commit_hash:70efc90e5c2b71e5311415a4e4508db42ff28971
</content>
</entry>
<entry>
<title>Revert "YT-27827: TPingerTransaction use BlockingGet instead of WaitFor in destructor"</title>
<updated>2026-07-03T20:23:22Z</updated>
<author>
<name>ermolovd</name>
<email>ermolovd@yandex-team.com</email>
</author>
<published>2026-07-03T19:58:05Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=5bca0c1d9431d470b8a8c523295ddef1bff53f02'/>
<id>urn:sha1:5bca0c1d9431d470b8a8c523295ddef1bff53f02</id>
<content type='text'>
This reverts commit 90bbe36635e0d48c81c153567dcedf28f103efbe, reversing
changes made to 270d7be117d1eacc9c8aff93d9aaeb510fa910e2.
commit_hash:23c13dd27b089f56e049580d1416d17a22c4bc80
</content>
</entry>
<entry>
<title>retry MasterDisconnected error</title>
<updated>2026-07-01T06:09:04Z</updated>
<author>
<name>ermolovd</name>
<email>ermolovd@yandex-team.com</email>
</author>
<published>2026-07-01T05:45:46Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=5a228d75d98c3716797bb7ca238e988c8351c82f'/>
<id>urn:sha1:5a228d75d98c3716797bb7ca238e988c8351c82f</id>
<content type='text'>
commit_hash:c69288b219a7b906cc9427b23ddc599f149fb77c
</content>
</entry>
<entry>
<title>YT-28380: Add CheckClusterLiveness to C++ SDK</title>
<updated>2026-06-15T10:54:52Z</updated>
<author>
<name>dagorokhov</name>
<email>dagorokhov@yandex-team.com</email>
</author>
<published>2026-06-15T10:22:53Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=246d9269952ba8a27a1487cf4775ae6ec4740ee6'/>
<id>urn:sha1:246d9269952ba8a27a1487cf4775ae6ec4740ee6</id>
<content type='text'>
* Changelog entry
  Type: feature
  Component: cpp-sdk

Add CheckClusterLiveness handle
commit_hash:9b3f23b70fb639693a67edbe9ed2b80683fea61b
</content>
</entry>
<entry>
<title>YT-28419: Drop redundant guard #undef from -inl.h files</title>
<updated>2026-06-14T11:11:09Z</updated>
<author>
<name>babenko</name>
<email>babenko@yandex-team.com</email>
</author>
<published>2026-06-14T10:52:09Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=79d1d1c539b166a3e32ad807ac76160aba756366'/>
<id>urn:sha1:79d1d1c539b166a3e32ad807ac76160aba756366</id>
<content type='text'>
The `.h` owns the #undef of its `&lt;NAME&gt;_INL_H_` guard; duplicating it in the
`-inl.h` is redundant. Align the minority that did so with the majority.
commit_hash:51be59f9d1b93ad152ed5cb07c76088edd6c3e36
</content>
</entry>
<entry>
<title>YT-28161: Prerequisite options for cypress and transactions request</title>
<updated>2026-06-09T08:41:45Z</updated>
<author>
<name>maybenotilya</name>
<email>maybenotilya@yandex-team.com</email>
</author>
<published>2026-06-09T08:13:31Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=a579817c876837458415bccade44613ab27039d9'/>
<id>urn:sha1:a579817c876837458415bccade44613ab27039d9</id>
<content type='text'>
* Changelog entry
  Type: fix
  Component: cpp-sdk

Add prerequisite options for cypress and transactions requests.
commit_hash:4288a35e2237cfaa015ff3990e2be909d18cd6b0
</content>
</entry>
<entry>
<title>add LockType option to TInsertRowsOptions in yt/cpp/mapreduce</title>
<updated>2026-05-30T10:39:17Z</updated>
<author>
<name>alkaline</name>
<email>alkaline@yandex-team.com</email>
</author>
<published>2026-05-30T10:18:28Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=230f2a6d4705cfec902a5393a7e8df346f15bd00'/>
<id>urn:sha1:230f2a6d4705cfec902a5393a7e8df346f15bd00</id>
<content type='text'>
YT-драйвер уже принимает параметр lock_type для insert_rows
(&lt;https://nda.ya.ru/t/y1DKR88L7dogTW&gt;),
но C\+\+ mapreduce-клиент не пробрасывает его дальше, поэтому вызывающий
код всегда использует ELockType::Exclusive.

В груте есть задача инициализации табличных (внешних) счётчиков:
тасклет считает map-reduce-ом дельты по всем владельцам и батчами пишет
их в общую динтаблицу (&lt;https://nda.ya.ru/t/4G2o2Jdo7dogTX&gt; и аналоги), куда рантайм
одновременно дописывает инкременты на каждое событие в источнике.
Колонка `value` в такой таблице — aggregate-sum;
рантайм через NApi пишет в неё с lock_type=shared_write, чтобы параллельные
записи не конфликтовали. Тасклет инциализации счетчика же ходит через mapreduce-клиент и в нем тоже хочется уметь брать shared_write lock.
(&lt;https://nda.ya.ru/t/WrJ9_kf77dogTb&gt;).
commit_hash:7cbcd19f8d0532d6cf0e7f48abe197bb7fda99d3
</content>
</entry>
<entry>
<title>YT-27970: Multiplexing for RPC requests</title>
<updated>2026-05-20T09:55:06Z</updated>
<author>
<name>maybenotilya</name>
<email>maybenotilya@yandex-team.com</email>
</author>
<published>2026-05-20T08:52:31Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=f435c8b2b1cd55fcd478711b06415706e4aa2c87'/>
<id>urn:sha1:f435c8b2b1cd55fcd478711b06415706e4aa2c87</id>
<content type='text'>
* Changelog entry
  Type: fix
  Component: cpp-sdk

Mark light and heavy RPC requests with different multiplexing bands. Only for PingTransaction for now
commit_hash:9177c1e3811a5108933a87dd3f241d235490ce2d
</content>
</entry>
</feed>
