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

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 (документация).
Читать полностью »

На Хабре не утихают споры о том, какие базы данных лучше и круче, дискуссии о перспективах SQL и NoSQL. Я не удержался и решил порассуждать о том, где могут быть полезны именно графовые БД.

Графовые базы данных: святой Грааль для разработчиков? - 1


Прежде чем начать, давайте задумаемся, какая информация имеется у нас сегодня на повестке дня? Это уже не просто данные – это весьма непредсказуемая структура, которая со временем может превратиться либо в BigData, либо в сложную семантическую сеть, и часто разработчик не может заранее сказать, какой она будет. Так как же выбрать базу данных – или хотя бы ее архитектуру, чтобы создать действительно быстрое и эффективно работающее приложение?
Читать полностью »

Незаслуженно обошли вниманием появление SQL JOIN операций в проекте на основе Elasticsearch — Crate.io
SQL JOIN, Elasticsearch и установка из binary repository manager - 1
Читать полностью »

Незаслуженно обошли вниманием появление SQL JOIN операций в проекте на основе Elasticsearch

JOIN the dark side of the SQL - 1
Читать полностью »

Приглашаем на Tarantool meetup 28 января - 1

28 января 2016 года в московском офисе Mail.Ru Group пройдёт вторая встреча Tarantool meetup. Если кто-то ещё не знает: Tarantool — это NoSQL In-Memory СУБД с открытым исходным кодом, создающаяся для обеспечения максимально возможной производительности. На втором митапе мы рассмотрим главные преимущества и особенности Tarantool, расскажем о своём опыте использования этого продукта и планах на будущее. В первую очередь эта встреча будет интересна разработчикам, Unix-сисадминам и прочим специалистам, так или иначе работающим с базами данных. Программу встречи смотрите под катом.
Читать полностью »

Как сэкономить миллион долларов с помощью Tarantool - 1

Для чего используются базы данных, ведь есть старые добрые файлы? Чем они хуже базы данных или чем база данных лучше файлов? БД — более структурированное хранилище. Она позволяет делать транзакции, запросы и так далее. Самый простой случай: есть сервер с базой данных и несколько приложений, которые делают запросы к серверу. База данных отвечает, меняет что-то внутри себя, и всё хорошо ровно до того момента, пока нагрузка на неё не вырастает настолько, что база данных перестаёт справляться.

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

Если база не держит нагрузку на запись, то шарды можно добавлять до бесконечности. Шард устроен сложнее, чем реплика, потому что нужно как-то распределить данные по таблицам или внутри таблицы, по хэшу, по range — есть множество разных вариантов. Таким образом, добавляя реплики и шарды, вы можете делить любую нагрузку на базу данных. Казалось бы, больше желать нечего, о чём дальше говорить?
Читать полностью »


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