The OpenNET Project / Index page

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

15.05.2012 12:33  Первый релиз NoSQL БД OrientDB

Вышел первый релиз OrientDB, системы управления базами данных, которая объединяет в себе возможности документо-ориентированной и графо-ориентированной БД. Даже при работы с документ-ориентированными данными взаимодействие между документами обрабатывается как в графо-ориентированной БД с определением прямых связей между записями. При этом пройти по цепочке содержимого деревьев и графов, как целиком так и частями, можно в считанные миллисекунды. Дополнительно поддерживается интерфейс объектно-ориентированной БД, который работает поверх документо-ориентированного слоя. Код 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 за счёт балансировки операций добавления и обновления данных.

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

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


  1. Главная ссылка к новости (http://groups.google.com/group...)
Автор новости: Yarick
Тип: Программы
Ключевые слова: orientdb, database, nosql, graph
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Ajax/Линейный | Раскрыть все сообщения | RSS
 
  • 1.1, Тузя (ok), 13:38, 15/05/2012 [ответить] [показать ветку] [···]    [к модератору]
  • +4 +/
    Скриншот, прямо таки, завораживает...
     
  • 1.2, Аноним (-), 13:40, 15/05/2012 [ответить] [показать ветку] [···]    [к модератору]
  • –2 +/
    Угу, а при замене жавы на С(++) можно будет заменить одним сервером 125 жаватормозил.
     
     
  • 2.5, Аноним (-), 14:09, 15/05/2012 [^] [ответить]    [к модератору]
  • +1 +/
    Скорее, 500 MySQL сервером. Ну чтоб покруче выглядело :)
     
     
  • 3.8, Proud Anon (?), 14:22, 15/05/2012 [^] [ответить]    [к модератору]
  • +1 +/
    Замена 500 MySQL серверов - это киллер-фича следующего релиза
     
  • 2.11, thelamon (ok), 15:13, 15/05/2012 [^] [ответить]     [к модератору]
  • +5 +/
    Вы еще не стали круглым как колобок Ибо непомерно толсто Так и скажите - я ... весь текст скрыт [показать]
     
     
  • 3.16, Аноним (-), 15:47, 15/05/2012 [^] [ответить]     [к модератору]  
  • +3 +/
    Когда нечем крыть, ничего не остаётся кроме как закрыть уши руками и говорить б... весь текст скрыт [показать]
     
     
  • 4.26, thelamon (ok), 17:54, 15/05/2012 [^] [ответить]     [к модератору]  
  • +1 +/
    Лучше - это значит работает Тк JVM рассчитана на multithreading-окружение, а C ... весь текст скрыт [показать]
     
     
  • 5.32, MacMan (?), 20:16, 15/05/2012 [^] [ответить]    [к модератору]  
  • –2 +/

    > Fork/Join API (JDK 7))

    Вот это даа! Сорок лет спустя они осилили unixway.

     
     
  • 6.33, Nope (?), 20:29, 15/05/2012 [^] [ответить]    [к модератору]  
  • +/
    Просвещайся: http://www.rsdn.ru/forum/philosophy/2840588.1.aspx
     
  • 5.37, arisu (ok), 22:55, 15/05/2012 [^] [ответить]     [к модератору]  
  • +/
    обалдеть я великий маг и волшебник, я использую lock-free в c и stm shared ... весь текст скрыт [показать]
     
     
  • 6.39, thelamon (ok), 23:10, 15/05/2012 [^] [ответить]    [к модератору]  
  • +/
    А без gcc(msvc/вставить нужное)-dependent фич сможете?

    Невозможно в рамках языка. Потому что на уровне языка не определена видимость переменных в разных потоках. Жду вашего решения...

     
     
  • 7.40, arisu (ok), 23:24, 15/05/2012 [^] [ответить]     [к модератору]  
  • +/
    будет медленней, но, кажется, возможно сейчас не готов ответить точно что сове... весь текст скрыт [показать]
     
  • 7.41, Аноним (-), 23:32, 15/05/2012 [^] [ответить]    [к модератору]  
  • +/
    > Невозможно в рамках языка. Потому что на уровне языка не определена видимость переменных в разных потоках. Жду вашего решения...

    боже мой.. какие же бывают тупые люди

     
     
  • 8.42, thelamon (ok), 23:34, 15/05/2012 [^] [ответить]     [к модератору]  
  • +/
    Ваще ни о чем Проясните глубину мысли ... весь текст скрыт [показать]
     
  • 7.44, Crazy Alex (ok), 23:47, 15/05/2012 [^] [ответить]    [к модератору]  
  • +/
    А зачем? GCC есть чуть ли не под все мыслимые платформы. Готовый стандарт де-факто.
     
  • 3.24, Аноним (-), 17:27, 15/05/2012 [^] [ответить]     [к модератору]  
  • +/
    А чего там слышать Достаточно посмотреть на бенчмарки одних и тех же алгоритмов... весь текст скрыт [показать]
     
     
  • 4.27, thelamon (ok), 17:55, 15/05/2012 [^] [ответить]     [к модератору]  
  • +/
    Одааа, с С ники сразу пишут идеальный с точки зрения перфоманса код И без утеч... весь текст скрыт [показать]
     
     
  • 5.45, Аноним (-), 00:06, 16/05/2012 [^] [ответить]    [к модератору]  
  • +1 +/
    У  них запас для косяков гораздо бОльший
     
  • 2.13, ДяДя (?), 15:35, 15/05/2012 [^] [ответить]     [к модератору]  
  • +3 +/
    Вам бы ещё по ссылкам ходить Ребята давно этим занимаются Была реализация на C... весь текст скрыт [показать]
     
     
  • 3.23, ыгчч (?), 16:31, 15/05/2012 [^] [ответить]     [к модератору]  
  • +/
    Please note this is mostly a single connection benchmark run on one computer ... весь текст скрыт [показать]
     
  • 3.25, Аноним (-), 17:28, 15/05/2012 [^] [ответить]     [к модератору]  
  • +/
    Не, ну а функционал постгра или хотя-бы мускуля оно обеспечивает А то жабисты в... весь текст скрыт [показать]
     
     
  • 4.29, Аноним (29), 18:58, 15/05/2012 [^] [ответить]     [к модератору]  
  • –1 +/
    Наверное потому, что пхпешники считают что на жаве нужно писать драйвера а на ся... весь текст скрыт [показать]
     
  • 2.28, Аноним (29), 18:44, 15/05/2012 [^] [ответить]    [к модератору]  
  • +/
    Ага, вот Вы и займитесь. Постепенно, я надеюсь, вы поймёте почему разработчики выбрали жаву.
     
  • 1.3, o (?), 13:43, 15/05/2012 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    К сожалению ява..
    Все такие богатые что ли.
     
  • 1.4, MaMoHT (?), 14:01, 15/05/2012 [ответить] [показать ветку] [···]    [к модератору]  
  • –2 +/
    Что интересно понимается под обычным оборудованием... :-)
    Это что надо сделать с мускулом, чтобы жаватормозила смогла заменить аж 125 мускулов ...
     
     
  • 2.7, ыгчч (?), 14:19, 15/05/2012 [^] [ответить]    [к модератору]  
  • +3 +/
    Написать идиотских кривых запросов и никогда не использовать EXPLAIN.
     
  • 2.9, anonymous (??), 14:53, 15/05/2012 [^] [ответить]     [к модератору]  
  • +5 +/
    например, чтобы найти друзей друзей, через таблички для N уровня вложенности бол... весь текст скрыт [показать]
     
     
  • 3.17, Yarick (?), 15:56, 15/05/2012 [^] [ответить]     [к модератору]  
  • +/
    Именно Дело не в Java, а в NoSQL neo4j ищет всех друзей за 2 микросекунды, а ... весь текст скрыт [показать]
     
     
  • 4.49, MaMoHT (?), 04:26, 16/05/2012 [^] [ответить]     [к модератору]  
  • –1 +/
    Согласен есть разница В реалиоционных БД, есть такой термин, как денормализация... весь текст скрыт [показать]
     
     
  • 5.55, Tameo (?), 11:53, 16/05/2012 [^] [ответить]    [к модератору]  
  • +/
    Денормализация не даёт общего решения подобных проблем. В частности, для предложенной задачи ( поиск друзей N-го уровня ) сложность решения, имхо, растёт по экспоненте.
     
  • 2.14, ДяДя (?), 15:44, 15/05/2012 [^] [ответить]     [к модератору]  
  • +/
    Простите, у вас образование есть В современном железе нет проблем с производит... весь текст скрыт [показать]
     
     
  • 3.35, filosofem (ok), 21:59, 15/05/2012 [^] [ответить]     [к модератору]  
  • +/
    Вы недооцениваете способности современных Джава и не только джава, но в первую о... весь текст скрыт [показать]
     
  • 3.47, MaMoHT (?), 04:23, 16/05/2012 [^] [ответить]     [к модератору]  
  • +/
    Прощаю, есть - Вы сами это написали Из привиденных чисел становится понятно, ... весь текст скрыт [показать]
     
  • 3.48, MaMoHT (?), 04:25, 16/05/2012 [^] [ответить]     [к модератору]  
  • +/
    Да, и у конкретно Джавы помимо дисковой подсистемы есть другие места, где она ди... весь текст скрыт [показать]
     
     
  • 4.57, ДяДя (?), 12:44, 16/05/2012 [^] [ответить]     [к модератору]  
  • +/
    Уважаемый Дело не в платформе, как здесь уже отметили, а в отличии чисто реляци... весь текст скрыт [показать]
     
  • 1.6, Аноним (6), 14:11, 15/05/2012 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    > При тестировании производительности, один сервер с OrientDB оказался способен заменить собой 125 серверов MySQL

    Круто.

     
  • 1.15, Kodirr (?), 15:45, 15/05/2012 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Ладно, жабу как-нибудь перетерпим, теребит другой вопрос: уже существующие NoSQL базы - в них что, нельзя получить зависимые документы? Мне эти "графы" пофиг, у меня просто есть "Документ"->"Ордер". Какое преимущество мне дадут графы?
     
     
  • 2.19, Yarick (?), 16:06, 15/05/2012 [^] [ответить]     [к модератору]  
  • +1 +/
    Вообще у OrientDB есть уровень Ключ-значение Поверх него реализован документный... весь текст скрыт [показать]
     
  • 1.18, umbr (ok), 15:57, 15/05/2012 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    "Initial revision" проекта датирована 1 апреля 2010 :)
    Извините за оффтоп.
     
  • 1.20, taryk (ok), 16:07, 15/05/2012 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    а есть живые графо-ориентированной БД на C/C++ ?
     
     
  • 2.21, umbr (ok), 16:09, 15/05/2012 [^] [ответить]    [к модератору]  
  • +/
    В тексте новости есть похожая ссылка на Википедию: http://en.wikipedia.org/wiki/Graph_database#Graph_database_projects
     
  • 1.22, aikus (?), 16:16, 15/05/2012 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Интересно сравнить с другими граф-ориентированными базами.
     
  • 1.30, Veter (??), 18:58, 15/05/2012 [ответить] [показать ветку] [···]    [к модератору]  
  • –1 +/
    Феерично... "Имеет очень малый размер и не имеет сторонних зависимостей;" - и притом написана на джаве - никаких сторонних зависимостей, ага. Кроме маркетинга этим "разработчикам" стоило бы еще и программированием заниматься :D
     
     
  • 2.31, Человек (??), 19:49, 15/05/2012 [^] [ответить]    [к модератору]  
  • +1 +/
    Ну, тогда почти у всего ПО есть зависимости - API OS.
     
     
  • 3.34, Aleks Revo (ok), 21:04, 15/05/2012 [^] [ответить]    [к модератору]  
  • +1 +/
    И это ещё не зашла речь про железо! ))
     
  • 2.43, grmmhnd (?), 23:45, 15/05/2012 [^] [ответить]    [к модератору]  
  • +2 +/
    Любезный, не путайте платформу, как таковую, и зависимости от сторонних библиотек.
     
  • 1.36, f (??), 22:46, 15/05/2012 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Крутая штука!
     
  • 1.50, mma (?), 05:31, 16/05/2012 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Кто в каких задачах использовал подобные БД? С какими отрицательными/узкими/проблемными местами сталкивались?
     
  • 1.51, Аноним (51), 06:51, 16/05/2012 [ответить] [показать ветку] [···]     [к модератору]  
  • +1 +/
    Вообщето ява по скорости проигрывает только С и то, процентов 30-50, на хабре ... весь текст скрыт [показать]
     
     
  • 2.53, Аноним (-), 10:59, 16/05/2012 [^] [ответить]     [к модератору]  
  • +/
    тут как бы нужно смотреть не только проигрыш на небольших интервалах времени, но... весь текст скрыт [показать]
     
  • 1.52, hummermania (ok), 10:29, 16/05/2012 [ответить] [показать ветку] [···]    [к модератору]  
  • +1 +/
    И всё было бы классно если бы не Ява. К языку претензий не имею, но вот к ее владельцам - еще как. Завтра корпорации бобра взбредет в голову какая то бяка - и вперед за покупками. И даже OpenJDK не сильно спасет.
     
     
  • 2.54, Аноним (51), 11:17, 16/05/2012 [^] [ответить]     [к модератору]  
  • +/
    Тысячи компаний по всему миру сидят на яве и не думают переходить Да и некуда ... весь текст скрыт [показать]
     
     
  • 3.56, Гость (?), 12:19, 16/05/2012 [^] [ответить]    [к модератору]  
  • +/
    это из области "тысячи мух не могут ошибаться"
     
     
  • 4.58, Aleks Revo (ok), 19:58, 16/05/2012 [^] [ответить]    [к модератору]  
  • +/
    Тогда уже скорее "миллионы мух обречены на правильный выбор" :-))
     
  • 1.61, JD (ok), 13:02, 17/05/2012 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    "...на обычном оборудовании позволяя сохранять до 150 000 записей в секунду" мягко говоря это неправда, ибо физически невозможно, а по сути наглый пизде$$$...
     
     
  • 2.62, Yarick (?), 11:44, 18/05/2012 [^] [ответить]    [к модератору]  
  • +/
    Интересное утверждение.
    Физически невозможно - это записать за секунду на диск данных больше, чем позволяет пропускная способность диска.

    Где вы видите информацию о размере записи ???
    Современные HDD даже на ноутбуке позволяют записывать порядка 100 Мб/сек. SSD так ещё больше.

    В данном случае размер данных не важен, ибо это будет тест дисковой подсистемы. Количество сохранённых мелких записей позволяет судить об эффективности алгоритма. При этом утилизировать даже всего 100 Мб/сек обычного диска представляется весьма сложной задачей.  Достаточно чтобы размер был менее килобайта.

    RB+Tree позволяет быстро читать и при этом быстро записывать.

     
     
  • 3.63, JD (ok), 08:39, 19/05/2012 [^] [ответить]    [к модератору]  
  • –2 +/
    >[оверквотинг удален]
    > Физически невозможно - это записать за секунду на диск данных больше, чем
    > позволяет пропускная способность диска.
    > Где вы видите информацию о размере записи ???
    > Современные HDD даже на ноутбуке позволяют записывать порядка 100 Мб/сек. SSD так
    > ещё больше.
    > В данном случае размер данных не важен, ибо это будет тест дисковой
    > подсистемы. Количество сохранённых мелких записей позволяет судить об эффективности алгоритма.
    > При этом утилизировать даже всего 100 Мб/сек обычного диска представляется весьма
    > сложной задачей.  Достаточно чтобы размер был менее килобайта.
    > RB+Tree позволяет быстро читать и при этом быстро записывать.

    Что же вы ерундой то болтаете???
    Запустите скрипт на генерацию 150000 файлов объем каждого ~20 байт.
    И скажите сколько МИНУТ он выполняется на обычном железе?

    #!/bin/bash

    mkdir data

    COUNTER=0
    START='date +%s'

    while [  $COUNTER -lt 150000 ]; do
       echo The counter is $COUNTER > data/$COUNTER.txt
       let COUNTER=COUNTER+1
    done

    END='date +%s'

    RES=0;

    let RES=END-START
    echo $RES

     
     
  • 4.64, nvkz2007 (?), 02:14, 20/05/2012 [^] [ответить]    [к модератору]  
  • +/
    Ты забыл про файловую систему, которая мало того что пишет файлы блоками большего размера чем сам файл, так еще и таблицу с индексами создает.
     
  • 4.68, Yarick (?), 11:13, 21/05/2012 [^] [ответить]    [к модератору]  
  • +/
    Обязательно попробую.

    В OrientDB есть понятие кластера. Кластер - это, грубо говоря, предварительно созданный файл обычно небольшого размера. Когда пишутся новые записи, то они редко требуют выделения нового места на ФС. Также для каждого кластера есть другой специальный кластер для удалённых записей. В него заносятся пометка о том, что такая-то запись удалена. Т.о. непосредственное добавление или удаление одной записи не приводит в выделению места на ФС.
    А вот хороший алгоритм нужен для быстрого нахождения требуемого адреса внутри кластера. И такой алгоритм есть и он работает.

     
  • 2.69, anton0xf (?), 12:10, 02/06/2012 [^] [ответить]    [к модератору]  
  • +/
    $ cat write-test.c
    #include <stdio.h>

    #define RECORDS_COUNT 150000
    int main(){
        FILE *fp;
        if((fp = fopen("records", "w")) != NULL){
            unsigned char c = 0;
            long int i;
            for(i=0; i < RECORDS_COUNT; i++){ //пишем 150 000 записей в файл
                fputc(c++, fp); //пишем запись из одного символа
            }
            fclose(fp);
            return 0;
        }else{
            printf("Can't open file");
            return 1;
        }
    }
    $ cc -o write-test write-test.c
    $ time ./write-test
    ./write-test  0.00s user 0.00s system 82% cpu 0.006 total

    УМВР. ЧЯДНТ?

     
  • 1.65, artist60 (ok), 15:04, 20/05/2012 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    1) MySQL тратит ресурсы на проверку пользователя при соединении.
    2) Больше времени уходит на сортировку данных, а не взятие их из БД, в мускуле тоже есть NoSQL.
    И про 125 серверов однозначна пиздеж.

     
  • 1.66, Cerberix (?), 21:05, 20/05/2012 [ответить] [показать ветку] [···]    [к модератору]  
  • –1 +/
    Кто-то ее пробовал для 1С-ки ?

    Как сумеете прикрутить, отпишитесь плизз тут. Интересен результат.

     
  • 1.67, Аноним (-), 09:01, 21/05/2012 [ответить] [показать ветку] [···]     [к модератору]  
  • +/
    Кто в каких задачах использовал подобные БД С какими отрицательными узкими про... весь текст скрыт [показать]
     

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


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