| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |\ \ |
|
| | |\| |
|
| | | |
| | |
| | |
| | | |
commit_hash:770f47397e7869d5fb0cda8d67e3479b156f7f89
|
| | | |
| | |
| | |
| | | |
commit_hash:6a872f8a76031a194e46daac049491f222f4d74a
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Every `Invoke` wrapped the user callback in a freshly heap-allocated
`BIND(&TBucket::RunCallback, ...)` closure, solely to install the target bucket as
the current invoker around execution -- a malloc/free plus a refcounted wrapper
construct/destroy on the hot path of every scheduled action.
The plain `TThreadPool` avoids this: it stores the callback as-is and installs its
invoker via `SetCurrentInvoker()` in the execute path. This does the same -- the
bucket is already kept alive in `TAction::BucketHolder`, so `DoOnExecute` installs
it as the current invoker right before returning the callback, and `OnExecute`
resets it before fetching the next one (mirroring `TSchedulerThread::EndExecute`).
### Why
Profiling the `BusXferFS` threads of an RPC proxy showed ~10% of their CPU in the
fair-share scheduling machinery, with a per-action allocation visible in `Invoke`.
This removes that allocation.
### Benchmark
Adds `yt/yt/core/benchmarks/fair_share_thread_pool.cpp` (there was none for this
pool): open-loop (Invoke cost), closed-loop (bounded in-flight, true end-to-end
scheduling rate), and round-trip latency.
Measured on a quiet host (node-pinned, medians):
| Config | Before | After | Δ |
|---|---|---|---|
| open-loop, 1 producer | 410-434 ns/op | 301-336 ns/op | -23..-27% |
| closed-loop, pool=1 | 760-864 k/s | 954-968 k/s | +12..+25% |
Contended multi-thread configs are coordination-bound (combiner lock + futex
wakeups) and unchanged; the win is on the CPU-saturated per-action path, which is
what the bus xfer pool hits.
commit_hash:c2ec77121bf52d0058042a0c9358a8de7620b69d
|
| | | |
| | |
| | |
| | | |
commit_hash:d6d32f6e92391f4ff0d6260b094eb29d90334bda
|
| | | |
| | |
| | |
| | |
| | |
| | | |
to RootVolumePreparationFailed.
commit_hash:4f62c18463d3dc9dcb03996652638e41159a1b14
|
| | | |
| | |
| | |
| | |
| | | |
Use the payload itself as the shared range holder instead of copying the string via TSharedRef::FromString.
commit_hash:b427dbe6e8a8eaf3aa3c46b57f0f9965d57b3a95
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Rationale: all overloads of `TSharedRef::FromString` must remain cheap and don't copy any payload.
Remove the zero-terminated C string overload of `TSharedRef::FromString`. Callers passing a string literal should use `std::string/TString` explicitly.
#| || **<a href="https://nda.ya.ru/t/-VG7qyBv7iD8vm" target="_blank"> Echo tests</a>** || |#
commit_hash:1a6718abcbe4e6a8f58592f55de8c37ceb2b73d3
|
| | | |
| | |
| | |
| | | |
commit_hash:bc29593fe77058e2397200b02eb336dfa1171226
|
| |\ \ \ |
|
| | | | | |
|
| |\ \ \ \ |
|
| | |/ / / |
|
| |/ / / |
|
| |\ \ \ |
|
| | | | | |
|
| |\ \ \ \ |
|
| | |/ / / |
|
| |\ \ \ \
| |_|/ /
|/| | | |
|
| | |/ / |
|
| |/ / |
|
| | | |
|
| | | |
|
| | |
| |
| |
| | |
Co-authored-by: Cursor <[email protected]>
Co-authored-by: Copilot Autofix powered by AI <[email protected]>
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | |
| |
| |
| |
| | |
Co-authored-by: Evgenik2 <[email protected]>
Co-authored-by: Stepan Beloyarov <[email protected]>
Co-authored-by: Cursor <[email protected]>
|
| | | |
|
| | |
| |
| | |
Co-authored-by: Cursor <[email protected]>
|
| | |
| |
| | |
Co-authored-by: sintjuri <[email protected]>
|
| | |
| |
| | |
Co-authored-by: Stepan Beloyarov <[email protected]>
|
| | | |
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| | |
Adds an opt-in encoding for the SUB_COLUMNS JSON accessor: when every present value of a
separated sub-column is a scalar of one JSON type, store it in the matching native Arrow array
(float64 / boolean / raw-string binary) instead of a per-value BinaryJson blob. Gated behind a
new default-off setting ENABLE_NATIVE_COLUMNS; behavior is unchanged unless it's turned
on.
|
| | | |
|
| |\ \ |
|
| | | | |
|
| |\ \ \ |
|
| | |/ / |
|
| |\ \ \
| |/ /
|/| | |
|
| | |\| |
|
| | | |
| | |
| | |
| | | |
commit_hash:5158390863c48b4ceb69eb344ea1996573220c4b
|
| | | |
| | |
| | |
| | |
| | | |
Add TPolymorphicYsonStruct::Postprocess (forwarding to the held concrete struct) and a PostprocessRecursive overload keyed on the new TImplementsYsonStructPostprocess tag, so a polymorphic field participates in the recursive postprocess pass like a nested YSON struct does.
commit_hash:47c621c2562da2481a392be8f6800a182525462a
|
| | | |
| | |
| | |
| | | |
commit_hash:7c3b47f100a159ae54c5eef858c21b2e1039bbed
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
#### Handle DQ reader/writer exceptions with UdfTerminate ✎
- Wrap NYT::TErrorResponse and standard exceptions with UdfTerminate to ensure proper error handling and termination in DQ reader and writer components
- Add exception handling around FetchRecord and MakeState methods to catch and terminate on YT errors and general exceptions
- Enhance writer component with logging capabilities in destructor to capture and report cleanup failures
- Introduce proper error propagation for DQ operations by converting YT errors into UDF termination signals
- Add comprehensive exception handling for both read and write operations to prevent unhandled exceptions from crashing the system
<a href="https://nda.ya.ru/t/qa0kX64r7DqvtN"><font size="2">Autodescription by Yandex Code Assistant</font></a>
commit_hash:e77875f1ef1c1b2d3c6c8d50a333ee7c80ccde7f
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Изменения в рамках этого тикета <https://github.com/ydb-platform/ydb/issues/44190>
#### Support Uuid and DyNumber in minikql blocks and Arrow ✎
- Added support for Uuid and DyNumber data types within MiniKQL blocks and Arrow computations, enabling their use in block-based operations and serialization
- Implemented proper conversion, serialization, and deserialization logic for both data types in the Arrow format
- Extended block item handling to support Uuid and DyNumber, including comparator and hasher implementations
- Added comprehensive unit tests covering roundtrip operations, serialization, comparison, and conversion for both data types
- Integrated Uuid and DyNumber support into built-in functions like Min/Max and their aggregate variants
- Updated type system and block builder components to recognize and handle the new data types correctly
- Added necessary includes and utility functions to work with Uuid and DyNumber in MiniKQL contexts
<a href="https://nda.ya.ru/t/qa0kX64r7DqvtN"><font size="2">Autodescription by Yandex Code Assistant</font></a>
commit_hash:d1ab82c060cfa90b7cd13a1cb3efbcb9615e6291
|
| | | |
| | |
| | |
| | | |
commit_hash:f831c95aaaa6c6f2c4b98c74539633213dd00bd3
|