The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Новая версия NoSQL базы данных OrientDB 1.2

11.10.2012 19:43

Представлен релиз системы управления базами данных OrientDB 1.2, которая объединяет в себе возможности документо-ориентированной и графо-ориентированной БД. Даже при работе с документ-ориентированными данными взаимодействие между документами обрабатывается как в графо-ориентированной БД с определением прямых связей между записями. При этом, можно в считанные миллисекунды пройти по цепочке содержимого деревьев и графов, как целиком так и частями. Дополнительно поддерживается интерфейс объектно-ориентированной БД, который работает поверх документо-ориентированного слоя. Код OrientDB написан на языке Java и распространяется под лицензией Apache.

OrientDB отличается высокой скоростью работы, на обычном оборудовании позволяя сохранять до 150 000 записей в секунду. При тестировании производительности, один сервер с OrientDB оказался способен заменить собой 125 серверов MySQL. Распределённая сеть серверов способна обеспечить хранение до 9.223.372.036 миллиардов записей и 19.807.040.628.566.084 Тб данных. Оперирующий запросами ключ/значение кластер OrientDB может состоять из тысяч узлов, используя для организации единого хранилища алгоритм распределённой хэш-таблицы (DHT). Для непосредственного хранения данных используется собственный алгоритм RB+Tree, сочетающий в себе особенности Red-Black Tree и B+Tree, что позволяет добиться вдвое меньшего потребления памяти при сохранении скорости Red-Black Tree за счёт балансировки операций добавления и обновления данных.

Среди добавленных в OrientDB 1.2 улучшений:

  • Поддержка функций, выполняемых на стороне сервера (аналог хранимых процедур). Для написания серверных функций предлагается использовать язык JavaScript;
  • Ограничение доступа на уровне записей, что позволяет разделить граф на части, каждая из которых имеет свой уровень доступа с разными правами на создание, удаление, чтение и обновление записей;
  • В систему профилирования добавлена поддержка генерации снапшотов;
  • JMX оформлен в виде плагина, который не устанавливается по умолчанию;
  • Реализована поддержка автоматического перестроения индекса схемы данных в процессе перезапуска после краха или экстренного завершения работы;
  • В реализацию SQL добавлены: команда EXPLAIN для профилирования выражений; новое ключевое LET для установки контекстных переменных; поддержка указания подзапросов в конструкции CREATE EDGE;
  • В объектно-ориентированном интерфейсе JPA добавлена поддержка настройки правил именования объектов;
  • Поддержка абстрактных классов;
  • Для ускорения запросов обеспечена поддержка частичной передачи полей;
  • Возможность автоматического создания резервных копий в заданные моменты времени.

Основные особенности OrientDB:

  • Полная поддержка ACID транзакций;
  • Поддержка подмножества языка SQL для выполнения запросов c использованием конструкции SELECT (OrientDB не является реляционной БД, поэтому в полной мере все возможности SQL не поддерживает);
  • Поддержка хранения данных без описания предварительной схемы, с описанием полной структуры или в смешанном режиме;
  • 100% совместима со стандартом TinkerPop Blueprints для графо-ориентированных БД;
  • Поддержка языка запросов Gremlin;
  • Нативно поддерживает HTTP, RESTful и JSON протоколы без использования сторонних компонентов;
  • Возможность работы как в режиме встраивания в другие приложения, так и в качестве выделенного сервера;
  • Возможность отката внесённых в документ локальных изменений (ODocument.undo);
  • Имеет очень малый размер и не имеет сторонних зависимостей;
  • Поддерживается строгая политика разграничения доступа на основе ролей и полномочий пользователей;
  • Дистрибутив полностью самодостаточен;
  • Поддерживает отказоустойчивые конфигурации и репликацию (архитектура OrientDB изначально рассчитана на мультимастер репликацию);
  • Поддержка запуска скриптов на стороне сервера (Server Side Scripting);
  • Доступна коммерческая поддержка.


  1. Главная ссылка к новости (http://code.google.com/p/orien...)
Автор новости: Yarick
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/35058-orientdb
Ключевые слова: orientdb, database
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (25) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 20:26, 11/10/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    2 абзац крайне аппетитен. Кто-нибудь пробовал?
     
  • 1.2, Аноним (-), 20:41, 11/10/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    у тебя есть 125 mysql серверов которые надо заменить ? :)
     
     
  • 2.9, Аноним (-), 22:58, 11/10/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    У цука есть. 19 тыщ инстансов или около того.
     
     
  • 3.14, Аноним (-), 04:48, 12/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Ну вот когда он на это сбежит - тогда и подумаем...
     
     
  • 4.17, Гость (?), 09:25, 12/10/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    что-то сомнительно, что бы кто-то сбежал с mysql на сервер написанный на java
     
     
  • 5.20, Yarick (?), 10:30, 12/10/2012 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ну, например, Twitter пришлось выкинуть MySQL, чтобы повысить скорость поиска в три раза.

    http://www.insight-it.ru/masshtabiruemost/kardinalnyjj-perevorot-v-arkhitektu

     
  • 4.21, Yarick (?), 10:42, 12/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    :-D !!! Возможно, что Вы будете удивлены, но он таки сбежал.

    http://www.insight-it.ru/masshtabiruemost/hbase-v-facebook-135-milliardov-soo

    http://www.insight-it.ru/tekhnologii/analitika-v-realnom-vremeni-ot-facebook

     

  • 1.3, Аноним (-), 21:38, 11/10/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    >Код OrientDB написан на языке Java
    >OrientDB отличается высокой скоростью работы

    0_0

    Что, правда?
    Пришло время ломать стереотипы...

     
     
  • 2.5, Капитан (??), 22:08, 11/10/2012 [^] [^^] [^^^] [ответить]  
  • +8 +/
    Да, давайте перепишем все на голом си, и диск внезапно станет быстрее вращаться!
     
     
  • 3.7, Аноним (-), 22:51, 11/10/2012 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Да, давайте перепишем все на голом си, и диск внезапно станет быстрее
    > вращаться!

    Кэп, ты про оптимизацию кода вообще и запросов в частности слыхал, не?

     
  • 3.15, Аноним (-), 04:48, 12/10/2012 [^] [^^] [^^^] [ответить]  
  • +7 +/
    > Да, давайте перепишем все на голом си, и диск внезапно станет быстрее вращаться!

    А какая скорость вращения у SSD? И на чем вы его вращаете? :)

     
     
  • 4.18, Гость (?), 09:27, 12/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    :) :)
     
  • 4.24, ... (?), 18:46, 12/10/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А в каком месте SSD - диск?
     
     
  • 5.25, fi (ok), 22:07, 14/10/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    в sata III :)))
     

  • 1.4, мимо_проходил (?), 21:42, 11/10/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +7 +/
    >При тестировании производительности, один сервер с OrientDB оказался способен заменить собой 125 серверов MySQL

    Опустим MySQL в серную кислоту, а OrientDB в дистиллированную воду.

     
  • 1.6, piteri (ok), 22:42, 11/10/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Похоже что оно тоже не умеет инкрементальный бэкап.
     
     
  • 2.8, Аноним (-), 22:52, 11/10/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Похоже что оно тоже не умеет инкрементальный бэкап.

    А должно? Форкни и напиши, делов-то.

    PS. BTW, при таких объемах - шибздики - инкременталка тупо не нужна. База на флешку умещается.

     
     
  • 3.13, piteri (ok), 23:59, 11/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Нехилая флешка нужна для хранения 19.807.040.628.566.084 Тб.

    А вообще я к тому что у nosql c этим массовая проблема, а значит для случаев, когда необходимо надёжное хранилище они не подходят.

     
  • 3.16, Аноним (-), 04:49, 12/10/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > База на флешку умещается.

    Хорошая у вас флешка однако. Где мне такую же взять?

     

  • 1.10, o (?), 23:18, 11/10/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Вот так почитаешь и подумаешь. Вот оно счастье!
    Redis вон заявляют 100тыс запросов в секунду. А эти 150тыс.
    А морда не треснет?

    Я протестил редис, получилось что 9тыс в секунду только!
    Правда в режиме pipeling сразу выросло до 70тыс.
    Можно сбпросить на железо. Порядок то тот. Только вот получается цифры указаны для какого то одного смого быстрого и зачастую совсем бесполезного режима работы.

    150тыр на запись, это они может быть скорость операции restore замеряли? Причем не на диск а в память.

     
     
  • 2.11, o (?), 23:20, 11/10/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А еще может это все что с него выжали за 1 секунду работы. К началу второй секунды сервис идет кормить оленей.
     
  • 2.12, cijic (ok), 23:38, 11/10/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А Redis разве не в RAM всё хранит?
     
  • 2.19, Yarick (?), 10:16, 12/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    150 - это во встраиваемом режиме на "Tested on a HP Pavilion dv6 with Intel(r) Core i7 720q, 4 GB RAM and HD E-SATA 7.200rpm". Если тестировать в режиме отдельного сервера, то начинает играть роль огромное количество различных факторов.

    На http://stackoverflow.com/questions/12205471/orientdb-slow-write один человек тоже тестировал на localhost-е.
    Для начала нужны хотя бы отдельные физические машины для сервера и клиента.

     
     
  • 3.22, o (?), 11:55, 12/10/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    То есть человек получил около 8тыр в секунду. Причем приконектился один раз, потом "дунул" 150тыр запросов и отконектился. Если ли бы он на каждый запрос конетился, вполне возможно что получился бы тот же мускул.
    Справедливости ради надо мерять с пулом конектов и конкурентными запросами. Если бы он паралельно запустил 15 таких скриптов по  10тыр в каждом, наверняка бы скорость подросла.
     
  • 3.26, Yarick (?), 12:32, 19/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    На моём Ubuntu Core i7-2600 7200rpm HDD ext4 (встроенный режим, процессор загружен ~15%):

    Плоская БД (все значения - строки переменной длины)

    [java]    Completed the test of 'LocalCreateFlatSpeedTest' in 7449 ms. Memory used: 48932016
         [java]    Cycles done.........: 1000000/1000000
         [java]    Cycles Elapsed......: 4029 ms
         [java]    Elapsed.............: 7449 ms
         [java]    Medium cycle elapsed: 0.007449
         [java]    Cycles per second...: 134246.2

    Документы

    [java]    Completed the test of 'LocalCreateDocumentSpeedTest' in 18047 ms. Memory used: 85779248
         [java]    Cycles done.........: 1000000/1000000
         [java]    Cycles Elapsed......: 17656 ms
         [java]    Elapsed.............: 18047 ms
         [java]    Medium cycle elapsed: 0.018047
         [java]    Cycles per second...: 55410.875

    Объекты (POJO)

    [java]    Completed the test of 'LocalCreateObjectSpeedTest' in 54145 ms. Memory used: 153367592
         [java]    Cycles done.........: 1000000/1000000
         [java]    Cycles Elapsed......: 53027 ms
         [java]    Elapsed.............: 54145 ms
         [java]    Medium cycle elapsed: 0.054145
         [java]    Cycles per second...: 18468.926

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру