Pull to refresh
25
0
Игорь Золотарев @yngvar_antonsson

User

Send message

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

Reading time9 min
Views3.3K


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

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

Level of difficultyMedium
Reading time12 min
Views6.2K


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

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

Level of difficultyMedium
Reading time6 min
Views2.9K


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

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

Reading time10 min
Views2.4K


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

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

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

Reading time9 min
Views2.5K


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

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

Reading time14 min
Views5.1K


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

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

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

Level of difficultyMedium
Reading time8 min
Views4.1K

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

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

Читать далее
Total votes 39: ↑38 and ↓1+50
Comments6

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

Reading time11 min
Views5.3K


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

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

Reading time7 min
Views7.1K


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

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

Reading time13 min
Views3.4K

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

Читать далее
Total votes 21: ↑21 and ↓0+21
Comments6

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

Level of difficultyEasy
Reading time10 min
Views9.5K

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

Читать далее
Total votes 10: ↑9 and ↓1+14
Comments3

Трассировка стека вызовов в среде кооперативной многозадачности: стектрейсы, файберы, два ствола

Level of difficultyMedium
Reading time8 min
Views2.1K

Персонаж с картинки — Трейсер из игры Overwatch

Привет, Хабр! Для отладки и анализа производительности часто используется трассировка (сбор) стека вызовов aka стектрейс. И если для трассировки стека различных потоков выполнения есть системные средства, то работа с асинхронными языками и фреймворками предполагает наличие отдельного контекста выполнения и стека вызовов для каждой единицы исполнения. В этой статье мы поговорим о файберах. Они прозрачны с точки зрения операционной системы, что влечет за собой определенные сложности. Если трассировка стека вызовов активного файбера тривиальна (можно представить, что кооперативной многозадачности вообще нет), то как собирать стектрейс с неактивных файберов?
Читать дальше →
Total votes 24: ↑24 and ↓0+24
Comments11

Как мы создали тренинги по Tarantool

Reading time9 min
Views1.6K

Привет! Меня зовут Павел Лапаев, я работаю в VK, а точнее VK > B2B > Tarantool. Это платформа in-memory-вычислений, крутая и комплексная технология. Разобраться в ней с наскока не получится, так что с 2020 года мы решили вплотную заняться обучением внешних пользователей. 

Я расскажу о двух годах нашего пути: от сбора единомышленников и формирования материалов для тренингов до ввода в эксплуатацию, то есть до первого проведения обучения за деньги. Bonus points — нам стало в разы проще адаптировать новичков и мы написали несколько классных фундаментальных статей.

Этот опыт будет полезен тем, кто хочет организовать обучение комплексным техническим вещам внутри или за пределами компании.

Читать далее
Total votes 39: ↑39 and ↓0+39
Comments0

Как объединить устройства с разными протоколами передачи данных на одной IoT-платформе

Level of difficultyMedium
Reading time31 min
Views4.6K

Привет! Меня зовут Иван Банников, я ведущий разработчик VK Tech. В одном из проектов я создавал и развивал IoT-платформу и хочу теперь поделиться своим опытом. Архитектура IoT-платформ в какой-то мере похожа на архитектуру любой другой распределенной системы. Однако технология интернета вещей подразумевает взаимодействие не только в виртуальном, но и в физическом мире. Это влечет за собой ряд нестандартных для классических программных продуктов сложностей и нюансов. 

В этой статье мы поговорим о том, что представляют из себя современные IoT-платформы, что такое цифровые двойники и зачем они применяются, а также рассмотрим главные сложности и способы решения проблем при разработке IoT-решений. 
Читать дальше →
Total votes 35: ↑33 and ↓2+46
Comments0

Репликация между SQL- и NoSQL-базами данных: туда и обратно

Level of difficultyMedium
Reading time9 min
Views5.6K


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

Меня зовут Александр Горякин, я разработчик высоконагруженных систем хранения данных в пресейле Tarantool. Не так давно наша команда столкнулась с необходимостью репликации между SQL- и NoSQL-базами данных и успешно решила эту задачу. Я расскажу, что нам нужно было от репликации, какие механизмы и инструменты мы рассматривали, с какими проблемами столкнулись и что получили в итоге.

Статья написана по моему выступлению на HighLoad++ 2022. Вы можете посмотреть его здесь.
Читать дальше →
Total votes 30: ↑30 and ↓0+30
Comments8

Повышаем живучесть Raft в реальных условиях

Reading time14 min
Views4.2K
Популярность алгоритма Raft в последние годы растёт. У него достаточно ясное описание, а реализации появляются во всё большем количестве проектов. На бумаге, будь то математика или рекламные статьи, выглядит хорошо. Но на практике не все обещания Raft можно реализовать без дополнительных решений.

Меня зовут Сергей Останевич. Я архитектор репликации в проекте Tarantool, платформе in-memory-вычислений с гибкой схемой данных для эффективного создания высоконагруженных приложений. Над материалом этой статьи мы работали вместе с Бориславом Демидовым. Мы поделимся нашим опытом реализации Raft, расскажем о поддержке работоспособности кластера Tarantool в условиях частичной связности и приведём реальные примеры того, как чистый Raft не справился с задачей.


Читать дальше →
Total votes 42: ↑42 and ↓0+42
Comments4

Разбор задачи «Распознавание дорожных знаков на кадрах с автомобильного видеорегистратора», Цифровой Прорыв

Reading time10 min
Views6.2K

Привет, Хабр!

Этой статьей я открываю цикл материалов по разбору задач Всероссийского чемпионата "Цифровой Прорыв", связанных с Computer Vision. Решение, предлагаемое в статье, позволяет получить место в топ-5 лидерборда. Особенность данного подхода в том, что мы не будем использовать данные для обучения, предлагаемые организаторами соревнования. В конце даются советы по улучшения решения, а также идеи, которые могут привести к первому месту.

Читать далее
Total votes 13: ↑13 and ↓0+13
Comments5

Создаём своё объектное хранилище за чаc

Reading time17 min
Views7.7K


Привет! Меня зовут Артем Гаврилов и я работаю в Tarantool. Сегодня я расскажу, как быстро создать объектное хранилище на основе платформы in-memory вычислений Tarantool и распределённой файловой системы IPFS (InterPlanetary File System).


Мы рассмотрим пример шардирования стороннего приложения с помощью Tarantool и сделаем MVP объектного хранилища с отказоустойчивостью на уровне ЦОДа, в то время как более простые решения отказоустойчивы только на уровне нескольких серверов.


Тем, кто знаком с IPFS, вероятно, будет интересно читать начиная с раздела «С чем мы столкнёмся».

Читать дальше →
Total votes 38: ↑38 and ↓0+38
Comments3

Сказ о том, как мы Tarantool Kubernetes Operator писали

Reading time12 min
Views2.9K

Kubernetes — это быстроразвивающийся opensource проект, позволяющий управлять контейнерами Linux как единой системой. Мы с лёгкостью можем запускать сложные системы, используя при этом yaml-конфигурации. Для управления системой применяются декларативные ресурсы. Иерархическая система ресурсов позволяет создавать большие системы с минимумом конфигов. Именно поэтому всё больше и больше людей переносит свою инфраструктуру внутрь Kubernetes, причём не только stateless-, но и statefull-приложения. Так зачем отказывать себе в удобстве и не использовать Tarantool внутри Kubernetes?

Привет, меня зовут Костя, и сегодня я расскажу про то, с чем мы столкнулись при разработке Tarantool Kubernetes Operator, Enterprise для Kubernetes / Openshift. Кому интересно — добро пожаловать под кат.

Читать далее
Total votes 43: ↑43 and ↓0+43
Comments2

Raft (не)всемогущий: какие надстройки повышают надёжность алгоритма

Reading time12 min
Views6.9K

Меня зовут Сергей Петренко, вот уже четыре года я работаю над репликацией в Tarantool, и сегодня хочу рассказать про слабые места алгоритма Raft и способы их преодоления. Эта статья — вольный пересказ нашего с Борисом Степаненко доклада на Hydra 2022. Если читатель не знаком с Raft, то предлагаю ознакомиться с моей статьёй о нём.

Читать далее
Total votes 61: ↑61 and ↓0+61
Comments8

Information

Rating
Does not participate
Location
Тбилиси, Грузия, Грузия
Works in
Date of birth
Registered
Activity