| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
| |
commit_hash:425df4b2e29754d12668340c6c3301e7c1e9a63e
|
| |
|
|
| |
commit_hash:5bb34cf1e8e039b59fff79917c694509fff4666c
|
| |
|
|
| |
commit_hash:6b6f1dd36f3baf421a79d6fd4ff8bfb04f4f8af2
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- **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
|
| |
|
|
| |
commit_hash:1d15aa793cf4d50dfdab33d413cdb8480b35080a
|
| |
|
|
| |
commit_hash:05f48a8ca986fe6128d7937d84d03ff7bd44b1ea
|
| |
|
|
|
|
|
| |
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
|
| |
|
|
| |
commit_hash:20a583287838cf09f34109fb4ec0ed8825b2210f
|
| |
|
|
| |
commit_hash:2d7af3653dc3c1036b3b52409faba2fae321046a
|
| |
|
|
| |
commit_hash:77b05e63c7d030fccb8d13d83f5e9dc4f660e19d
|
| |
|
|
| |
commit_hash:ef7700a25960a737e5b047b2c21e473ebf15fbb9
|
| |
|
|
| |
commit_hash:bd309c448765a61ea5ff32e9ed1dadc2afba8665
|
| |
|
|
|
| |
add realization of hash-functions for 32-bit platforms
commit_hash:3247a0524d3b66d759bf5ebd598be84c8dfb5837
|
| |
|
|
| |
commit_hash:2e0271c73066f99267943a20d69391cfd450626f
|
| |
|
|
| |
commit_hash:ed170281f00db0b18b7f86dd0607faa1085ce43b
|
| |
|
|
| |
commit_hash:d4849946ad4be465d324d987001a84eb459143e0
|
| |
|
|
| |
commit_hash:a66d1ef65085fb8e8bfe860b8b7a95cbc5793851
|
| |
|
|
| |
commit_hash:dd937db7bbbfb5f6dfa3767c6f16213f97187eeb
|
| |
|
|
| |
commit_hash:bc31bcb9a8608644ab5aa41becc961ef712ed5b0
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
```
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
|
| |
|
|
| |
commit_hash:b9c2c02a676598c074017c07a95838e719690d32
|
| |
|
|
| |
commit_hash:ef6584bf0941f50d0833dacd3b5d14cfc1cd30a8
|
| |
|
|
| |
commit_hash:866e4401ff3564ae6e58c067f937c15d322a3828
|
| |
|
|
| |
commit_hash:6276fb005358f014871151ad3a84178bc26f8cb3
|
| |
|
|
| |
commit_hash:700b15a49621e9f79e6e6c725a1aa958f9bd132e
|
| |
|
|
| |
commit_hash:f6857a8490949eca132e64b51844a28b3fbc821b
|
| |
|
|
|
|
|
|
|
| |
Этот эксепшн ронял 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 и получают транизитивно compact\_container, который в большинстве случаев не используется (и не собирается под 32 бита)
убираю это зависимость через forward decl (всё что делает string с compact\_container это задаёт концепты, которым не нужно полное определение)
commit_hash:611af702c90f87ab98e05df17ec992bd2a972488
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
## Абстракция управления 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
|
| |
|
|
| |
commit_hash:e6429e7cb58971aadd053ae42ad343f3c2aca5ef
|
| |
|
|
| |
commit_hash:1e565994a1490883e27d7d1edd6727a16e5c89b8
|
| |
|
|
| |
commit_hash:e5a39a7606a915807736cfc1929a15477fc329d9
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
commit_hash:9f82ca4e286c6bda445d50e69dbf631f07eab5b6
|
| |
|
|
| |
commit_hash:76b32cc3992d0c6ce820f0b52a06deade4fa7558
|
| |
|
|
|
| |
_Все вызовы вида YLOG\*\_F(...) заменены на YLOG\*_(...) по всему дереву unified\_agent (например, YLOG\_DEBUG\_F → YLOG\_DEBUG, YLOG\_ERR\_F → YLOG\_ERROR).
commit_hash:483c6f5cb6db2d44e9d71b427a697dc2850cba1f
|
| |
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
# Улучшения библиотеки логирования и переход на троттлинг логов
## Описание
Этот 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
|
| |
|
|
| |
commit_hash:444f289f3b980580fac9b80c59f1bf1a255b9e12
|
| |
|
|
| |
commit_hash:96d6c16b241e44c6cd7910b16864fd0d037c6e8b
|
| |
|
|
| |
commit_hash:058958336f8d0f263f11997b6bf41f858fdc55a0
|
| |
|
|
| |
commit_hash:18757b3abf06220d28029bbcf9777ac15824637b
|
| |
|
|
| |
commit_hash:0d473923289c49fa726588cccb3f93909c81745b
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
### Добавлен троттлинг логов для предотвращения флуда
**Основная цель:** Защита от переполнения логов повторяющимися сообщениями.
#### Что добавлено:
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
|
| |
|
|
| |
commit_hash:1ad357a58cab779a09a8074175650e4147a845e5
|
| |
|
|
| |
commit_hash:703067c8695868118d5e3360507697c32e6a4002
|
| |
|
|
| |
commit_hash:7752326f65dbdee180e3b9fba78f6a2743bf948e
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
+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
|
| |
|
|
|
|
| |
inside SetSparseFeatureBlock.,
commit_hash:0f88c1d2928f092c09638d654fca3baa6cb4f505
|
| |
|
|
| |
commit_hash:d1060afa655a4f9d6d4599152e96f7d19f25a506
|