summaryrefslogtreecommitdiffstats
path: root/library/cpp/yt
Commit message (Collapse)AuthorAgeFilesLines
* Move more checks to the inlined part of IsLevelEnabledbabenko2025-05-203-24/+20
| | | | commit_hash:ad986b1f46f36765b3d80b8e527b1f25ad966d42
* YT-24485: Support extra gang jobspogorelov2025-05-191-1/+1
| | | | | | | | | | | * Changelog entry Type: feature Component: controller-agent Support extra jobs for gang operations. Introduce gang ranks. commit_hash:1e27fe5d4e042d8ad3d981dfdab718ad41732924
* YT-22593: Use std::string in TStringBuilderlukyan2025-05-192-6/+6
| | | | commit_hash:e1d1710ec1d2fa7407a292934f82f2e5804d1c2c
* YT-24913: Split memory trackernadya022025-05-165-565/+12
| | | | commit_hash:af573daeadda0ee67ff6c0a595b6dc3ad6314c51
* yt: Use well-known macros to test if we are building with SSE4.2thegeorg2025-05-161-5/+0
| | | | | | | | | | | ``` (dflt) thegeorg@jakku:~/arcadia@trunk$ ya tool c++ -E -dM - -msse4.2 < /dev/null | grep SSE4 #define __SSE4_1__ 1 #define __SSE4_2__ 1 ``` On Windows, this macros is defined by the means of ymake.core.conf. commit_hash:ec670bbe09b73580df6c7acf4760fedce7597676
* YT-22593: Migrate HTTP headers to std::stringbabenko2025-05-122-7/+7
| | | | | [diff:runtime] commit_hash:262b2e671526b138d7a9631daf5d34400fc2208c
* Cosmeticsbabenko2025-05-101-2/+8
| | | | commit_hash:b527c60aed121bfae864558328f5bb32ee9afc72
* YT: Fix enricher, add from backtrace enricherpechatnov2025-05-063-11/+101
| | | | | From backtrace enricher можно использовать для захвата бектрейсов при создании ошибок из исключений, а так же для перекладывания атрибутов из сложных исключений других библиотек. commit_hash:76711bd3bb7dbc1e41e43f80d43340d2ce8e4df7
* Fix YT_LOG_ALERT_AND_THROWh0pless2025-04-251-4/+14
| | | | commit_hash:5065ec89aed827ce2d112d5f8623dfb0215a5207
* Typo in ref_counted.hAlexey Arkhipenko2025-04-251-1/+1
| | | | | | | | | No description --- Pull Request resolved: https://github.com/ytsaurus/ytsaurus/pull/1240 commit_hash:9afd1a8a5e8a67c4618712edca143bb56027764f
* Add new macro to replace some of the YT_VERIFYsh0pless2025-04-232-6/+25
| | | | commit_hash:f4f2e8b9ba31109593c94251f64e1061f00af304
* YT-24537: Prioritize writers in TReaderWriterSpinLock, rename old version to ↵pavook2025-04-1710-20/+521
| | | | | | | | | | | | | | | | | | | | | TWriterStarvingRWLock Previously, it was possible that `TReaderWriterSpinLock` wouldn't let the writer through if there's a steady flow of readers. This change addresses that by: 1. Prioritizing writers inside the spinlock by adding an additional `WriterReady` flag that writers set on arrival. This flag doesn't allow any readers to come through. 2. Adding the proper tests to verify this functionality, as well as spinlock's behaviour under forks. 3. Clarifying the documentation about spinlock guarantees 4. Adding a TLA+ model, formally specifying and verifying the guarantees of the new spinlock. 5. Renaming the old lock to `TWriterStarvingRWSpinLock`, and replacing all usages inside YT with the new version (renaming all usages outside of YT to the WriterStarving version). This is a second attempt of REVIEW: 8233768, the first one was rolled back as it lead to deadlocks in user code with reentrant reader locks: the case of `AcquireReader(thread0) -> AcquireWriter(thread1) -> AcquireReader(thread0)` is a deadlock, as `thread0` will not be able to acquire the lock (for the second time) before `thread1` frees writer lock, and `thread1` will not be able to acquire writer lock before the reader lock will be released by `thread0`, which won't happen until `thread0` acquires the lock for the second time. See/for more context and a real example of such situation. Analogous problem can happen with fibers: this is why you shouldn't allow context switches under the lock. Wondering why this ugly name `WriterStarvingRWSpinLock` appeared in your beautiful code? No worries, if you are **sure** that you don't use reentrant locks or fiber switches under the lock, you can freely replace your usage with the new `ReaderWriterSpinLock`. The replacement is drop-in. [nodiff:caesar] commit_hash:97683f854defca00cc283f5a2a10a1730b3c9174
* Fix MakeFormattableViewlukyan2025-04-163-4/+17
| | | | commit_hash:0e4b24c65451e75f168b456cd0d271ddebb7219d
* Revert commit rXXXXXX, YT-24537: Prioritize writers in TReaderWriterSpinLockpavook2025-04-155-266/+17
| | | | | It turns out, RWSpinLock previously accidentally supported recursive AcquireReaders, and this property was broken with the change. commit_hash:f996e7b52ef8b3d37118034530a094af0efbe435
* Enable more parentheses-related warningsbabenko2025-04-141-1/+11
| | | | commit_hash:e5aee6f170c4d38261597cd10e9b42c2dc58c1f3
* YT-24537: Prioritize writers in TReaderWriterSpinLockpavook2025-04-105-17/+266
| | | | commit_hash:94fee5363799655628bd7e2c144a7869a9d89002
* Use consistent format and naming in blocks' loggingngc2242025-04-101-1/+1
| | | | commit_hash:77f144acd2d648f4e32055553be332f1d25d6106
* Make TLogger respect rvaluespogorelov2025-04-093-12/+62
| | | | commit_hash:dc29e989d9edbb7f171ba47632de428289393058
* QL joins refactoringsabdenovch2025-04-081-0/+1
| | | | commit_hash:bf6a38b831d4a1301e19a6524c711d7a1c17bf48
* YT: Add type name of std::exception to error text in TError constructorpechatnov2025-04-012-0/+17
| | | | | | | | | | | | | | | | | | | Без этого, исключение о выходе за пределы массива в векторе выглядит так: ``` vector origin (pid 178121, thread library-cpp-yt-) datetime 2025-03-31T14:59:49.069209Z ``` С фиксом: ``` vector origin (pid 178121, thread library-cpp-yt-) datetime 2025-03-31T14:59:49.069209Z exception_type std::out_of_range ``` commit_hash:7382eba16208f6847d581b901a7df4dfa39452b0
* Make some methods of smart enum being constexprhiddenpath2025-03-252-13/+14
| | | | commit_hash:c29f08fc16d8bd974d4ce516af499de848607ab8
* YT-23989: Track memory in TChunkedOutputStreamnadya022025-03-172-4/+26
| | | | commit_hash:1fcce66b4e0a0a5e5fb55aba38889e9bf5b42a85
* YT-23989: Move memory tracker to library/cpp/ytnadya022025-03-144-0/+588
| | | | commit_hash:5dad6ada81567dcb5da6ef1efe47e1738196d219
* YT: Allow serializing and deserializing plain enums to uint64dgolear2025-03-062-5/+24
| | | | commit_hash:abf11126ef1a914939d506a79dd7c4f11df177f2
* YT-21910: Master compact table schemacherepashka2025-03-061-0/+13
| | | | | | | | | - Changelog entry Type: feature Component: master Introduce TCompactTableSchema, that holds wire protobuf schema representation and lighter than TTableSchema commit_hash:21801854b37fc25c5004ee01e5b79a3b3b6ea983
* Better memory poisoning helpersbabenko2025-03-053-42/+61
| | | | commit_hash:dc1bba1db2b4a5bae15299e926e816920168018f
* Add poisoning helpersbabenko2025-03-046-1/+162
| | | | commit_hash:af266bdf36204a4190b491ea5c45455457030edf
* YTORM-1292 Error enrichment via dependency injectiondeep2025-02-282-2/+40
| | | | | | | Идея такая: хочу подкладывать атрибуты в ошибки, не протаскивая их через стек (как в orm/server/objects) и не прогоняя все ошибки через специальные методы (как в orm/library/attributes). Для этого завожу fiber-local структурку с ленивым выведением строчек. Поскольку TError и TFls живут в разных мирах, пришлось сделать отдельный трамплин для совсем генеричной доработки ошибок в момент создания. Игнат посоветовал глянуть на Codicil. Там очень похоже, но нет key/value, поэтому похитил только название. Вообще, можно унифицировать, если есть запрос. commit_hash:203ec7abe5e8c8484e66d55f16192485db776806
* YT-22593: More trivial TString->std::string migrationsbabenko2025-02-2229-140/+140
| | | | | [nodiff:runtime] commit_hash:1ba799aed1703ab7c6304b6da7090b3337f768dd
* yt/error: optimize constructing TError from TErrorExceptionKonstantin Khlebnikov2025-02-163-0/+18
| | | | | | | | | | | Here we can avoid dynamic cast and exception hazard. Signed-off-by: Konstantin Khlebnikov <[email protected]> --- Pull Request resolved: https://github.com/ytsaurus/ytsaurus/pull/1070 commit_hash:e0709e1fe0f2109792b20b850e0e11a6e96f846a
* Fix unaligned load/store UB in bus and zstd compressionnadya732025-02-102-54/+0
| | | | commit_hash:55e574599005f5286f646ebba93d5550325708bc
* Fix UB in chunked memory poolnadya732025-02-061-9/+11
| | | | | | | | | * Changelog entry Type: fix Component: misc-server Fix UB in chunked memory pool commit_hash:d2d5a9707e30abe1814d1ac0c33fc0f2aba134e2
* Move libyqlplugin.so to ytmpereskokova2025-02-0512-395/+0
| | | | | | | | | Приедет в ytsaurus: <HIDDEN_URL> Приедет в `/contrib/ydb/` <HIDDEN_URL> Проверка, что в github ydb ничего не сломается: <https://github.com/ydb-platform/ydb/pull/13286> commit_hash:73ab1b4a3245322afc9fc6e9d71424ad07106477
* YT-24135: Check for oom in TBlob::DoAllocateponasenko-rs2025-02-051-1/+11
| | | | commit_hash:51660c0e427c358c8285a5889c7dd585a97e5140
* Disambiguate call for windows platformngc2242025-02-041-1/+1
| | | | commit_hash:3f7d1518427ed170b9ac8f70724290b71801cae4
* Make TCompactFlatMap formattableeshcherbin2025-02-033-1/+7
| | | | commit_hash:e5c092a9d0375881554f1d3bc905c662070956bf
* Refactor local host name and YP cluster functionsbabenko2025-02-021-0/+1
| | | | commit_hash:a4ecfb1e06e82ba192646d3ab5417cb3f0c6991f
* Refactor and improve crash handler stderr dumpsbabenko2025-02-013-25/+10
| | | | | | | | | 1. Prevent concurrent crashes to interleave in stderr 2. Cleaner and more compact formatting of registers dump 3. Omit `OLDMASK` (nobody seems to know what is it for) 4. Don't print the top backtrace frame twice 5. Code cosmetics commit_hash:f7a4c960b3400d6dfb0f8f60317aa524611d2fd0
* Switch to std::string for logging tagsbabenko2025-01-193-22/+62
| | | | | [nodiff:caesar] commit_hash:62fa96ca05b1a4018e2e51e6b589483cd3a44fc4
* Babenkoed: Shadow Warssabdenovch2025-01-164-8/+27
| | | | commit_hash:deadebefdfd81b6c737b9464435356b8f652e296
* Typoscoteeq2025-01-161-1/+1
| | | | commit_hash:afeeeea3c2cbdec0ddeed0fea5f88df9d8575f8b
* Squeeze contiguous sequences of blocks in loggingngc2242025-01-143-0/+192
| | | | commit_hash:5dda6f5ef324f03c99af3dae32ebf4a059f02bd3
* Add direct includes in librarymikhnenko2025-01-132-0/+3
| | | | commit_hash:747602d8e470d51bcf6f38dfddafa12047d210df
* YT-18571: library/cpp/yt/small_containers -> library/cpp/yt/compact_containersbabenko2025-01-1220-10/+10
| | | | commit_hash:fc31d2770ebeffeb513c4535bd146c731b7f78fb
* Cosmeticsdtorilov2025-01-111-3/+3
| | | | commit_hash:f51f172878d227b49cb480296f61a6575e5d6e67
* YT: Removed extra trailing comma in std::tuple formattingbulatman2025-01-102-1/+8
| | | | commit_hash:19b37bd3d7e3b4d80e4844676c881bbef1fec76b
* YT-21233: Drop dependency on yson in library/cpp/yt/error by switch to ↵arkady-e1ppa2024-12-2613-593/+594
| | | | | | | std::string everywhere done commit_hash:8a83afa39917ba66a5161388a7cd74a4488d9908
* YT-23859: Various memory tracking improvementssabdenovch2024-12-253-2/+12
| | | | commit_hash:c87fb9e7c5cb8a896dd4b758ad73c5c540339df7
* YT-21233: Issues and tidying up of rXXXXXXarkady-e1ppa2024-12-256-59/+39
| | | | commit_hash:19481c9fbb008aab4f4d676f1a3a242f6e90e90e
* YT-21233: Adjust (To/From)ErrorAttributeValue CPOs, revert ConvertTo ↵arkady-e1ppa2024-12-2523-106/+3493
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | becoming CPO, move TErrorCode and TError to library/cpp/yt/error \[nodiff:caesar\] List of changes: 1) Make `ConvertTo` a normal function again (basically, a revert of previous change). It turned out to be very inconvenient entry point 2) Introduce concept for "Primitive types" which are handled without yt/core module. Please note that inclusion of core **does not** affect work with primitive types (otherwise we would be facing and ODR violation). These are numerics, duration, instant, string-like objects and guid 3) Introduce `FromErrorAttributeValue` which is a substitute to `ConvertTo` with special behavior (see below) 4) Scheme for (de-)serialization has changed: 1) Primitive types are handled via `ConvertToTextYsonString` and `ConvertFromTextYsonString` 2) Other types are not supported without yt/core. Otherwise `ConvertToYsonString(value, EYsonFormat::Text)` used for serialization and `ConvertTo<T>(value)` for deserialization. 5) New format of attribute value storage allows to not care about concrete type of the attribute (text yson strings can be detected since they start with `\"` and deserialized so are text yson bools, everything else is already human readable). This drops dependency on `TTokenizer` 6) Some small parts (e.g. enums or constants or aliases) of yt/core/misc files were moved to library/cpp/yt/\* locations and re-included to drop dependencies of stripped\_error on them 7) `TErrorAttributes` is now a simple hash map instead of a handle to `IAttributeDictionary` 8) `ExtractFromAttributes` weak symbol is finally moved to library/cpp/yt/error due to point 9 allowing to fully drop dependency on `IAttributeDictionary`. Combined with point 7 this drops dep on yt/core/ytree altogether 9) Moved `TErrorCode` to library/cpp/yt/error. There is a logger there which forces dep on library/cpp/yt/logging. It is not required really, and can be later removed 10) Moved `TError` with format and macroes to library/cpp/yt/error. It still (and probably forever will) depend on yson. What can be done next: Switch TYsonString to TString and move ConvertTo/FromTextYsonString to library/cpp/yt/error. This would remove dep on library/cpp/yt/yson\_string commit_hash:6f11dc478ab782a1f98a5aedcd45a4800d3f4e7b