Forza Tarantool: разработка на C для встроенного сервера приложений

Tarantool – это in-memory СУБД с открытым исходным кодом, разрабатываемая VK Cloud . Существует два способа разработки приложений для Tarantool. Как и к большинству СУБД, к Tarantool можно подключаться из внешнего приложения по TCP/IP. С этой целью для многих популярных языков программирования (включая Go, Python, C#, С++, Java и др.) разработаны соответствующие коннекторы . Это – первый способ. Кроме этого, Tarantool обладает замечательной особенностью: он позволяет запускать бизнес-логику на встроенном сервере приложений. В этом случае пользовательский код исполняется в одном адресном пространстве с данными, что обеспечивает высокое быстродействие. Это – второй способ. Если мы ведем разработку для встроенного сервера приложений Tarantool, то выбор языков программирования более ограничен. Основным языком программирования, в этом случае, является Lua. Также, часть логики может быть реализована на C/C++. Но набор доступных языков расширяется. Например, с некоторого времени, поддерживается Rust . Помимо этого, Tarantool может выполнять Wasm-приложения. Скоро код библиотеки для разработки на Wasm будет открыт. Tarantool – высокопроизводительная СУБД, часто используемая для построения highload-систем. Какой из вариантов разработки позволяет достичь максимального быстродействия (которое в таких системах будет не лишним)? В настоящей статье я хотел бы рассмотреть возможные способы вызова C-кода из Lua/LuaJIT/Tarantool (в режиме сервера приложений) и то, как это может ускорить и без того быструю СУБД.

https://habr.com/ru/companies/vktech/articles/1003846/

#tarantool #c_la #luajit #lua #highload #vk_tech #vk_data_platform #коннекторы

Forza Tarantool: разработка на C для встроенного сервера приложений

Tarantool – это in-memory СУБД с открытым исходным кодом, разрабатываемая VK Cloud . Существует два способа разработки приложений для Tarantool. Как и к большинству СУБД, к Tarantool можно...

Хабр

От ручного конфига к автоматическому мониторингу: обзор новой библиотеки go-discovery для Tarantool 3.0

Когда у вас 50+ узлов Tarantool в кластере, ручное управление соединениями превращается в боль. Узлы падают, реплики становятся мастерами, новые инстансы добавляются — и все это нужно отслеживать в реальном времени. Рассказываем, как мы спроектировали go-discovery — библиотеку для автоматического обнаружения узлов кластера Tarantool 3.0.

https://habr.com/ru/companies/vktech/articles/1000840/

#Tarantool #архитектура #отказоустойчивость #go #мониторинг #vk_tech #библиотеки

От ручного конфига к автоматическому мониторингу: обзор новой библиотеки go-discovery для Tarantool 3.0

Когда у вас 50+ узлов Tarantool в кластере, ручное управление соединениями превращается в боль. Узлы падают, реплики становятся мастерами, новые инстансы добавляются — и все это нужно отслеживать в...

Хабр

Go: как получить до 5 млн RPS с одного экземпляра Tarantool

Привет, Хабр. Меня зовут Олег Жуковец. Я руководитель команды «Экосистема» в Tarantool R&D компании VK Tech. Многие разработчики сталкивались с ситуацией, когда запросы к базе данных выполняются быстро, индексы настроены, оборудование справляется с нагрузкой, но конечное приложение все равно работает медленно. Нередко проблема кроется не в самой базе данных, а в некорректно реализованном клиенте, который может стать «бутылочным горлышком» для всего ИТ-ландшафта. Именно поэтому оптимизация клиентов для работы с БД имеет важное значение. В этой статье я на примере коннектора к Tarantool расскажу о доступных и простых оптимизациях клиента для БД, которые позволяют минимизировать аллокации и число горутин, чтобы выкрутить скорость обработки запросов (RPS) на максимум.

https://habr.com/ru/companies/vktech/articles/993654/

#golang #tarantool #vk_tech #go #rps

Go: как получить до 5 млн RPS с одного экземпляра Tarantool

Привет, Хабр. Меня зовут Олег Жуковец. Я руководитель команды «Экосистема» в Tarantool R&D компании VK Tech. Многие разработчики сталкивались с ситуацией, когда запросы к базе данных выполняются...

Хабр

Новый open source Java коннектор для Tarantool: практика с примерами кода

VK Tech открывает исходный код коннектора Tarantool Java EE и переименовывает его в Tarantool Java SDK. Дистрибутив станет доступен в Maven Central, что упростит интеграцию с Java-приложениями в корпоративных средах. Меня зовут Артём Дубинин, я старший программист в VK Tech. Я разрабатываю коннекторы к Tarantool, а также участвую в разработке различных продуктов в VK Tech. Однажды я понял, что материала про совместную работу Java и Tarantool очень мало и из-за этого может казаться, что совмещать их сложно. Но на самом деле это не так — и иногда альтернативы Tarantool могут быть даже сложнее во взаимодействии. Поэтому я и решил написать эту статью. Цель статьи — показать через код, что Tarantool реально совместить с Java без больших полотен кода, а итеративно с небольшими сниппетами (не считая java импортов и xml 😄). Мы будем использовать такие, чтобы каждый мог попробовать провести у себя на компьютере эти эксперименты и понять, что Tarantool легок в использовании.

https://habr.com/ru/companies/vktech/articles/980380/

#Tarantool #архитектура #Java #коннекторы #Redis #nosql #spring #spring_data #open_source #vk_tech

Новый open source Java коннектор для Tarantool: практика с примерами кода

VK Tech открывает исходный код коннектора Tarantool Java EE и переименовывает его в Tarantool Java SDK. Дистрибутив уже доступен в Maven Central , что упростит интеграцию с Java-приложениями в...

Хабр

Работаем быстро, храним экономно: в деталях о механизме охлаждения для Tarantool DB 3.0

Компании ежедневно генерируют большие объемы данных, но далеко не вся информация одинаково важна: со временем многие данные становятся менее востребованными, продолжая занимать дорогие и высокопроизводительные накопители (SSD, RAM). В результате хранение таких «холодных» данных обходится неоправданно дорого, поскольку потребность в постоянном доступе к ним минимальна. Решение проблемы — технология охлаждения данных, которая предполагает перемещение редко используемой информации на более дешевые и емкие носители, то есть файлы остаются доступными, но перестают нагружать дорогие и быстрые устройства. Именно такой механизм охлаждения данных мы добавили в Tarantool DB 3.0. Привет, Хабр. Меня зовут Сергей Фомин. Я старший менеджер продукта Tarantool DataBase . В этой статье я расскажу, как именно мы реализовали механизм охлаждения и какие бизнес-выгоды могут получить компании при его использовании.

https://habr.com/ru/companies/vktech/articles/973738/

#Tarantool #архитектура #охлаждение_данных #vk_tech #хранение_данных #Tarantool_DataBase #vinyl #cooler #ml

Работаем быстро, храним экономно: в деталях о механизме охлаждения для Tarantool DB 3.0

Компании ежедневно генерируют большие объемы данных, но далеко не вся информация одинаково важна: со временем многие данные становятся менее востребованными, продолжая занимать дорогие и...

Хабр

Когда Seq Scan не миновать: Data Skipping в новом колоночном движке Tarantool

Привет, Хабр! Меня зовут Андрей Саранчин, и я разработчик СУБД Tarantool в VK Tech. Вот уже полтора года мы строим MemCS — новый колоночный движок Tarantool для HTAP. И вот парадокс: даже с индексами иногда не уйти от сплошного прохода таблицы. Поделюсь, почему мы не смогли миновать Sequential Scan и как мы смягчили эту проблему с помощью Data Skipping. Эта статья написана по мотивам доклада для

https://habr.com/ru/companies/vk/articles/966082/

#Tarantool #архитектура #отказоустойчивость #data_skipping #колонки #высоконагруженные_системы #highload #highload++ #data #vk_tech

Когда Seq Scan не миновать: Data Skipping в новом колоночном движке Tarantool

Привет, Хабр! Меня зовут Андрей Саранчин, и я разработчик СУБД Tarantool в VK Tech. Вот уже полтора года мы строим MemCS — новый колоночный движок Tarantool для HTAP. И вот парадокс: даже с индексами...

Хабр

Как оптимизация перформанса Debezium JDBC Sink Connector помогла улучшить Open-source версию решения

Debezium — популярный фреймворк для Change Data Capture (CDC), позволяющий отслеживать изменения в источниках данных (таких как базы данных) и передавать их в потоковые платформы вроде Apache Kafka. Одним из компонентов Debezium является JDBC Sink Connector, предназначенный для записи данных из Kafka в реляционные базы данных посредством интерфейса Java Database Connectivity (JDBC). Debezium JDBC Sink Connector может решать множество задач: от репликации данных между БД и синхронизации обновлений между микросервисами до создания резервных копий данных для целей тестирования или разработки. Мы в VK Tech используем Debezium JDBC sink connector, чтобы строить перформанс-интеграции. Но в нагрузочных тестах столкнулись с проблемой производительности, которая не решалась никакими обходными путями. Поэтому нам пришлось детально погрузиться в нюансы обработки событий в Debezium JDBC connector. Привет, Хабр. Меня зовут Артём Дубинин. Я старший разработчик Backend в команде Tarantool CDC — решения для репликации данных в реальном времени между системами управления базами данных (СУБД). В этой статье я изложу свою интерпретацию создания Debezium, расскажу о том, как работает Debezium JDBC connector, а также о нашем варианте оптимизации перформанса, который попал в Open-source версию.

https://habr.com/ru/companies/vktech/articles/967558/

#Tarantool #архитектура #отказоустойчивость #debezium #Kafka #JDBC_Sink_Connector #jdbc #vk_tech #tarantool_cdc #перформанс

Как оптимизация перформанса Debezium JDBC Sink Connector помогла улучшить Open-source версию решения

Debezium — популярный фреймворк для Change Data Capture (CDC), позволяющий отслеживать изменения в источниках данных (таких как базы данных) и передавать их в потоковые платформы вроде Apache Kafka....

Хабр

Как мы подружили Tarantool с Kubernetes

Привет, Хабр! Я — Калашников Сергей, DevOps‑инженер в Центре Перспективных Разработок (ex. R&D) компании Bercut . Cегодня поделюсь опытом внедрения систем на базе Tarantool и Tarantool Vshard в оркестратор Kubernetes. Tarantool — платформа, которая включает в себя in‑memory базу данных, а также встроенный сервер приложений. На базе этой платформы наша команда разрабатывает различные информационные системы, расширяя функциональность с применением языков Lua, Rust, C\C++. Несмотря на все очевидные плюсы Tarantool, он не является тривиальным в части конфигурирования и bootstrap. Это привело нас к разработке Operator для Kubernetes, который обеспечивает развертывание и конфигурирование кластеров на базе Tarantool и Tarantool Vshard.

https://habr.com/ru/companies/bercut/articles/950628/

#tarantool #cicd #bercut #беркут #devops #kubernetes

Как мы подружили Tarantool с Kubernetes

Привет, Хабр! Я — Калашников Сергей, DevOps‑инженер в Центре Перспективных Разработок (ex. R&D) компании Bercut . Cегодня поделюсь опытом внедрения систем на базе Tarantool и...

Хабр