Pull to refresh
23
0.1
Денис @Hixon10

Бэкенд разработчик

Send message

Несколько параллельных инициатив за последние года:

  1. проект Лум - виртуальные потоки. Способ делать асинхронное программирование на джаве, без сложного реактивного программирования.

  2. Паттерн матчинг - инструмент для реализации Data-oriented программирования (описываем нашу предметную область, как records, и sealed classes/interfaces, а потом пишем логику, используя exhaustive switch).

  3. Улучшение производительности за счет ряда проектов (Vector API, GC improvements).

  4. Улучшение взаимодействия с нативным кодом (Project Panama) - как вызывать Си функцию (или любую другую с C ABI) без боли и приседаний.

  5. Упрощения языка для начинающих программистов - как сделать так, чтобы первая программа на джаве не требовала IDE, build tool, и прочтения книжки, а можно было просто взять и написать main() функцию и какой-то код.

Сколько же в яндексе было проектов по перезду с Оракла на PG. Наверное, самый старый (или нет?) - от 2016 года - https://habr.com/ru/articles/321756/

Интересно, можно ли было бы сделать какой-то универсальный набор тулинга / шагов, чтобы все проекты внутри компании использовали их, а не начинали свой ресерч с шагов типа "подойдет ли нам Oracle GoldenGate".

А у вас в компании нет инициативы по переходу на YDB повсеместно? Например, как гугл переводит все внутренние проекты на google spanner.

(пока я читал статью, думал про вопрос выбора PG - мое изначальное предположение было, что YDB использует ваш сервис, и вы не хотели иметь циклическую зависемость друг на друга, поэтому решили выбрать PG; но тогда я бы спросил - что не обязательно использовать облачную YDB, и можно деплоить свой кластер YDB)

Спасибо за статью. Пара вопросов:

  1. Вы используете https://github.com/open-policy-agent/opa-envoy-plugin , или что-то свое написали, и используете OPA как библиотеку?

  2. Интересно было бы узнать, как вы распростряняете policy и data.

  3. Вы генерируете Rego Policy на основе auth.toml?

По какой визе вы уехали? H1B? Или O1?

Меня зовут Георгий Меликов, я работаю в VK Cloud, являюсь руководителем направления IaaS разработки. Мы занимаемся не только хранилищами, но и программными сетями. Но так как у нас в проде ещё нет ZFS, то я пишу в качестве контрибьютора проекта OpenZFS.

Спасибо за статью. Есть ли у вас уже предположения, для каких нагрузок вы могли бы использовать OpenZFS в VK? Так кажется, что большинство современных БД (sql/очереди/s3) делают много аналогичных вещей - также считают чексуммы данных, пишут WAL, делают репликацию данных и тд. Выглядит так, что используя вместе с ними OpenZFS мы будем часто делать операции дважды.

Я слышал, что люди используют OpenZFS для тестовых стендов вместе с PostgreSQL, чтобы за счет COW получить за бесплатно идентичные базы данных. Есть ли какие-то еще интересные места для использования данной FS?

Если бы вам нужно было построить подобную систему с нуля не в 2016 году, а сейчас (2023), стали бы вы повторять это решение с построением системы на основе Tarantool, или уже бы взяли одну из готовых БД (если да, то какую)?

По непонятной мне причине

Так понятные же причины?


  • Обычно те, кто добавляет логи, не платят за них (редко когда у каждой команды свой бюджет на логи) — значит не понятно, зачем прикладывать доп. усилия
  • Системы состоят из кучи сервисов, как все работает вместе — никто не знает, а если еще и самых подробных логов не будет — не ясно, как чинить инциденты
  • Потом, когда случится инцидент, если не будет нужных логов — начальники спросят, почему так плохо было сделано. Выходит, с точки зрения разработчика выгоднее сразу добавлять много логов, на всякий случай.
  • Не везде хорошая инфраструктура. Например, было бы здорово уметь в рантайме переключать уровень логов — но если система такое не поддерживает, ну, чтоже, будем логировать опять все, что можем.
  • Не везде хороший CI/CD. Если случилась беда на проде, докинуть новые логи может занять не минуты, а часы, благодаря долгим пайплайнам сборок и деплоев.
А где по ссылкам "рынок требует"?

У меня нет каких-то маркетинговых исследований, доказывающих это. Говоря про рынок, я ссылался на то что языки (котлин, c# и потенциально GraalVM) вкладывают ресурсы своих разработчиков, для того чтобы поддержать этот таргет. Кроме того, в последнее время было довольно много конференций (как чисто по WASM, так и языковых), где опять таки WASM был популярным (это может быть просто хайп, а не реальный спрос, но, как один из сигналов — можно рассмотреть).


Кстати, вы больше пишите про запуск Java в браузерах. Но я вижу популярность (на уровней статей/докладов) у запуска WASM вне браузера (serverless и в виде плагинов, например — https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/wasm_filter )

Обычно если я встречаю чьи-то попытки объяснить, чем WebAssembly плох для реализации JVM (а так же, CLR, JavaScript и прочих динамических сред), то они сводятся к следующему: "Java (.NET, JavaScript, ваш вариант) — это управляемый язык со сборкой мусора и исключениями, так что приходится тащить с собой гигантский рантайм". Что же, на самом деле, ситуация несколько сложнее, а размер рантайма вовсе не такой страшный и не является основным источником бед.

Понятно, что JVM и dotnet — не лучшие платформы для WASM, но рынок требует, и разработчики пытаются реализовать такой таргет в своих рантаймах.



WebAssembly не реализует чего-то аналогичного POSIX.

А чем WASI не "POSIX"?

Если подскажете, есть ли где-то возможность пройти подобный тест онлайн бесплатно (понятно, что без официального сертификата, чисто для себя) — буду благодарен, самому любопытно.

Думаю, бесплатно не получится (или я не в курсе о таком). Ведь тест включает в себя speaking, где нужен реальный человек для приема экзамена. Вряд ли работа этого человека может быть бесплатной.


Самое дешевое, наверное, взять урок у какого-нибудь репетитора, кто специализируется на тестах по английскому. Он сможет провести пробный тест. Стоить это будет, наверное, $20-50. Найти такого инструктора можно, например, на https://www.italki.com/

Ну, в общем, примерно C2 и есть.

Это на основе личных ощущений, или какой-то тест сдавался, на подобии IELTS?

Любопытные подкасты

Пожалуйста, прикладывайте ссылки на подкасты. Яндекс музыка открывается далеко не везде (например, из под VPN может не открыться, или не из РФ)

500 задач — это не золотая середина, это P90, если не больше. С 100-150 задачами можно легко проходить собеседования (не все, не всегда, но это и не требуется, так как во время поиска работы будет множество этапов и множество собеседований).

Полно таких историй. Достаточно открыть linkedin и поискать людей из России в фирмах из биг теха.

Интересно, не было ли проблем с GC GO у вас? Или вы пулы объектов используете, на горячем пути практически ничего не аллоцируете?


И традиционный вопрос в подобных постах — при дизайне системы не думали о том, чтобы взять язык без GC (C++/Rust)?

https://news.ycombinator.com/item?id=36618344 — тут были решения, которые векторизируются компилятором, и все становится сильно быстрее

А сами Policies вы храните просто, как текст в БД, и по необходимости загружаете их (при обработки авторизационого запроса?), или там не большой итоговый размер, и вы держите все policies в памяти?

Apache Avro — наиболее популярный формат сериализации для записи данных; его чаще всего выбирают для пайплайнов потоковой передачи.

Какая главная причина, почему Avro популярен для пайплайнов потоковой передачи? Например, если с протобафом сравнить. Или это просто исторически так сложилось, что много решений из биг дата мира работают нативно с Авро данными, поэтому новые систему продолжают использовать его?

Немного не ясно. Если якобы 15 лет уже есть согласие в индустрии, что явно присваивать 0 в volatile int не нужно, то почему не была добавлена оптимизация хотя бы в javac, или любой другой компилятор, который бы это выкидывал?

Information

Rating
2,980-th
Registered
Activity