| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
commit_hash:007eb2da67fd2040e9eb9d53e860fca34d075712
|
|
|
|
| |
commit_hash:c920cb528ec19c550350408b68ed5e2ac781f375
|
|
|
|
| |
commit_hash:877204cca8999f10cdc5edfa1a2297e2a0292d71
|
|
|
|
|
| |
Find может делать Promote, который мутирует List ( LRUList например: <https://nda.ya.ru/t/fFSNn0ML7LRudF> )
commit_hash:dca1db67d45c7faca51cc1251cbe155c7857e362
|
|
|
|
| |
commit_hash:e93b9ad8b27da3da2372b00bf59ae87a98d0b862
|
|
|
|
| |
commit_hash:013178051e5e4c0a99ded31893069fb928ba18f9
|
|
|
|
| |
commit_hash:9d9f0cc89424b60fbdf176953e5e0782e3a9cd3d
|
|
|
|
| |
commit_hash:5be5816fa0d06087b51636b3acfaf53350e750da
|
|
|
|
| |
commit_hash:17b4088b80f1a7446525ed8eebf0566b3e3a7888
|
|
|
|
| |
commit_hash:953fbbbb13b2ce6538a41da042f04cbb8610619c
|
|
|
|
| |
commit_hash:d7aa6614e2ad37c30d381ce47580aabb7a15a595
|
|
|
|
| |
commit_hash:28e7005fc310c73dc481414ec957dcf4d836fb49
|
|
|
|
| |
commit_hash:750c9e900f9b56e84ebbac73a0dd8b987d76cb47
|
|
|
|
| |
commit_hash:ab793ace85a103212627c3a34df3b7d75e25eff8
|
|
|
|
| |
commit_hash:e898e24c992256452c0d553ec06da3816610f0a5
|
|
|
|
|
| |
Move BEFORE_INIT hook to the beginning
commit_hash:9cbf1d95bf1cda4bcce0d3ab9207debcab65391b
|
|
|
|
| |
commit_hash:3e1b1459766c0173831844249e9e4a3c564ae7ae
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
быстрой отдачи метрик в Multishard Metrics Pull
## С точки зрения пользователя
### 1. Как включать изменения
- Изменения автоматически активируются при использовании `metrics_pull_output_par` параметра
- Количество тредов в тредпуле устанавливается параметром `metrics_pull_output_threads` (по-умолчанию 1)
- Совместимо с существующими конфигурациями метрик
#### Пример конфигурации:
```yaml
experimental:
metrics_pull_output_par: true
metrics_pull_output_threads: 16
```
### 2. На что влияют изменения
- **Производительность обработки метрик:** Группировка метрик по шардам теперь происходит один раз в момент записи сообщения в хранилище
- **Масштабируемость:** Параллельная обработка команд на запись и чтение сообщений
## С точки зрения программиста
### 1. Новая архитектура и взаимодействие
#### Архитектура шардирования
```
TMultishardMetricsStoreHandler
↓
TShardedMetricsQueue
↓
TUAShardedMetricsWriter → IMultiShardEncoder
```
#### Принцип работы
1. **Шардирование:** Метрики группируются по ключу `(project, service, cluster)` из лейблов `__ua_project`, `__ua_service`, `__ua_cluster`
2. **Сортировка:** Внутри каждого сообщения метрики сортируются по ключам шардов
3. **Слияние:** При чтении используется priority queue для объединения шардов из разных сообщений
4. **Вывод:** Данные выводятся последовательно по шардам а внутри шарда в порядке добавления сообщений
### 2. Новые классы
#### `TMultishardMetricsStoreHandler`
- **Назначение:** Основной обработчик команд для шардированных метрик
- **Ключевые методы:**
- `Handle(TWriteCmd&)` - запись метрик в очередь
- `Handle(TMultishardReadCmd&)` - чтение из множественных шардов
- `Handle(TReadCmd&)` - чтение из одного шарда - не поддерживатся
- Обработчики остальных сообщений адаптированы для работы с `TShardedMetricsQueue`
- **Особенности:** Управляет сессиями и делегирует работу с данными в `TShardedMetricsQueue`
#### `TShardedMetricsQueue`
- **Назначение:** Очередь метрик с поддержкой шардирования
- **Ключевые структуры:**
```cpp
struct TShardedMessage {
std::unique_ptr<TOutputMessage> Message;
std::vector<TChunk> Chunks; // Индексы шардов
};
```
- **Алгоритм:** Сортировка метрик по шардам + priority queue для слияния при чтении
#### `IUAShardedMetricsWriter` + `TUAShardedMetricsWriter`
- **Назначение:** Интерфейс и реализация для записи шардированных метрик
- **Расширение:** Добавляет методы `OnShardBegin/End`, `OnStreamBegin/End` к базовому `IUAMetricsWriter`
- **Интеграция:** Работает с `NSolomon::NMultiShard::IMultiShardEncoder`
### 3. Рефакторинг
#### Изменения в базовых классах
- **`TMetricsStoreHandlerBase`:** Вынесен метод `GetMetricsWriterOptions()` для переиспользования
- **`TUAMetricsWriter`:** Добавлено `virtual` наследование для множественного наследования
!!! - **`TOutputItem`:** Изменена видимость конструктора (убран лишний `private`)
#### Структурные изменения
- **Новый модуль:** `metrics_multishard_pull_output` с собственными классами
- **Тесты:** Добавлены unit-тесты `sharded_metrics_queue_ut.cpp` для проверки логики шардирования, а интеграционные тесты продублированы для проверки работы в параллельном режиме
- **Сборка:** Обновлен `ya.make` для включения новых файлов
commit_hash:44618a480d29307e7131b82b19473d284ea68efa
|
|
|
|
| |
commit_hash:e15d09bebbad001d5f7a29f4101b80fe36b10c2e
|
|
|
|
| |
commit_hash:d932ec0ffc0aaea61db064d99b47b64653cd406e
|
|
|
|
| |
commit_hash:daa3d76bfd4283d7cda9ffd741c8ed10457a5c84
|
|
|
|
| |
commit_hash:f8e0668b6081ec86f6dc0d0786a0d6ddcb39bb26
|
|
|
|
| |
commit_hash:70c80bafb116319ef72ca434a09771de3bdbd185
|
|
|
|
| |
commit_hash:18426181c7e415f097e4d8c2378753768fa3628d
|
|
|
|
| |
commit_hash:89ed730ecacf618d740c13539529091af81397b8
|
|
|
|
|
| |
`TForkAwareSpinLock` implementation takes `ForkLock_` reader, which can (and does) violate the non-reentrancy.
commit_hash:6eb1092777ac21dd8303b938f855d0cd61276641
|
|
|
|
| |
commit_hash:9992434a3f64e62fe646462b04978557fc85a75a
|
|
|
|
|
|
|
|
|
|
|
| |
Если копировать TWeakPtr в момент разрушения объекта, на который он ссылается, то происходит гонка на vptr. GetRefCounter использует vptr, а деструктор объекта может его менять.
Thread-sanitizer эту гонку видит.
Unit test added; also fixed and enabled older test.
Enabled thread sanitizer for library/cpp/yt/memory.
commit_hash:87cb083a9905cc8a262b575868bbae3438b9324f
|
|
|
|
| |
commit_hash:917f27d8134295588e8cb526d9c157c8dc9fa08c
|
|
|
|
| |
commit_hash:1442e9e3ce86ef63767d2526ff170888769e16ec
|
|
|
|
| |
commit_hash:d506e2a0f2770f3662449a3711e976499eb9ccbb
|
|
|
|
| |
commit_hash:5adbf14dfcfb04029a862a2c55dfc590e2460f2c
|
|
|
|
| |
commit_hash:fdec34dfe80bd9706dd05dd54307986dc99abaa5
|
|
|
|
| |
commit_hash:27ed69b5a37eb0d58449fb062147aaeb67ec51ba
|
|
|
|
| |
commit_hash:0b182c94d1db5093bac5c409e086f826c0e2147d
|
|
|
|
| |
commit_hash:d141fc27f80ee0774cb302a41a65bc1109062c59
|
|
|
|
|
|
|
|
| |
Перенос оригинального ПР из гитхаба
<https://github.com/ydb-platform/ydb/pull/25413>
<https://github.com/ydb-platform/ydb/issues/23180>
commit_hash:d07612c78875e6ec094314e01d5a3ade7f9cdd90
|
|
|
|
| |
commit_hash:a2c65251912228db1f8c195afd59840d04daf7ff
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Разломались на вызове YLOG\_DEBUG\_F с ошибкой:
```
/home/kirill-bel/arcadia/logbroker/unified_agent/common/zstd_file_stream.cpp:39:17: error: no member named 'format' in namespace 'std'
39 | YLOG_DEBUG_F("TZstdFileStream starting from frame pos = {} frame offset = {}",
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
40 | lastFramePos, lastFrameOffset);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
В YLOG\_DEBUG\_F используется `std::format`, но хедер не включен в `library/cpp/unified_agent_client/logger.h`:
```
#define YLOG_DEBUG_F(fmt, ...) YLOG_DEBUG(std::format(fmt, __VA_ARGS__))
```
commit_hash:0a82f439ec6b8d83e2f4ac1a7d8a8c8cf29b9cc2
|
|
|
|
|
|
|
| |
bool in YDB
Related GitHub PR: https://github.com/ydb-platform/ydb/pull/24488
commit_hash:d879b0ff8c49c1d066df9b6eda753884aeb708bc
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
#### Добавление поддержки временных типов с часовым поясом (TZ-типы) 📝
- 🧱 Добавлены новые примитивные типы для представления даты, даты-времени и меток времени с часовым поясом: `TzDate32`, `TzDatetime64`, `TzTimestamp64`.
- 🧪 В модульные тесты добавлены проверки корректности создания и идентификации новых временных типов.
- 📦 Обновлена логика сериализации/десериализации: TZ-типы отображаются в строковый формат при работе с различными протоколами (Skiff, protobuf, JSON).
- ⚠️ В местах чтения данных добавлена заглушка, которая выбрасывает исключение при попытке обработки новых типов — это временное решение до реализации полной поддержки.
- 🔧 Упрощена иерархия классов примитивных типов за счёт использования шаблона `TPrimitiveTypeBase`.
- 🗂️ Изменён подход к обработке неизвестных типов в нескольких компонентах: вместо явного перечисления всех поддерживаемых типов теперь используется `default` ветка с общим обработчиком.
---
**Оценить качество описания можно [здесь](https://nda.ya.ru/t/_MxIaV0Q7FnCMG**
<a href="https://nda.ya.ru/t/qa0kX64r7DqvtN"><font size="2">Autodescription by Code Assistant</font></a>
commit_hash:265cf034372d36f60988238e273cbfe532c2a4e5
|
|
|
|
| |
commit_hash:2884c52b85c651dea5a463f85d7369fc89756394
|
|
|
|
| |
commit_hash:a97c7e4cdb863bbff17c511824fba68b6e385515
|
|
|
|
| |
commit_hash:20039ca128a1ef8c3aaf337d71d58b1ecec783a1
|
|
|
|
|
| |
Fix errors from [here](https://nda.ya.ru/t/6hgrAk757JpcZP
commit_hash:7d5ee7690cd39bfde0529030cfa213b84ead669a
|
|
|
|
| |
commit_hash:782452058bfe12788549f8c42ed026ddbcfe98e0
|
|
|
|
| |
commit_hash:4662067645a9302622ac1ac352f71594523c0aae
|
|
|
|
| |
commit_hash:96c6a3e9167c9b61ea1b5e53479ebc6de54d99c8
|
|
|
|
| |
commit_hash:a7f43c6b799796f5ed750f94960b70111794aac8
|
|
|
|
|
|
| |
в ручке /counters
commit_hash:7540b71c453d05401c539b0f22cd489831fdfa20
|