Рубрика «nosql» - 16

image

Мы в PushAll обрабатываем несколько тысяч запросов в секунду для получения статистики доставки и открытия уведомлений и для передачи контента оповещений. Обычная БД вроде MySQL не справляется с таким потоком запросов и не может так быстро отвечать.

Стараясь все больше операций перенести на быстрые NoSQL хранилища вроде Redis, мы хотим знать как эффективнее его использовать и не будет ли у нас проблем с большим количеством соединений.
Также для работы мы используем форки PHP и нам было интересно, а как поведет себя Redis, если мы будем делать несколько тысяч соединений в одновременно в нескольких потоках. Мы решили поделиться с сообществом нашими тестами.
Читать полностью »

Есть несколько алгоритмов хранения деревьев в mysql, и мне кажется, что это в корне неправильно, так как реляционная база данных не предназначена для этого, а представление линейных структур данных в древовидную — один большой костыль в коде и понижение надёжности и скорости приложения. Как я задумался об использование NoSQL в частности mongoDB? Всё просто, меня на собеседование спросили:

Как построить дерево?

Я ответил:

Берём mongodb и документ с деревом из неё

Мне так и не перезвонили, но я не расстраиваюсь за то теперь я изучаю mongoDB и не люблю Mysql(к счастью или к сожалению я не знаю). В общем, разберём как всё это работает? На примере дерева комментариев написанном на php.
Читать полностью »

Уважаемые коллеги, у меня для вас отличные новости!
image
Открытая NoSQL-база данных Tarantool, которую разрабатывает компания Mail.ru была сертифицирована для облачной плафтормы Azure и опубликована в Azure Marketplace для удобства и скорости развертывания.

Tarantool – это высокопроизводительные сервер приложений на базе Lua интегрированный с NoSQL СУБД. База данных разрабатывается в виде открытого проекта под лицензией BSD компанией Mail.ru и сообществом разработчиков.

Крупнейшим кейсом использования Tarantool служит сама компаний Mail.ru, которая с поомщью этой БД обеспечивает работу 30 миллионов пользователей и 25 миллионов email в сутки. Другими пользователями Tarantool являются Badoo, Avito, Qiwi, Wallarm и так далее.

Подробнее о Tarantool вы можете узнать на официальном сайте http://tarantool.org/ и странице на Facebook https://www.facebook.com/TarantoolDatabase/.
Читать полностью »

Многопользовательский онлайн-шутер на WebGL и asyncio, часть вторая - 1
В этом материале постарался описать создание браузерного 3D-шутера, начиная от импорта симпатичных моделей танков на сцену и заканчивая синхронизацией игроков и ботов между собой с помощью websocket и asyncio и балансировкой их по комнатам.

Введение
1. Структура игры
2. Импорт моделей и blender
3. Подгрузка моделей в игре с babylon.js и сами модели
4. Передвижения, миникарта и звуки игры в babylon.js
5. Вебсокеты и синхронизация игры
6. Игроки и их координация
7. Балансировка игроков по комнатам и объектный питон
8. Asyncio и генерация поведения бота
9. Nginx и проксирование сокетов
10. Асинхронное кэширование через memcache
11. Послесловие и RoadMap

Всех кому интересна тема асинхронных приложений в Python3, WebGL и просто игр, прошу под кат.
Читать полностью »

Отчёт с Tarantool Meetup 28 января - 1

28 января в офисе Mail.Ru Group состоялся Tarantool Meetup, на котором были рассмотрены преимущества и особенности Tarantool, а также рассказано об опыте использования этой СУБД и планах её развития. Под катом вы сможете найти видеозаписи и презентации с этих выступлений.
Читать полностью »

MonCaché — реализация MongoDB API на основе InterSystems Caché - 1

ИДЕЯ

Идея проекта — попробовать реализовать базовые функции MongoDB API для поиска, сохранения, обновления и удаления документов так, чтобы можно было бы не меняя клиентский код вместо MongoDB использовать InterSystems Caché.

МОТИВАЦИЯ

Возможно, если взять интерфейс MongoDB и в качестве хранилища данных использовать InterSystems Caché, то можно получить некоторый выигрыш в производительности.

Ну, а почему бы и нет?! ¯_(ツ)_/¯
Читать полностью »

Форсаж под нагрузкой на Symfony + HHVM + MongoDB + CouchDB + Varnish - 1

Сегодня хотим рассказать о том, как строили систему, к которой сейчас обращается более 1 млн. уникальных посетителей в день (без учёта запросов к API), о тонкостях архитектуры, а также о тех граблях и подводных камнях, с которыми пришлось столкнуться. Поехали...Читать полностью »

Chakra — это JavaScript-движок, используемый в Microsoft Edge и универсальных Windows-приложениях. Начиная с Windows 8.1 и Windows Server 2012 R2, в Chakra появился новый набор API для встраивания (JavaScript Runtime, или JSRT API), позволяющий применять Chakra за рамками упомянутых клиентских сценариев.

Azure DocumentDB стал одним из первых сервисов со встроенной Chakra, используемой для нативной реализации скриптовых возможностей в движке баз данных. С недавним анонсом открытия ключевых компонетов Chakra (ChakraCore) на GitHub мы также рады поделиться нашим опытом и планами на будущее использование Chakra.
Читать полностью »

Рассказ будет про один контентный проект, в котором мне пришлось переделать архитектуру. Ранее была реализована классическая Лампа-схема (Linux-Apache-MySQL-PHP). Но кол-во посетителей прибавлялось и прибавлялось, уже стало подходить к 1М хитов и сервер БД переставал справляться. Первым делом, я предложил докупить еще один серак, но в данном сегменте конвертация в партнерских программах довольно низкая, так что, руководство проекта немного пожмотилось.

Если, интересно, как мне пришлось изменить архитектуру и при этом еще прикрутить систему ротации и рейтингов, то добро пожаловать под кат.
Читать полностью »

image

На сегодняшний день две мои самые любимые темы — SQLite и key-value базы данных. И в этот раз я пишу сразу про обе: этот пост посвящён Python-обёртке для используемого в SQLite 4 key-value хранилища на основе LSM.

Я не слишком внимательно отслеживаю релизы SQLite, но версия 3.8.11 привлекла моё внимание, поскольку в её описании заявлено серьёзное увеличение производительности по сравнению с 3.8.0. В сопроводительной информации я наткнулся на упоминание о новом экспериментальном расширении для полнотекстового поиска (о котором писал когда-то), и потому мне стало интересно, какая складывается ситуация с SQLite 4.

Изучив доступную информацию, я обратил внимание, что одной из задач разработчиков было обеспечить в новых версиях интерфейс для подключаемых движков баз данных. На момент написания этого поста в SQLite 4 уже было два встроенных бэкенда, один из которых — key-value хранилище на основе LSM. В последние пару месяцев мне доводилось поиграться с Cython, пока я писал Python-обёртку для встроенных k-v хранилищ UnQLite и Vedis. И я подумал, что было бы неплохо применить Cython для создания интерфейса движка БД на основе LSM, используемого в SQLite 4.

Разобравшись с исходным кодом SQLite 4 и крохотным заголовочным файлом LSM, я написал python-lsm-db (документация).
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js