Как стать автором
Обновить
2.38

Tarantool *

Tarantool — middleware for data

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

Современный клиент к NoSQL-базе данных

Время на прочтение9 мин
Количество просмотров3K


Интеграция через базу данных (БД) — один из распространенных видов интеграции. Но БД — тоже сервис, к которому также требуется подключение. Для пользователей эта процедура сводится к подключению коннекторов и изучению их API, но «под капотом» подобных клиентов может скрываться большая архитектура со сложной логикой взаимодействия. 
Читать дальше →
Всего голосов 8: ↑8 и ↓0+9
Комментарии0

Новости

TarantoolScript: статическая типизация в Lua-скриптах Tarantool

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров1.9K

Если вам когда-нибудь доводилось писать скрипты для Тарантула, то вы наверняка сможете понять мою боль. Тарантул - удивительный инструмент, который позволяет не только хранить относительно большие объёмы данных и обеспечивать поразительно быстрое выполнение операций CRUD над этими данными, но и предоставляет очень широкие возможности для обработки этих данных непосредственно в среде Тарантула. И под обработкой данных я имею ввиду не просто их валидацию и выполнение над ними каких-то математических операций, а почти весь спектр возможностей, предоставляемых языком Lua и ещё целую кучу полезных модулей, входящих в пакет поставки Тарантула или устанавливаемых из сторонних источников.

Для того чтобы написать, например, полноценный HTTP-сервер на Тарантуле (прошу не пинать меня за эту формулировку), нам нужно знать совсем немного - основы синтаксиса языка Lua и API основных модулей самого Тарантула. И вот если с Lua всё совсем просто - изучить этот язык за один вечер, я уверен, мало для кого окажется непосильной задачей - то вот с модулями Тарантула всё немного сложнее. Можно вдоль и поперёк проштудировать всю официальную документацию и уже непосредственно во время написания скрипта столкнуться с одной неприятной проблемой - писать относительно большие вещи для Тарантула жутко неудобно.

Читать далее
Всего голосов 6: ↑6 и ↓0+8
Комментарии6

От Cache до Middleware: эволюция Tarantool

Время на прочтение5 мин
Количество просмотров1.8K


Рассказываем, что такое Middleware, как мы прокачали Tarantool от Cache до Middleware и когда будет полезен Tarantool с новыми возможностями.
Читать дальше →
Всего голосов 14: ↑13 и ↓1+21
Комментарии0

Во что обойдется линеаризуемость в распределенной системе

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров6.2K


Всем привет, меня зовут Сергей Петренко, я программист в Tarantool. Сегодня мы посмотрим, с какими трудностями сталкивается клиент, когда вместо того чтобы общаться с системой, расположенной на одном инстансе, начинает общаться с распределенной системой. И разумеется, поговорим о том, как эти трудности преодолеть. Я расскажу, что такое линеаризуемость, как мы ее реализуем в Tarantool и как это делают другие СУБД. В завершение мы поговорим о накладных расходах от линеаризуемости.
Читать дальше →
Всего голосов 50: ↑49 и ↓1+59
Комментарии3

Истории

Тестирование менеджера транзакций

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров2.9K


Привет, Хабр! Меня зовут Георгий Лебедев, я учусь на 4-м курсе ФРКТ МФТИ и работаю в команде разработки ядра Тарантула. В этой статье я хочу поделиться методикой тестирования менеджера транзакций, которая применяется в Тарантуле.
Читать дальше →
Всего голосов 22: ↑21 и ↓1+24
Комментарии1

Exception Handling: сквозь мультивселенные интероперабельности

Время на прочтение10 мин
Количество просмотров2.4K


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

Меня зовут Максим Кокряшкин, я занимаюсь поддержкой и расширением функциональности форка LuaJIT, интегрированного в Tarantool. В этой статье мы обсудим, как интероперабельность исключений помогает упростить обработку ошибок на стыках разных языковых рантаймов, а также посмотрим, как можно реализовать интероперабельность стандартными механизмами обработки исключений.
Читать дальше →
Всего голосов 38: ↑38 и ↓0+38
Комментарии0

Tarantool 3.0

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров8.4K


Когда мы видим в сети сообщение о выходе новой версии того или иного продукта, это, как правило, скучно. Ченджлог описывает лишь перечень изменений, а вот зачем и для чего они, понятно не всегда.

В этой статье я попытаюсь рассказать о том новом, что появится в Tarantool 3.0, не простым перечислением изменений, а описывая проблемы, которые мы пытались решить. В таком ключе это может быть интересно и тем, кто не собирается устанавливать Tarantool, — просто с технической точки зрения.
Читать дальше →
Всего голосов 51: ↑48 и ↓3+52
Комментарии23

История одной Real-Time-рекомендательной системы: пример построения решения от нуля до реализации

Время на прочтение9 мин
Количество просмотров2.5K


Real-Time-рекомендательные системы — сложный с точки зрения реализации и поддержания продукт. Его разработка требует тщательной проработки архитектуры и этапов, качественной работы с данными и обеспечения возможности масштабирования решения. Причём большинство подобных задач приходится решать уже в процессе, с учётом реалий и возникающих подводных камней.
Читать дальше →
Всего голосов 17: ↑17 и ↓0+17
Комментарии0

Отказоустойчивая архитектура: почему Tarantool не падает?

Время на прочтение8 мин
Количество просмотров6.9K


Основная проблема в высоконагруженных приложениях — отказоустойчивость. Нагрузка с упавших узлов в кластере должна переключаться на живые. Это кажется несложной задачей, но на практике появляется много подводных камней. Мы с yngvar_antonsson потратили много времени на поддержку различных кластеров, построенных на Tarantool и наших кластерных фреймворках Cartridge и TDG, и сегодня расскажем вам, как обеспечивается отказоустойчивость в наших приложениях. Будет интересно всем, кто хочет подробнее узнать, как устроен фейловер в Cartridge, и тем, кто хочет узнать о нашем опыте создания автоматических фейловеров.
Читать дальше →
Всего голосов 29: ↑27 и ↓2+41
Комментарии0

Как я столкнулся с Tarantool-ом: разбор подводных камней на примере микросервисного pet-проекта

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров2.7K

Привет, Хабр! Меня зовут Сергей Скубач, я работаю в VK и разрабатываю облачное хранилище WorkDisk. Мы используем Tarantool в своём продукте, так как его разрабатывают и развивают наши коллеги. Я впервые столкнулся с Tarantool именно в VK, и для более глубокого понимания решил попробовать использовать его в своём pet-проекте.

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

Читать далее
Всего голосов 28: ↑28 и ↓0+28
Комментарии0

Tarantool: как избавиться от «зоопарка технологий» с помощью потоков событий

Время на прочтение14 мин
Количество просмотров5.1K


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

Меня зовут Иван Банников, я ведущий разработчик VK Tech. В этом материале я расскажу об основных предпосылках разрастания используемого стека, а также на примере IoT-платформы, которую мы поддерживали, поделюсь опытом избавления от «зоопарка технологий» в области обработки сообщений.
Читать дальше →
Всего голосов 37: ↑36 и ↓1+45
Комментарии0

Tarantella — распределённое key-value хранилище в рекламных технологиях VK

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров4.1K

Привет, Хабр! Меня зовут Виктор Лучиц, я руководитель группы backend-разработки в департаменте рекламных технологий VK. В этой статье я расскажу вам про Tarantella — наше key-value хранилище, которое мы используем в рекламных технологиях. 

Из материала вы узнаете о том, как устроен этот «секретный ингредиент», без которого наша реклама не была бы такой эффективной.

Читать далее
Всего голосов 39: ↑38 и ↓1+50
Комментарии6

Нагрузочный поединок между Tarantool 2.10 и Hazelcast 4.5.4

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров2K

В прошлый раз мы сравнили Tarantool с Redis, а в этой статье решили провести тесты с Hazelcast.

Так же, как в прошлой статье, мы рассматриваем вариант Tarantool как замены: берём типичные кейсы работы с Hazelcast и реализуем такие же механики на Tarantool, начиная от простых K-V операций и заканчивая вторичными ключами.

Читать далее
Всего голосов 31: ↑31 и ↓0+31
Комментарии6

Ближайшие события

Антиконференция X5 Future Night
Дата30 мая
Время11:00 – 23:00
Место
Онлайн
OTUS CONF: GameDev
Дата30 мая
Время19:00 – 20:30
Место
Онлайн
Конференция «IT IS CONF 2024»
Дата20 июня
Время09:00 – 19:00
Место
Екатеринбург
Summer Merge
Дата28 – 30 июня
Время11:00
Место
Ульяновская область

Как профилировать, когда perf видит не все

Время на прочтение11 мин
Количество просмотров5.3K


В современных системах интерпретаторы используются повсеместно. Для проверки на соответствие ожиданиям по производительности их необходимо профилировать. Но когда значительная часть логики исполняется встроенным интерпретатором, окинуть взглядом общую картину при профилировании становится крайне затруднительно, потому что существующие инструменты не способны отражать переходы между интерпретируемой и нативной частями системы.
Читать дальше →
Всего голосов 66: ↑66 и ↓0+66
Комментарии2

Как освоить Tarantool за 3 месяца и выжить: учимся на ошибках DevOps-инженера

Время на прочтение7 мин
Количество просмотров7.1K


Освоение нового инструмента и его внедрение в работающий проект — практически типовая задача для многих компаний. Более того, часто DevOps-инженерам и другим специалистам приходится изучать новый инструмент в сжатые сроки, в том числе когда компетенцию в команде надо нарабатывать с нуля. Поэтому сложности и ошибки — практически неотъемлемая часть обучения. 
Читать дальше →
Всего голосов 20: ↑17 и ↓3+26
Комментарии1

Tarantool: «серебряная пуля» для построения микросервисной архитектуры VK Teams

Время на прочтение8 мин
Количество просмотров11K


Основной многих проектов являются кастомные решения и инструменты — часто кажется, что так проще и быстрее. Но на практике при динамичном масштабировании проектов наличие крупных кастомных узлов начинает создавать трудности: требуется больше времени, ресурсов и дополнительных издержек. Поэтому с ростом проектов командам нередко разумнее пересматривать стек в пользу готовых решений.
Читать дальше →
Всего голосов 35: ↑35 и ↓0+35
Комментарии2

Расшифровка доклада: О чём я говорю, когда говорю о тестировании корректности работы компиляторов

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров1.8K

Привет, Хабр! Эта статья о том, как тестируют компиляторы. Она будет интересна разработчикам  и тестировщикам компиляторов, а также всем, кто тестирует сложные технологии. Разберём проблемы тестирования LuaJIT и подходы к решению: неструктурированный фаззинг, синтаксический, семантический, сравнительный фаззинги и тестирование оптимизаций. Статья написана на основе доклада Сергея Бронникова из Tarantool на конференции Highload.

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

Балансируем между консистентностью и доступностью в распределённой системе: опыт Tarantool

Время на прочтение13 мин
Количество просмотров3.4K

Поговорим сегодня про выбор, перед которым встают разработчики всех распределённых систем: обеспечивать ли консистентность данных или доступность системы при различных внешних условиях —  поломках, плановых отключениях узлов, — а также во время штатной эксплуатации. Теория нам даёт простые, но не всегда применимые на практике ответы: можно выбрать либо консистентность, либо доступность (теорема CAP), а когда проблем с сетью нет — то либо консистентность, либо низкие задержки (PACELC). За скобками остаётся вопрос о том, как делать этот выбор. Система как будто всегда должна быть CP или AP, а что происходит, если вдруг работающая CP-система должна начать вести себя как AP, или, наоборот, перейти обратно из AP в CP?

Читать далее
Всего голосов 21: ↑21 и ↓0+21
Комментарии6

Из SQL в NoSQL: меняем парадигму запросов

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров9.5K

Пользовательский опыт напрямую зависит от скорости выполнения запросов к данным. Мы привыкли, что SQL базы данных строят оптимальный план запроса за нас. В случае многих NoSQL баз данных, оптимизация запроса ложится на разработчика. Меня зовут Жора и вместе с @yngvar_antonsson мы провели много времени за аудитом запросов у наших заказчиков. Сегодня мы расскажем про перфоманс, оптимизации и про тяжелые запросы на примере Tarantool. Будет интересно всем, кто уже работает или только собирается работать с Tarantool, а также тем, кто строит кластерные системы поверх своих БД.

Читать далее
Всего голосов 10: ↑9 и ↓1+14
Комментарии3

Newbie Guide: разбираемся с MVCC на простых примерах

Время на прочтение12 мин
Количество просмотров4.1K


Изоляция транзакций в СУБД — важный механизм, который позволяет пользователю получить согласованное состояние данных и работать с ними, не допуская конфликтов и снижения производительности. Организовать изоляцию нужного уровня можно несколькими способами, один из которых — MVCC (Multiversion Concurrency Control, многоверсионное управление конкурентным доступом).
Читать дальше →
Всего голосов 25: ↑25 и ↓0+25
Комментарии2
1
23 ...