Обновить
4.85
Рейтинг

Tarantool *

Tarantool — платформа in-memory вычислений

Сначала показывать
Порог рейтинга

Репликация с нуля за 5 простых шагов (невозможна)

Блог компании VK Алгоритмы *Хранение данных *Tarantool *
Меня зовут Сергей Петренко, я работаю в команде кластерных технологий Tarantool. В прошлом году я рассказывал о том, как в Tarantool появилась синхронная репликация и поддержка автоматических выборов лидера на основе Raft. Теперь предлагаю погрузиться во «внутренности» репликации в Tarantool. Я расскажу, как устроена репликация, по какой логике она работает и почему самые очевидные решения не всегда самые оптимальные.

Если вы давно хотели углубиться в эту тему и разобраться в устройстве репликации на живом примере, то эта статья для вас.
Читать дальше →
Всего голосов 13: ↑13 и ↓0 +13
Просмотры 2.6K
Комментарии 0

Новости

Tarantool: ускорение разработки с Rust

Блог компании Конференции Олега Бунина (Онтико) Высокая производительность *Rust *Хранение данных *Tarantool *

Tarantool, как известно, поддерживает любой язык, который совместим с C и компилируется в машинный код. В том числе есть возможность реализации хранимых функций и модулей на Lua и C. Тем не менее, уже в двух своих проектах мы использовали Rust (в одном полностью перенесли Lua-код на Rust) и получили 5-кратное увеличение производительности по сравнению с Lua и сопоставимый результат, который дает по производительности C.

Читать далее
Всего голосов 51: ↑49 и ↓2 +47
Просмотры 7.7K
Комментарии 27

Модуль ACME-клиента для Tarantool

Информационная безопасность *Lua *Tarantool *
Tutorial

Ссылка на GitHub. Подробнее о работе алгоритма и модуля можно посмотреть здесь.

Клиент ACME-протокола используется для автоматического получения сертификата безопасности для вашего сайта. Для бесплатного получения сертификата и автоматического его продления в основном все используют Let's Encrypt. Но и есть другие сервисы, например Zero SSL. Он тоже поддерживает ACME-протокол.

Я опирался на две статьи с Хабра (эту и эту), а также RFC8555. Но информации в них оказазалось недостаточно, для того, чтобы реализовать собственный вариант модуля. Примерно половину нужной информации потребовалось дополнительно извлечь из нескольких реализаций данного модуля на других языках. Тесты проводил на живом сервисе, поэтому автотестов пока нет. Можете написать и сделать пулл реквест.

Модуль написан под Linux. В статье подробно разобран алгоритм работы - при необходимости Вы можете дописать его под другую ОС. Рассматривается только вторая версия протокола.

Читать далее
Всего голосов 5: ↑5 и ↓0 +5
Просмотры 807
Комментарии 7

Начинаем работать с Tarantool

Блог компании FirstVDS Системное администрирование *Tarantool *
Перевод
Tutorial
image

В последние годы Tarantool приобрёл широкое распространение, так что давайте разберёмся, что это и как начать с ним работать.
Читать дальше →
Всего голосов 22: ↑20 и ↓2 +18
Просмотры 5.6K
Комментарии 1

Минуточку внимания

Масштабируем кластеры без лишних усилий

Блог компании VK Высокая производительность *Администрирование баз данных *Tarantool *

Каждый, кто работал с большими кластерами, знает: данные все время растут. Рано или поздно перед разработчиками распределенных систем встает задача масштабирования. Сейчас найти место для хранения данных не проблема, но как быть с доработкой и настройкой приложений? Доработки можно избежать, если заранее заложить в систему возможность масштабирования. Можно разделить узлы приложения по типу выполняемой функциональности и развёртывать только то, что необходимо. 

Меня зовут Игорь, я работаю в команде Tarantool. У нас большой опыт разработки высоконагруженных продуктов, например, систем хранения данных для крупных ритейлеров или операторов сотовой связи. Сегодня я расскажу о принципах масштабирования наших кластеров и покажу типовой пример. Будет интересно всем, кто работает с большими данными и задумывается о масштабировании.

Читать далее
Всего голосов 30: ↑29 и ↓1 +28
Просмотры 2.5K
Комментарии 0

Однократные подписки

Блог компании VK Алгоритмы *Tarantool *

При создании разных сервисов очередей часто возникает вопрос: «А как лучше реализовать систему уведомлений о событиях в очереди?» Она часто бывает сложнее в реализации, нежели сам сервис очереди. Система распространения уведомлений встречается во многих программных комплексах. Как правило, клиентов у таких систем немного: десятки, реже — сотни.

Давайте обсудим способы построения таких систем в случаях, когда клиентов не сотни, а сотни тысяч.

Читать далее
Всего голосов 5: ↑5 и ↓0 +5
Просмотры 1.8K
Комментарии 0

Tarantool на процессорах Apple M1: первые результаты

Блог компании VK Высокая производительность *Тестирование IT-систем *Tarantool *


Spiderman + Youtube speedpaint by RowenHebing


Процессоры M1 от Apple уже давно не новость. Многие знают об их быстродействии и о том, что приложения для MacOS нужно адаптировать под новую архитектуру. В команде разработки платформы Tarantool мы тоже недавно поставили перед собой такую задачу.


Я, Алексей Корякин, технический директор Tarantool, входящего в экосистему VK. Расскажу, зачем нам вообще это было нужно (ведь macOS не устанавливают на продакшен-серверы), как мы решали задачу, и покажу результаты бенчмарков.

Читать дальше →
Всего голосов 37: ↑35 и ↓2 +33
Просмотры 8.5K
Комментарии 9

Пишем распределенное хранилище за полчаса

Блог компании VK Высокая производительность *NoSQL *Администрирование баз данных *Tarantool *


Привет, меня зовут Игорь и я работаю в команде Tarantool. При разработке мне часто требуется быстрое прототипирование приложений с базой данных, например, для тестирования кода или для создания MVP. Конечно же хочется, чтобы такой прототип требовал минимальных усилий по доработке, если вдруг будет решено пустить его в работу.


Мне не нравится тратить время на настройку SQL базы данных, думать, как управлять шардированием данных, тратить много времени на изучение интерфейсов коннекторов. Хочется просто написать несколько строчек кода и запустить его, чтобы все работало из коробки. В быстрой разработке распределенных приложений мне помогает Cartridge — фреймворк для управления кластерными приложениями на основе NoSQL базы данных Tarantool.


Сегодня я хочу рассказать о том, как можно быстро написать приложение на Cartridge, покрыть его тестами и запустить. Статья будет интересна всем, кто устал тратить много времени на прототипирование приложений, а также людям, которые хотят попробовать новую NoSQL технологию.

Читать дальше →
Всего голосов 31: ↑30 и ↓1 +29
Просмотры 7.3K
Комментарии 2

Как сохранить тесную коммуникацию в стремительно растущей команде

Блог компании Конференции Олега Бунина (Онтико) Управление разработкой *Управление персоналом *Tarantool *

Какие бывают проблемы роста, кроме очевидных, когда из 15 человек становится 80, а из одной команды вырастает 10? Почему разработчики начинают удаляться от пользователей и перестают чувствовать их боль? Как им не выпадать из коммуникационных процессов?

Я Дмитрий Шаронов, и я расскажу, как мы в Tarantool преодолевали проблемы роста и пытались избежать разделения между разработчиками при переходе из опенсорса в ентерпрайз. Какие решения использовали, зачем привлекали новичков и стажеров. Мы выделили 4 проблемы коммуникации в стремительно растущей команде и унифицировали инструменты для этого.

Это расшифровка доклада, прочитанного мной на TechLeadConf 2021. Видео доклада можно посмотреть тут.

Читать далее
Всего голосов 27: ↑26 и ↓1 +25
Просмотры 4.2K
Комментарии 2

Тестирование СУБД: 10 лет опыта

Блог компании VK Тестирование IT-систем *Программирование *Системное программирование *Tarantool *

Меня зовут Сергей Бронников, я работаю в команде Tarantool. Когда я присоединился к ней, то не нашёл общего описания того, как устроено тестирование в проекте. Поэтому я вёл для себя заметки по мере погружения в разработку. Я решил переработать их в статью. Она может быть интересна тестировщикам в проектах на C/C++ или пользователям Tarantool, которые хотят узнать, сколько мы усилий прикладываем к тому, чтобы снизить вероятность появления проблем в новых версиях. 

Популярной статьей такого рода является описание тестирования библиотеки SQLite за авторством Ричарда Хиппа. Но у SQLite есть специфика: их инструменты тяжело переиспользовать в других проектах. Это следствие того, что у команды разработчиков SQLite есть обязательства поддерживать библиотеку как минимум до 2050 года, и для сокращения внешних зависимостей они все инструменты пишут сами с нуля (например, тест-раннер, инструмент для мутационного тестирования, Fossil SCM). У нас таких требований нет, поэтому в выборе инструментов мы не ограничены и пользуемся всем, что приносит пользу. И если вас что-то заинтересует, то вы достаточно легко сможете это принести в свой проект на C/C++. Если я вас заинтересовал — велкам под кат.

Читать дальше
Всего голосов 29: ↑29 и ↓0 +29
Просмотры 8.1K
Комментарии 14

Соседняя очередь всегда движется быстрее

Блог компании Конференции Олега Бунина (Онтико) Высокая производительность *Анализ и проектирование систем *Клиентская оптимизация *Tarantool *

Вы не используете очередь? Вы просто не умеете её готовить. Но прежде чем этому научиться, нужно разобраться, что это вообще такое и где это применяется. Потому что большинству достаточно 10 000 запросов в секунду, а это дает любой брокер. Но если вам нужно больше, придется погрузиться в очереди достаточно глубоко.

Расскажу, что такое очереди, зачем они нужны и как работают. На примере нескольких сценариев объясню, как устроены очереди и какие есть решения. Какие у очередей самые распространенные проблемы и как их избежать. В чем отличия брокеров, их плюсы и минусы, и как все это использовать в своих целях.

Читать далее
Всего голосов 53: ↑52 и ↓1 +51
Просмотры 13K
Комментарии 2

Grafana as code, или как я перестал кликать мышкой в UI и полюбил grafonnet

Блог компании VK DevOps *Tarantool *
✏️ Технотекст 2021
Tutorial

Когда мы в Tarantool столкнулись с задачей настройки мониторинга для сдачи проекта заказчику, мы решили её с помощью grafonnet. Это библиотека для написания дашбордов Grafana с помощью кода на языке jsonnet, которая заметно облегчила нам жизнь.


Рассказ поделён на две части. В первой я делюсь нашей историей знакомства с grafonnet, причинами, по которым мы выбрали этот инструмент, и задачами, которые мы решили с его помощью. Вторая представляет собой пошаговое обучение написанию простого дашборда для Prometheus. Так что если ситуации, описанные мной в первой половине статьи, покажутся вам знакомыми, вторая позволит вам совершить первый шаг на пути к их разрешению.


Читать дальше →
Всего голосов 35: ↑35 и ↓0 +35
Просмотры 15K
Комментарии 6

Как работать с Tarantool на Golang вместо Lua

Блог компании VK Python *NoSQL *Go *Tarantool *


Ядро Tarantool-а написано на C, а вся бизнес-логика создаётся на Lua. Это не самый сложный язык, но и не самый популярный. Поэтому сегодня я расскажу, как начать работать с Tarantool, написав всего три строчки кода на Lua. А всё остальное приложение написано на Golang. Чтобы было еще интереснее, я даю альтернативный вариант на Python. Что за проект? Делаем приложение, которое позволяет ставить метки на карте: дом, работа, первое свидание, первый Hello World, первый "too long wal write" Tarantool.


Поехали!

Читать дальше →
Всего голосов 36: ↑34 и ↓2 +32
Просмотры 6.6K
Комментарии 8

Магнитная Одиссея 2020: как Tarantool и Golang опутали всю Россию сетью экспресс-доставки

Блог компании Магнит IT-инфраструктура *Разработка под e-commerce *Хранение данных *Tarantool *

Всем привет, меня зовут Алексей Фельде, я IT архитектор направления Омниканальности в «Магните». Это молодое направление. Основная его цель - сформировать единый опыт офлайн и онлайн взаимодействия с покупателем. 

Омниканальная модель стала популярной, так как любой современный покупатель не расстается с мобильным телефоном и может в любой момент выйти в интернет для поиска товаров и оформления заказа. Такая модель требует от компаний пересмотра своего внутреннего IT ландшафта, обновления технологий и инфраструктуры. 

Сервис экспресс-доставки стал первым в направлении Омни «Магнита». Поначалу мне казалось, что запуск такого онлайн-сервиса – классическая история с не менее классическим подходом к решению. Однако для ритейла, который более 25 лет затачивал свои бизнес-процессы под офлайн, запуск обернулся настоящей инженерной головоломкой.

В этой статье я расскажу, как в режиме speedrun небольшая инженерная команда запустила онлайн-сервис экспресс-доставки на Golang с помощью Tarantool Data Grid, gRPC и облака Mail.ru Cloud Solutions.

Читать далее
Всего голосов 14: ↑13 и ↓1 +12
Просмотры 4.1K
Комментарии 7

Архитектура распределенной очереди в Mail.ru Cloud Solutions

Блог компании VK Облачные сервисы Tarantool *


Вряд ли сейчас можно встретить разработчика, который ничего не слышал об очередях сообщений. Самые известные брокеры сообщений это: Apache Kafka, RabbitMQ и IBM MQ. Все также наверняка знают об облачных решениях, предлагаемых Amazon. Есть у них и стандартизованные API для работы с очередями.

Одно из них, Simple Queue Service, мы взяли за основу и разработали распределенную очередь для запуска в облаке Mail.ru. SQS это стандартный API для облаков, его широко используют многие компании, от BMW до NASA.

В статье описано, что такое распределенные очереди и зачем они могут понадобиться, какие в них есть особенности, и о том, какое у нас получилось распределенное решение на базе Tarantool.
Читать дальше →
Всего голосов 33: ↑33 и ↓0 +33
Просмотры 4.3K
Комментарии 12

Управляем кластером на Tarantool из командной строки

Блог компании VK Высокая производительность *Администрирование баз данных *Lua *Tarantool *
Tutorial


Два года назад мы уже рассказывали вам, что такое Cartridge и как с его помощью разрабатывать распределенные приложения. Это полноценный фреймворк, в который входит CLI-интерфейс, который сильно упрощает разработку и эксплуатацию приложений на Tarantool Cartridge.

Я расскажу вам, как можно использовать Cartridge CLI для эффективного использования ваших локальных приложений, и об интересных фичах самого CLI. Статья больше ориентирована на тех, кто уже использует Cartridge или хочет начать им пользоваться. Поехали!
Читать дальше →
Всего голосов 32: ↑28 и ↓4 +24
Просмотры 2.1K
Комментарии 10

Что не так с Asterisk Realtime и как с этим жить

API *Asterisk *Lua *Tarantool *

Не так давно я опубликовал пост, в комментариях к которому было высказано мнение, что у астериска есть некоторые проблемы с механизмом realtime. Так вот, на данный момент, вынужден согласиться с этим утверждением, более чем полностью. Как следствие, встал на путь разочарования asterisk'ом как платформой-"конструктором". Почему и как это произошло и при чём тут tarantool, а самое главное, что со всем этим можно сделать? Давайте разбираться под катом.

Читать далее
Всего голосов 6: ↑6 и ↓0 +6
Просмотры 4K
Комментарии 13

Разработка системы аутентификации на Java+Tarantool

Блог компании VK Java *Lua *Tarantool *
Tutorial
Системы аутентификации есть везде. Пока вы скучаете в лифте по пути с седьмого этажа на первый, можно успеть проверить баланс в приложении банка, поставить пару лайков в Instagram, а потом проверить почту. Это минимум три системы аутентификации.

Меня зовут Александр, я программист в отделе архитектуры и пресейла в Mail.ru Group. Я расскажу, как построить систему аутентификации на основе Tarantool и Java. Нам в пресейле очень часто приходится делать именно такие системы. Способов аутентификации очень много: по паролю, биометрическим данным, SMS и т.п. Для наглядности я покажу, как сделать аутентификацию по паролю.

Статья будет полезна тем, кто хочет разобраться в устройстве систем аутентификации. На доступном примере я покажу все основные части архитектуры, как они связаны между собой и как работают в целом.
Читать дальше →
Всего голосов 27: ↑27 и ↓0 +27
Просмотры 4.3K
Комментарии 5

Как я сократил код для нагрузочного тестирования в три раза

Блог компании VK Тестирование IT-систем *Go *Tarantool *


Главная концепция нагрузочного тестирования — автоматизировать все, что можно. Берёте инструмент, пишете конфиг и сценарий, запускаете имитацию реальной нагрузки. Чем меньше кода, тем лучше.

Автоматизировать нагрузочное тестирование не так сложно, как может показаться на первый взгляд. Для этого нужен правильный инструмент.

Я расскажу, почему мне не подошел Яндекс.Танк в связке с Pandora и как я в три раза сжал код своей утилиты тестирования без потери производительности.
Читать дальше →
Всего голосов 33: ↑30 и ↓3 +27
Просмотры 5.8K
Комментарии 6

Архитектура in-memory СУБД: 10 лет опыта в одной статье

Блог компании VK Высокая производительность *Администрирование баз данных *Tarantool *
image

База данных в оперативной памяти — понятие не новое. Но оно слишком плотно ассоциируется со словами «кэш» и «не персистентный». Сегодня я расскажу, почему это не обязательно так. Решения в памяти имеют гораздо более широкое поле применения и гораздо более высокий уровень надежности, чем кажется на первый взгляд.

В статье я рассуждаю об архитектурных принципах решений в оперативной памяти. Как можно взять лучшее от in-memory мира — производительность невероятного уровня — и не жертвовать достоинствами дисковых реляционных систем. В первую очередь, надежность — как можно быть уверенным в сохранности данных.

Этот рассказ сжимает 10 лет опыта работы с in-memory решениями в один текст. Порог входа максимально низкий. Чтобы получить пользу от прочтения, вам не нужно иметь столько же лет опыта, достаточно базового понимания IT.
Читать дальше →
Всего голосов 57: ↑57 и ↓0 +57
Просмотры 15K
Комментарии 18

Вклад авторов