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

Аспекты учета и поиска геоинформационных объектов с задействованием MongoDB

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

Онлайн-курс"OTUS.NoSQL".

Проект: https://github.com/BorisPlus/mongodb_geo

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

Шардинг, от которого невозможно отказаться

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

А не пора ли нам шардить коллекции?
Не-е-е:


  • у нас нет времени, мы пилим фичи!
  • CPU занят всего на 80% на 64 ядерной виртуалке!
  • данных всего 2Tb!
  • наш ежедневный бекап идет как раз 24 часа!

В принципе, для большинства проектов вcё оправдано. Это может быть еще прототип или круг пользователей ограничен… Да и не факт, что проект вообще выстрелит.
Откладывать можно сколько угодно, но если проект не просто жив, а еще и растет, то до шардинга он доберется. Одна беда, обычно, бизнес логика не готова к таким "внезапным" вызовам.
А вы закладывали возможность шардинга при проектировании коллекций?


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


Сначала, мы будем учится жить со слонами.
Потом, мы их победим, но не сможем вернуться назад.

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

Ровняем шарды

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

"Размышления без практики приводят к заблуждению, практика без размышления приводит к затруднению."


Мы ведём войну с индивидуальностью у шардов в кластере MongoDB. Это продолжение статьи Шардинг от которого невозможно отказаться, а это значит, что наступила пора конкретики.


Как я и обещал, здесь мы рассмотрим подробнее:


  • настройку процесса выравнивания размера шардов
  • расчет поправок для коррекции границ
  • мониторинг распределения данных в коллекциях
Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии2

Эффективное моделирование данных и проектирование схем в Hackolade и MongoDB

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

Разработчики находятся в постоянном поиске новых способов быстрой модернизации приложений, чтобы оперативно подстраиваться под меняющиеся потребности клиентов. Один из таких способов — новые динамические схемы в MongoDB. Это мощный и гибкий инструмент, который позволяет хранить данные в JSON-документах вместо реляционных таблиц. В частности, разработчикам нравится гибкость и безсхемная природа JSON-документов.

Но по мере усложнения корпоративных приложений приходится структурировать базы данных таким образом, чтобы они повышали эффективность решения и продуктивность разработчиков, попутно снижая общую стоимость владения приложением. Для этого требуется немало мастерства. Для крупных предприятий и государственных учреждений лучшим решением будут современные приложения на базе MongoDB Atlas, но при этом им нужно обеспечить эффективное управление данными. Здесь на помощь придет инструмент моделирования данных, разработанный специально для MongoDB.

Это Hackolade. Вот уже несколько десятилетий для визуального представления структуры данных реляционных БД используются ER-диаграммы. Изначально они предназначались только для плоских структур данных. Hackolade, сертифицированный технологический партнер MongoDB, предлагает расширенные ER-диаграммы, которые позволяют адаптировать представление иерархической структуры JSON с вложенными объектами и массивами. Hackolade — это первое решение для моделирования данных и проектирования схем для баз данных NoSQL и REST API.

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

Atlas как сервис

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

Многие наши клиенты предоставляют своим командам разработчиков доступ к MongoDB как к сервису. Разработчики могут запросить экземпляр базы данных MongoDB и получить строку для подключения и учетные данные за считаные минуты. Переходя на использование MongoDB Atlas, наши клиенты заинтересованы и в том, чтобы дать своим разработчикам соответствующий уровень обслуживания.

В Atlas есть очень мощный уровень управления для предоставления кластеров. Однако в крупных организациях, где работают тысячи разработчиков, не всегда целесообразно предоставлять такому количеству людей прямой доступ к этому интерфейсу. Цель этой статьи — показать, как можно использовать API-интерфейсы Atlas для предоставления доступа к MongoDB как к сервису, когда MongoDB работает под управлением Atlas.

В частности, мы продемонстрируем способ создания интерфейса, предлагающего разработчикам набор вариантов для создания экземпляра базы данных MongoDB. Чтобы упростить себе задачу, рассмотрим, как предоставить разработчикам набор вариантов памяти и хранилища для настройки кластера. Прочие параметры, например выбор провайдера облачных услуг и региона, мы рассматривать не будем. Мы также расскажем о том, как добавлять метки к кластерам Atlas, так как эта функция не поддерживается в пользовательском интерфейсе Atlas. Для примера мы добавили метку для описания кластера.

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

Иерархия потребностей по Маслоу при разработке документации

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

В 1943 году психолог Абрахам Маслоу опубликовал свою знаменитую работу, в которой выделил пять категорий потребностей, мотивирующих человека: физиологические потребности, потребность в безопасности, потребность в принадлежности и любви, потребность в уважении и потребность в самоактуализации.

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

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

Продолжаем знакомство с APIM Gravitee

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

Всем привет! Меня всё ещё зовут Антон. В предыдущей  статье я провел небольшой обзор APIM Gravitee и в целом систем типа API Management. В этой статье я расскажу, как поднять ознакомительный стенд APIM Gravitee (https://www.gravitee.io), рассмотрим архитектуру системы, содержимое docker compose file, добавим некоторые параметры, запустим APIM Gravitee и сделаем первую API. Статья немного погружает в технические аспекты и может быть полезна администраторам и инженерам, чтобы начать разбираться в системе.

Читать далее
Рейтинг0
Комментарии4

Вышел стабильный релиз MongoDB 1.6

Время на прочтение1 мин
Количество просмотров1.1K
Почти в срок, команда 10gen выпустила новый стабильный релиз NoSQL базы данных MongoDB.

Из новинок хочу отметить такие заявленные возможности:

* Авто шардинг — теперь можно создавать кластеры для большого количества данных с «размазыванием» данных по серверам кластера
* Replica Sets — позволит создавать кластеры с быстрой репликацией и отказоустойчивостью
* Оператор $or — если раньше приходилось писать запрос с использованием JavaScript, то сейчас операции OR работают как стандартный запрос
* До 64 индексов на коллекцию
* Оператор $slice — очень удобная штука, можно выбирать первые 5 штук записей или 5 последних, например.
* Поддержка UNIX сокетов и IPv6
* Улучшена поддержка сервиса для Windows

Скачать можно на странице загрузок

Release Notes
Всего голосов 49: ↑45 и ↓4+41
Комментарии17

Getting Started with MongoDB and PHP

Время на прочтение18 мин
Количество просмотров62K
Generation Next
За последний год произошла небольшая революция в мире СУБД, связанная с появлением безсхемных (безструктурных) СУБД таких как Apache CouchDB. В этих базах данных используется другой подход нежели в реляционных БД. Они достаточно быстро становятся популярны среди Web-разрабочиков из-за своей гибкости, простоты и легкой интеграции с современными технологиями такими как JSON.
В данной статье изложен краткий обзор MongoDB, одной из новых поколений безсхемных СУБД, которая получила большое внимание разработчиков.
Let's get started!
Всего голосов 105: ↑96 и ↓9+87
Комментарии75

Google Wave отдают народу в готовом виде

Время на прочтение2 мин
Количество просмотров3.5K
Команда разработчиков Google Wave приняла решение запустить open source проект на базе Google Wave, кроме тех 200k строк кода, которые уже открыты (см. waveprotocol.org). Новый проект — более чётко скомпонованное решение, фактически, уже готовая система.

Проект называется Wave in a Box и включает в себя следующее:

* пакет приложений, включая сервер и клиенты с поддержкой структурированных коммуникаций в реальном времени по образцу системы Google Wave;
* быстрая и полнофункциональная wave-панель для веб-клиента с полной поддержкой тредовых чатов;
* стабильное хранилище данных и реализация поиска для сервера (сделано на стороннем коде для внедрения MongoDB)
* усовершенствованные клиент-серверные протоколы;
* поддержка API для гаджетов, роботов и данных;
* поддержка импорта wave-данных с wave.google.com;
* возможность объединения различных инстансов Wave in a Box, с некоторой дополнительной конфигурацией.
Читать дальше →
Всего голосов 129: ↑121 и ↓8+113
Комментарии47

Масштабируем до сотен миллионов запросов: что работает, а что нет

Время на прочтение1 мин
Количество просмотров2.8K
Прекрасная тридцатиминутная история (на английском) от Джеймса Голика — CTO американской бдсм-соцсети выдерживающей 180 000 000 реквестов в месяц, при среднем времени отдачи ~200 мс, имея шесть серверов. В двух словах — смотрите тэги.

Всего голосов 35: ↑26 и ↓9+17
Комментарии31

Умное удаление кеша (php 5 + Mongodb + memcached)

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

Предисловие


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

Для себя я решил кешировать только результаты запросов к бд, т.к., имхо, загружать кеш огромными (или не очень) html блоками — в некотором роде расточительство ресурсов. (Это утверждение скорее всего справедливо только если вы не используете шаблонизатор). Ну и конечно же в качестве службы кеширования использую всем известный memcached.
Теперь давайте посмотрим — какие проблемы нас ждут при таком кешировании.
А проблема то всего одна, но зато не самая лицеприятная — поддерживание кеша всегда в актуальном состоянии.

Под катом — мое решение проблемы, позволяющее кешу жить вечно (если конечно он актуален и у вас не закончилась оперативка).
Читать дальше →
Всего голосов 13: ↑9 и ↓4+5
Комментарии19

Точка сбора NoSQL

Время на прочтение1 мин
Количество просмотров2K
Приветствую!

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

Хабраюзеров, писавших на эту тему, я прошу переносить свои топики. Блог понемногу наполняется и ждет ваших новых интересных статей — MongoDB, CouchDB, Cassandra, Redis, Cache — все, что угодно.

Добро пожаловать!
Всего голосов 63: ↑58 и ↓5+53
Комментарии45

Celery — распределенная очередь заданий

Время на прочтение3 мин
Количество просмотров84K
На этот раз мы решили рассказать о замечательном продукте, который мы используем в нашей работе. Речь пойдет о Celery — «distributed task queue». Это распределенная асинхронная очередь заданий, которая обладает широким функционалом. В нашем конструкторе сайтов нам часто приходиться запускать асинхронные с точки зрения ответа пользователю задачи. На хабре, к сожалению, не много информации по данному продукту, а он заслуживает отдельного упоминания, это мы и хотим исправить.

Итак, что же умеет Celery:

  • Выполнять задания асинхронно или синхронно
  • Выполнять периодические задания(умная замена crond)
  • Выполнять отложенные задания
  • Распределенное выполнение (может быть запущен на N серверах)
  • В пределах одного worker'а возможно конкурентное выполнение нескольких задач(одновременно)
  • Выполнять задание повторно, если вылез exception
  • Ограничивать количество заданий в единицу времени (rate limit, для задания или глобально)
  • Routing заданий (какому worker'у что делать)
  • Несложно мониторить выполнение заданий
  • Выполнять подзадания
  • Присылать отчеты об exception'ах на email
  • Проверять выполнилось ли задание (удобно для построения Ajax приложений, где юзер ждет факта завершения)

Заинтересовало? Просим под кат.
Читать дальше →
Всего голосов 10: ↑9 и ↓1+8
Комментарии27

F3: маленький PHP-фреймворк с огромными возможностями

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


Хочу представить вашему вниманию легковесный PHP-фреймворк, на который я недавно наткнулся и который сразу же полюбил.

Fat-Free чем-то похож на известный Ruby-фреймворк Sinatra. Автор Fat-Free помешан на минимализме и чистоте кода, что положительно отразилось на этом простом каркасе для разработки самых разнообразных приложений.

Fat-Free состоит из одного файла и весит всего 55KB. При этом фреймворк обладает таким функционалом: специфический и довольно удобный шаблонизатор, гибкое кеширование, автоматическая защита от спама, интегрированные средства для юнит тестов, профайлер кода.

Он настолько маленький и быстрый, что даже может использоваться для контроля траффика Web-сервера.

Это, также, единственный фреймворк, который защищает Ваше приложение от хотлинкинга и DoS атак.
Читать дальше →
Всего голосов 172: ↑152 и ↓20+132
Комментарии102

MongoDB и C# driver от 10gen, неочевидные моменты

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

Под катом частичная загрузка объектов, поиск объекта по элементу вложенного в него массива и немного идентификаторов. Вещи, которые так или иначе отняли у меня время на расследование как это работает, а иногда и на копание в исходных кодах драйвера при использовании MongoDB в реальном проекте.
Читать дальше →
Всего голосов 36: ↑27 и ↓9+18
Комментарии20

64-битные целые в MongoDB

Время на прочтение7 мин
Количество просмотров6.7K
В своем проекте на PHP пришлось столкнуться с необходимостью хранения в базе 64-битных целых данных. Нашел только одну статью по теме, зато очень подробную (местами даже слишком) и объясняющую все тонкости. Решил опубликовать перевод на Хабре, на случай, если кто-нибудь столкнется с аналогичной проблемой.

Интересно? Прошу под кат...
Всего голосов 41: ↑39 и ↓2+37
Комментарии24

Конференция по Mongo в Москве — 16 мая

Время на прочтение2 мин
Количество просмотров799
Добрый день!



Я хотел бы рассказать о грядущей конференции Mongo DB у нас на Цифрябре. Так как официальные объявления вряд ли кого-то интересуют, я напишу несколько вещей, которых нет на офсайте, но которые могут быть интересны публике.
Читать дальше →
Всего голосов 39: ↑36 и ↓3+33
Комментарии12

Morphia — легкий ORM для MongoDB, управляемый аннотациями

Время на прочтение3 мин
Количество просмотров16K
Читая ежедневную порцию постов из своей подборки Google Reader наткнулся на пост про ORM для MongoDB с манящим названием «Morphia». Ниже вы найдете компоновку материалов из его документации, претендующую на звание «очень краткий обзор».

  1. Morphia очень просто использовать. Это легкий и быстрый фреймворк
  2. Поддерживает как аннотированные POJO объекты, так и DAO подход
  3. Вся конфигурация задается аннотациями, XML файлы не используются
  4. Поддерживается интерфейс расширений (в настоящий момент во фреймворк встроены валидация (jsr330) и поддержка SLF4J для протоколирования
  5. Отлично работает с Google Guice, Spring и другими DI фреймворками
  6. Содержит большое количество точек расширения
  7. Поддерживает GWT

Читать дальше →
Всего голосов 32: ↑31 и ↓1+30
Комментарии51

Mongo Moscow

Время на прочтение1 мин
Количество просмотров674
image
16 мая в центре Digital October состоится Mongo Moscow – конференция, посвященная системе управления нереляционными базами данных с открытым исходным кодом MongoDB.

На конференции прозвучат доклады специалистов из компаний 10gen, КРОК и Yandex; речь пойдет о разработке схем БД, индексировании, администрировании, репликации, шардинге и многом другом.

Мероприятие пройдет в центре Digital October при поддержке компании 10gen – владельца и разработчика MongoDB.

Прямую трансляцию можно посмотреть на сайте: www.digitaloctober.ru

UPDATE: Прямая трансляция началась
Всего голосов 26: ↑24 и ↓2+22
Комментарии42