Веб-версияОткрыть в Telegram

ПостНедавно читал про разные olap query execution engines: velox, photon, etc.

27 февраля 2024
L
Loser story
Недавно читал про разные olap query execution engines: velox, photon, etc. Есть интересный момент, о котором я думал раньше, но не встречал на практике. Предлагается для строковых функций (lower, upper, reverse, etc) делать предположение об инпуте, ASCII он или нет. Утверждается, что в среднем это сильно ускоряет их, впрочем, если у вас только китайский текст, то вам такое не поможет, но вероятно и ничего не испортит. velox использует такой подход: Сделаем проверку на ASCII для инпута, если мы о нём ничего не знаем. Как правило эту проверку нужно сделать только один раз для инпут данных, так как большинство строковых функций принимая ASCII вернут так же ASCII. плюсы: * не требует ничего от стораджа минусы: * определяет ASCII или нет каждый раз * значительная часть времени для ASCII строк уходит на проверку, если бы мы знали заранее, что у нас только ASCII, было бы быстрее * незначительно медленнее utf-8 photon менее понятно, так как кода нет, но можно сказать что они так же имеют специализированные варианты функций. И возможно сохраняют некоторую мета информацию о колонке, насколько много в ней ASCII строк и нужно ли делать дополнительные проверки. плюсы: * читай минусы velox минусы: * дополнительные вычисления на вставке/компактизации данных В заключение скажу что мне стало куда более очевидно, что для любой обработки строк стоит хотя бы сделать ASCII специализацию, и проброс ASCII or UTF-8, чтобы не считать это каждый раз. Например в lucene, да и у нас в поисковом движке, этого нет (при вставке текста, он проходит через множество функций токенизации), а сейчас я уверен, что это стоило бы попробовать сделать. Ещё есть прикольный момент, который я подсмотрел в реализации velox: часто специализация строковой функции для ASCII, реализацией совпадает с аналогом для последовательности байт, соответственно код можно переиспользовать. https://vldb.org/pvldb/vol15/p3372-pedreira.pdf https://people.eecs.berkeley.edu/~matei/papers/2022/sigmod_photon.pdf
4 · 2.4K ·

Рядом в ленте

LLoser storyПосмотрел "доклад", смотреть не рекомендую, потому что по сути пара тезисов, но достаточно интересных. firebolt -- стартап, аналог этих ваших snowflake, google LLoser storyПрочитал статью, первый раз столкнулся с таким явным вариантом рекурсивного сжатия https://15721.courses.cs.cmu.edu/spring2024/papers/03-data2/kuschewski-sigmod
это сообщение
LLoser storyВ комментариях упомянули интересный момент, в некоторых JVM, есть runtime флаг, для того чтоб знать в какой кодировке записана строка (utf-16 или latin1), гуглиLLoser storyНедавно в userver добавили реализацию счётчика на основе rseq -- restartable sequence. Идея не новая и встречалась как один из юзкейсов, когда это все добавляло

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Чего мы не делаем · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем