summaryrefslogtreecommitdiffstats
path: root/library/cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* YDB Import 879robot-ydb-importer2026-03-117-533/+0
| | | | commit_hash:425df4b2e29754d12668340c6c3301e7c1e9a63e
* [yt/misc] remove 64-bit requirement error directivevasko2026-03-111-5/+0
| | | | commit_hash:5bb34cf1e8e039b59fff79917c694509fff4666c
* Intermediate changesrobot-piglet2026-03-111-0/+5
| | | | commit_hash:6b6f1dd36f3baf421a79d6fd4ff8bfb04f4f8af2
* Prefer CA bundle set by SSL_CERT_FILE and SSL_CERT_DIR (common part)Konstantin Khlebnikov2026-03-113-11/+63
| | | | | | | | | | | | | | | | - **library/cpp/openssl: prefer CA set by SSL_CERT_FILE and SSL_CERT_DIR** - **contrib/tools/python3: prefer CA set by SSL_CERT_FILE and SSL_CERT_DIR** - **library/python/certifi: prefer CA set by SSL_CERT_FILE and SSL_CERT_DIR** First three commits from PR #1607 to change common part separately. --- Pull Request resolved: https://github.com/ytsaurus/ytsaurus/pull/1635 Co-authored-by: shadchin <[email protected]> Co-authored-by: shadchin <[email protected]> commit_hash:21db0cd5fe3b4af267dcf5ec4d2753fbdd49ba1e
* avoid clashing of counters paramsxenoxeno2026-03-102-7/+58
| | | | commit_hash:1d15aa793cf4d50dfdab33d413cdb8480b35080a
* New version of the tld SKIP_CHECK SKIP_REVIEWrobot-ratatosk2026-03-101-1/+1
| | | | commit_hash:05f48a8ca986fe6128d7937d84d03ff7bd44b1ea
* YT-27605: YT_LOG_FATAL_AND_THROW captures log message in error attributebabenko2026-03-093-9/+61
| | | | | | | I'm quite unhappy with the amount of copy-pasted and slightly altered code but the differences between `YT_LOG_ALERT_AND_THROW` and `YT_LOG_EVENT` are too subtle for a reasonable generalization. This commit also fixes some misplaced `[[(un)likely]]` annotations. commit_hash:3eda6b52e0e0cea0daf4d996602d446de2d7d732
* New version of the tld SKIP_CHECK SKIP_REVIEWrobot-ratatosk2026-03-071-1/+1
| | | | commit_hash:20a583287838cf09f34109fb4ec0ed8825b2210f
* YT-27421, YT-27419, YT-27420: Fix data race in GetDataStatisticsbabenko2026-03-064-0/+228
| | | | commit_hash:2d7af3653dc3c1036b3b52409faba2fae321046a
* [yt/string] bit-independent version of FormatPointerValuevasko2026-03-061-3/+4
| | | | commit_hash:77b05e63c7d030fccb8d13d83f5e9dc4f660e19d
* Even better tracking of memory in range inferrersabdenovch2026-03-051-9/+18
| | | | commit_hash:ef7700a25960a737e5b047b2c21e473ebf15fbb9
* Fixed crash in lwtrace upon ExtractItems in an empty TCyclicDepotdrbasic2026-03-052-4/+21
| | | | commit_hash:bd309c448765a61ea5ff32e9ed1dadc2afba8665
* [yt] make SplitMix & HashCombine bit-independentvasko2026-03-053-13/+39
| | | | | add realization of hash-functions for 32-bit platforms commit_hash:3247a0524d3b66d759bf5ebd598be84c8dfb5837
* Add noexcept to move constuctors and assignments - leftovers #3osidorkin2026-03-049-20/+20
| | | | commit_hash:2e0271c73066f99267943a20d69391cfd450626f
* New version of the tld SKIP_CHECK SKIP_REVIEWrobot-ratatosk2026-03-041-1/+1
| | | | commit_hash:ed170281f00db0b18b7f86dd0607faa1085ce43b
* Intermediate changesrobot-piglet2026-03-031-2/+2
| | | | commit_hash:d4849946ad4be465d324d987001a84eb459143e0
* Intermediate changesrobot-piglet2026-03-032-3/+3
| | | | commit_hash:a66d1ef65085fb8e8bfe860b8b7a95cbc5793851
* Add noexcept to move constuctors and assignmentsosidorkin2026-03-0311-21/+21
| | | | commit_hash:dd937db7bbbfb5f6dfa3767c6f16213f97187eeb
* Enable -Wreturn-typebabenko2026-03-031-0/+1
| | | | commit_hash:bc31bcb9a8608644ab5aa41becc961ef712ed5b0
* Activate json tests list logic and add testsn-khamraev2026-03-032-31/+30
| | | | | | | | | | | | | ``` Listing of tests information into json file (--list-verbose) now uses json with extended meta data instead of :: separated string * Changelog entry Type: feature Component: cpp-sdk --list-verbose commands in Gtest and unittest are now using json with extended meta data instead of plain "::"-separated string ``` commit_hash:096b575c80989be0166f54b214e595dc58977fe0
* suport MakeFuture<void>() and NewPromise<void>() callsilnurkh2026-03-033-9/+10
| | | | commit_hash:b9c2c02a676598c074017c07a95838e719690d32
* [cpp/monlib] add ability to mangle name in prometheus decodervvminashkin2026-03-023-5/+83
| | | | commit_hash:ef6584bf0941f50d0833dacd3b5d14cfc1cd30a8
* Replace DangerousGetPtr with TWeakPtrbabenko2026-03-012-7/+84
| | | | commit_hash:866e4401ff3564ae6e58c067f937c15d322a3828
* New version of the tld SKIP_CHECK SKIP_REVIEWrobot-ratatosk2026-03-011-1/+1
| | | | commit_hash:6276fb005358f014871151ad3a84178bc26f8cb3
* YT-27536: Fix (seemingly benign) race in TTwoLevelFairShareQueuebabenko2026-02-283-227/+331
| | | | commit_hash:700b15a49621e9f79e6e6c725a1aa958f9bd132e
* New version of the tld SKIP_CHECK SKIP_REVIEWrobot-ratatosk2026-02-281-1/+1
| | | | commit_hash:f6857a8490949eca132e64b51844a28b3fbc821b
* Enhance library/cpp/monlib exception verbosity for debuggingydynnikov2026-02-272-2/+38
| | | | | | | | | Этот эксепшн ронял YDB RU PRESTABLE минимум дважды: \- 2025-09-10 <https://nda.ya.ru/t/VerKgHXk7VTLyV> \- 2026-02-19 <https://nda.ya.ru/t/uhTY2yqK7UtBen> Патч призван упростить отладку падений и поиски руткоза commit_hash:72d859bae3ab265a2807e566c763bfb70a92a61a
* [yt string] move some dependencies out for 32bit build supportvasko2026-02-274-8/+16
| | | | | | | многие либы тянут yt/string и получают транизитивно compact\_container, который в большинстве случаев не используется (и не собирается под 32 бита) убираю это зависимость через forward decl (всё что делает string с compact\_container это задаёт концепты, которым не нужно полное определение) commit_hash:611af702c90f87ab98e05df17ec992bd2a972488
* /0: Implement TExecutorSet and TExecutorSetManageriofik2026-02-252-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ## Абстракция управления executor’ами (TExecutorSet, TExecutorSetManager) ### Что сделано Вводится единый слой для работы с пулами потоков agent’а: main, background и IO. **TExecutorSet** — представление набора executor’ов: - `Main()`, `Background()`, `IO()` — одинаковый интерфейс для всех трёх пулов - IO возвращает тот же объект, что и Main, когда `separate_io_thread_pool == 0`, иначе — отдельный executor **TExecutorSetManager** — создание и владение executor’ами: - `GetExecutors(EExecutorPool pool)` — возвращает нужный набор; пока используются только `Global` и `Metrics` (оба отдают один и тот же набор) - `Start()`, `Stop()` — жизненный цикл - Main создаётся сразу, Background и IO — лениво при первом обращении **Рефакторинг TAgent**: - Вместо отдельных полей `TaskExecutor`, `BackgroundTaskExecutor`, `IOTaskExecutor` и `DelayedExecutor` используется `ExecutorSetManager` - Обращения к executor’ам идут через `ExecutorSetManager->GetExecutors(EExecutorPool::Global)` - FSNotifier, MemoryQuotaManager, AgentContext, CountersUpdater работают с глобальными executor’ами **RegisterCountersWith**: - Регистрирует счётчики main, background, IO (если включён отдельный IO-пул) и delayed - Раньше IO-счётчики не учитывались — это исправлено **Тесты**: - Добавлен gtest-модуль `executor_set_tests` в `tests/gtests/`: - Проверяются GetExecutors, доступность Main, ленивая инициализация Background - Поведение IO при `separate_io_thread_pool == 0` и `> 0` - Start/Stop и параметр pool в GetExecutors ### Цель Подготовка к PR1: выделение отдельных пулов для pipelines. Сейчас меняется только абстракция, без изменения конфигурации и без добавления dedicated pools. commit_hash:0f1b2205c474db1b601a72f063916333a74882d6
* YT-27453: Fix data race in NTabletNode::TChaosAgent::Disableosidorkin2026-02-251-1/+1
| | | | commit_hash:e6429e7cb58971aadd053ae42ad343f3c2aca5ef
* Intermediate changesrobot-piglet2026-02-251-0/+3
| | | | commit_hash:1e565994a1490883e27d7d1edd6727a16e5c89b8
* New version of the tld SKIP_CHECK SKIP_REVIEWrobot-ratatosk2026-02-251-1/+1
| | | | commit_hash:e5a39a7606a915807736cfc1929a15477fc329d9
* faster escapestyopkin2026-02-246-15/+200
| | | | | | | | | | | | | | 2% int'ов сидят в Escape. pepe watafa. <https://nda.ya.ru/t/AJC4zGq27VFEkb> Тут играясь с блоками получилось на реальном cgi из прода \~33% срезать. Мелочь, а приятно. На самом деле, хотелось бы узнать как правильно делать "некрасивую, но ускоряющую" гадость в library/cpp. Все тесты работают, но тем не менее =) До: <https://nda.ya.ru/t/Iv6Y0jQf7VFEkc> После: <https://nda.ya.ru/t/KO_Rgvi87VFEke> Тут, к сожалению не на прогрузе, но уже видно. commit_hash:671028887e7d9320c8e9a393a0abb203207eb883
* New version of the tld SKIP_CHECK SKIP_REVIEWrobot-ratatosk2026-02-221-1/+1
| | | | commit_hash:9f82ca4e286c6bda445d50e69dbf631f07eab5b6
* Fixed error comparisonmikari2026-02-202-1/+15
| | | | commit_hash:76b32cc3992d0c6ce820f0b52a06deade4fa7558
* /3: Get rid of YLOG*_F macros in favor of just YLOG*iofik2026-02-201-1/+1
| | | | | _Все вызовы вида YLOG\*\_F(...) заменены на YLOG\*_(...) по всему дереву unified\_agent (например, YLOG\_DEBUG\_F → YLOG\_DEBUG, YLOG\_ERR\_F → YLOG\_ERROR). commit_hash:483c6f5cb6db2d44e9d71b427a697dc2850cba1f
* LLVM deny specializations for some classes. Allow them explicitly in librarymikhnenko2026-02-201-0/+3
| | | | | | Since [23 Jan](https://github.com/llvm/llvm-project/commit/6f684816e25d8b4e5fb2cbc7d0560d608a8bd938) llvm deny some specializations. Original errors you can see [here](https://nda.ya.ru/t/_TK4X_pD7UuYMK commit_hash:b1ebaf654c8aba01e0fc1b7957a5c93002fa6904
* /2: Use our internal logger header, add logging metricsiofik2026-02-196-87/+388
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | # Улучшения библиотеки логирования и переход на троттлинг логов ## Описание Этот PR содержит улучшения системы логирования unified\_agent с акцентом на предотвращение флуда логов и добавление метрик логирования. ## Основные изменения ### 1. Улучшения библиотеки логирования (`library/cpp/unified_agent_client/logger`) - **Встроенный троттлинг логов**: Добавлена поддержка ограничения частоты логирования на уровне библиотеки - Новые макросы `YLOG_*_T` с автоматическим троттлингом (20 логов на 10 секунд по умолчанию) - Независимый троттлинг для каждой точки логирования (по `__FILE__:__LINE__`) - Автоматический подсчет подавленных сообщений с выводом `[+N suppressed]` - **Метрики логирования**: Добавлены счетчики для мониторинга активности логирования - `RecordsReceived` - общее количество попыток логирования - `RecordsDropped` - количество подавленных сообщений из-за троттлинга - Счетчики передаются через `TLogger::TCounters` при создании логгера - **Оптимизация производительности**: - Использование `GetCycleCount()` для быстрого получения времени (вместо системных вызовов) - Relaxed memory ordering для атомарных операций (достаточно для троттлинга) - Минимальные накладные расходы при отключенном логировании ### 2. Переход всех логов агента на троттлинг - **Унификация макросов**: Все макросы `YLOG_*` в `logbroker/unified_agent/common/util/logger.h` теперь используют троттлинг - `YLOG_DEBUG`, `YLOG_INFO`, `YLOG_WARNING`, `YLOG_ERROR` и т.д. теперь автоматически применяют троттлинг - Старые макросы `YLOG_*_F` теперь алиасы для новых троттлированных версий - Обратная совместимость полностью сохранена - **Обновление документации**: Файл `for_ai_cpp.md` обновлен с новыми рекомендациями по логированию ### 3. Интеграция метрик логирования в телеметрию - **Новые счетчики в `TAgentLogCounters`**: - `RecordsReceived` - rate метрика `agent.log.records_received` - `RecordsDropped` - rate метрика `agent.log.records_dropped` - **Экспорт метрик**: Метрики логирования автоматически собираются и отправляются в телеметрию агента - **Рефакторинг конструктора `TAgent`**: - Упрощена передача счетчиков через структуру `TAgent::TCounters` - Счетчики логирования передаются в `TLogger` при инициализации ### 4. Тесты - **Перенос тестов**: Тесты логирования перемещены из `logbroker/unified_agent/tests/gtests/logger_tests` в `library/cpp/unified_agent_client/ut` - **Расширенное покрытие**: - Тесты базового троттлинга - Тесты счетчика подавленных сообщений - Тесты независимого троттлинга для разных точек логирования - Тесты форматирования сообщений - Тесты счетчиков метрик ### 5. Исправления и улучшения - **Удаление дублирования кода**: Логика троттлинга теперь находится только в `library/cpp/unified_agent_client/logger.cpp` - **Упрощение API**: Удален отдельный файл `logbroker/unified_agent/common/util/logger.cpp` - **Обновление импортов**: Все файлы обновлены для использования правильных заголовочных файлов ## Преимущества 1. **Защита от флуда логов**: Автоматическое ограничение частоты логирования предотвращает переполнение логов 2. **Наблюдаемость**: Метрики логирования позволяют отслеживать активность и проблемы с логированием 3. **Производительность**: Минимальные накладные расходы благодаря оптимизированной реализации 4. **Простота использования**: Троттлинг работает автоматически, не требует изменений в коде 5. **Обратная совместимость**: Все существующие макросы продолжают работать ## Тестирование - ✅ Все unit-тесты логирования проходят - ✅ Integration тесты обновлены (исключение нестабильной метрики `RecordsReceived` из сравнений) - ✅ Проверена работа троттлинга в реальных условиях commit_hash:75fc97a8576114446bfb9ec11efbb80df322e443
* New version of the tld SKIP_CHECK SKIP_REVIEWrobot-ratatosk2026-02-191-1/+1
| | | | commit_hash:444f289f3b980580fac9b80c59f1bf1a255b9e12
* YT-27436 Introduce PP_IS_EMPTYdann2392026-02-182-0/+21
| | | | commit_hash:96d6c16b241e44c6cd7910b16864fd0d037c6e8b
* YT-22792 Support heterogeneous lookup for intrusive pointersdann2392026-02-182-46/+91
| | | | commit_hash:058958336f8d0f263f11997b6bf41f858fdc55a0
* add heic support to MIME detectorsergarseev2026-02-172-0/+3
| | | | commit_hash:18757b3abf06220d28029bbcf9777ac15824637b
* New version of the tld SKIP_CHECK SKIP_REVIEWrobot-ratatosk2026-02-161-2/+1
| | | | commit_hash:0d473923289c49fa726588cccb3f93909c81745b
* /0: Implement logging with throttling, replace YLOG macro with a new oneiofik2026-02-151-1/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ### Добавлен троттлинг логов для предотвращения флуда **Основная цель:** Защита от переполнения логов повторяющимися сообщениями. #### Что добавлено: 1. **Механизм троттлинга логов** ([`common/util/logger.h`](common/util/logger.h), [`common/util/logger.cpp`](common/util/logger.cpp)) - Ограничение: по умолчанию максимум 20 сообщений за 10 секунд для каждой точки логирования - Независимый троттлинг для каждого места вызова `YLOG` (через `static` переменную состояния) - Подсчёт пропущенных сообщений с выводом в формате `[+N suppressed]` - Минимальные накладные расходы: использует `GetCycleCount()` вместо системных вызовов времени - Атомарные операции для потокобезопасности 2. **Настраиваемый троттлинг** - Макрос `YLOG_THROTTLED(logger, priority, maxLogs, intervalSec, ...)` для кастомных лимитов - Макросы `YLOG_THROTTLE_MAX_LOGS` и `YLOG_THROTTLE_INTERVAL_SECS` для глобальной настройки (например, в тестах) 3. **Поддержка C++20 `std::format`** - Макросы `YLOG_*` теперь поддерживают форматирование в стиле C++20: `YLOG_ERR("value: {}", x)` - Обратная совместимость с `YLOG_*_F` макросами сохранена - Специальная обработка `TStringBuilder` для избежания проблем с временными объектами 4. **Тесты** ([`tests/gtests/logger_tests/`](tests/gtests/logger_tests/)) - Проверка базового троттлинга - Проверка счётчика пропущенных сообщений - Проверка независимости троттлинга для разных точек логирования - Проверка форматирования сообщений #### Технические изменения: **Изменён порядок аргументов в макросе `YLOG`:** - Было: `YLOG(priority, message, logger)` - Стало: `YLOG(logger, priority, message, ...)` Это изменение потребовало обновления всех вызовов `YLOG` в кодовой базе (~30 файлов), но обеспечивает: - Единообразие с другими логирующими библиотеками - Возможность использования variadic arguments для форматирования - Правильную работу с `const auto&` для продления времени жизни временных объектов #### Примеры использования: ```cpp // Базовое использование (троттлинг 20 логов/10 сек) YLOG_ERR("Error occurred"); YLOG_INFO("Processing item: {}", itemId); ``` #### Влияние на производительность: - Минимальные накладные расходы: ~10-20 наносекунд на вызов (использование CPU cycles вместо системного времени) - Атомарные операции только при необходимости логирования - Отсутствие дополнительных (по сравнению с текущим кодом) аллокаций памяти в hot path #### Обратная совместимость: - Все существующие `YLOG_*` и `YLOG_*_F` макросы работают как раньше - Добавлен троттлинг по умолчанию для всех логов (может потребовать внимания при отладке) commit_hash:d6e98b82486b99b945a1ba264fb2da969db4fcfc
* New version of the tld SKIP_CHECK SKIP_REVIEWrobot-ratatosk2026-02-131-2/+1
| | | | commit_hash:1ad357a58cab779a09a8074175650e4147a845e5
* Intermediate changesrobot-piglet2026-02-128-25/+16
| | | | commit_hash:703067c8695868118d5e3360507697c32e6a4002
* YT-27361: Make TEnumIndexedArray fully constexprapachee2026-02-112-16/+16
| | | | commit_hash:7752326f65dbdee180e3b9fba78f6a2743bf948e
* YT-27167: Better TBitwiseUnversionedValueHashpavook2026-02-113-0/+29
| | | | | | | | | | | | | | | +20-30% throughput on UpdateColumnarStatistics benchmark (with large statistics enabled) - Do not factor in value.Id when calculating column digest - Pack metadata directly instead of multiple HashCombine calls - Use SplitMix64 finalizer for proper bit distribution - Use cheaper xor with metadata instead of HashCombine - Use XXH3 for strings - Remove unnecessary copy - Measured quality increased: on 20 (c=1..20) sequences `{nc | n \in [1..10^6]}` MAE dropped from ~36% to ~20% HLL digests might temporarily suffer a 2x increase upon merging with the previously computed ones. commit_hash:0bf661245cf1848ba9ef8b6c840c18dfd05bd2a4
* Return old implementation of GetWorkerThreadID. Do not persist threadId ↵akhropov2026-02-102-23/+4
| | | | | | inside SetSparseFeatureBlock., commit_hash:0f88c1d2928f092c09638d654fca3baa6cb4f505
* Intermediate changesrobot-piglet2026-02-102-5/+3
| | | | commit_hash:d1060afa655a4f9d6d4599152e96f7d19f25a506