The OpenNET Project / Index page

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

Доступна распределённая графо-ориентированная СУБД Dgraph 0.4

11.07.2016 23:48

Доступен четвёртый экспериментальный выпуск графо-ориентированной СУБД Dgraph, предоставляющей средства для указания связей между записями, формируя граф из связанных друг с другом данных. СУБД изначально развивается с оглядкой на обеспечение минимальных задержек выполнения запросов, что позволяет использовать её для обработки информации в режиме реального времени. Архитектура приложения поддерживает создание распределённых конфигураций из нескольких экземпляров Dgraph, давая возможность масштабировать хранилища путём добавления дополнительных узлов при росте нагрузки или увеличении размера данных. Код СУБД написан на языке Go и распространяется под лицензией Apache 2.0.

Для формирования запросов предлагается использовать язык GraphQL, результаты отдаются в формате JSON. Для хранения данных применяется хранилище в формате ключ/значение, предоставляемое библиотекой RocksDB. Обращение к СУБД производится по HTTP с использованием протокола Protocol Buffers поверх gRPC, что позволяет отправлять запросы из любых языков, для которых имеются клиентские библиотеки с поддержкой gRPC, в том числе обращаться к Dgraph из браузерных web-приложений.

  1. Главная ссылка к новости (https://github.com/dgraph-io/d...)
  2. OpenNews: На конференции Google I/O представлена открытая графо-ориентированная СУБД Cayley
  3. OpenNews: Релиз СУБД Neo4j 1.3, ориентированной на хранение графов
  4. OpenNews: Проект RethinkDB представил Horizon, открытую альтернативу Firebase
  5. OpenNews: Facebook представил новый язык формирования запросов GraphQL
  6. OpenNews: Выпуск СУБД OrientDB 2.2
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/44773-dgrap
Ключевые слова: dgrap, database, graph
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (32) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.5, Аноним (5), 07:56, 12/07/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вопрос к знатокам, не холивара ради, а развития для.
    А чем данный сабж хуже\лучше orientDB ?
     
     
  • 2.6, Аноним (-), 08:19, 12/07/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вероятно главная "фишка" - засунули json везде где только можно.

    Мне лично интереснее http://tinkerpop.incubator.apache.org/

     
     
  • 3.8, Аноним (5), 08:29, 12/07/2016 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Может ли данный сабж стать подспорьем для PostgreSQL ?
     
     
  • 4.16, Аноним (-), 11:59, 12/07/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Смотря что подразумеваете под вопросом. Подключить PostgreSQL в качестве хранилища данных можно, но нужно ли? Есть например http://titan.thinkaurelius.com/

    Сабж интересен тем, что является надстройкой, которая сама оттранслирует запросы к нужным СУБД.

    Графовая модель сама по себе довольно гибкая и начав ею пользоваться уже не хочется реляционную СУБД. Но и проблемы производительности никто не отменял.

     
  • 3.9, Аноним (-), 09:06, 12/07/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Джависты должны оценить сорта серого оттенка.
     
  • 2.10, Добрый (?), 09:12, 12/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Основная проблема ориентдб в очень низкой надежности. По этому показателю ее обходят едва ли не все конкуренты.
     
     
  • 3.12, Аноним (5), 09:23, 12/07/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А какого рода низкая надёжность имеется ввиду?
    Для меня ненадёжность - это когда приходится сбрасывать вручную блокировки с таблиц в MySQL при резком не запланированном отключении электричестве.

     
     
  • 4.14, Аномистикус (?), 10:36, 12/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    UPS? Не, не слышал.
     
  • 4.20, Добрый (?), 13:16, 12/07/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Элементарная надежность, хотя бы на уровне заявленных гарантий ACID. Почитайте багтрекер ориента и отзывы пользователей на просторах сети. Данная СУБД к продакшену просто не готова.
     
  • 2.33, MMx (?), 10:27, 13/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Я остановился на Arango - после всяких neo4j и orient.
    Сейчас и эту поделку пощупаем.
     

  • 1.17, Uri (??), 12:20, 12/07/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > результаты отдаются в формате JSON

    :facepalm:

    Ну зачем, зачем json??? Я не понимаю, нахрена всовывать неизвлекаемый сериализатор-десериализатор в говенный формат на выходе запроса?

     
     
  • 2.21, rob pike (?), 14:34, 12/07/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вы плохо читали, она для GraphQL. Который нужен только в client-side javascript. Которому в качестве данных было бы очень странно отправлять что-то кроме JSON.
     
     
  • 3.22, Crazy Alex (ok), 14:40, 12/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Вообще-то графовые данные далеко не только в джаваскрипте нужны.
     
     
  • 4.24, rob pike (?), 14:56, 12/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Графовые данные и GraphQL это примерно как энтерпрайз и ASP.NET.

    GraphQL нужен только и исключительно веб-фронтенду. При этом никакая графовость там совершенно не нужна, нужна возможность не бегать к суровым DBA на каждый чих и не просить тех добавить три поля в запрос - что требуется каждые пять минут в соответствии с TDD, Agile, Scrum и окончательным вытеснением Waterfall вместе с какими-либо попытками проектирования чего-либо.

    Графовые БД тоже нужны далеко не всем, но когда нужны, используют что-то серьезнее - например, AllegroGraph.

     
     
  • 5.27, MPEG LA (ok), 16:41, 12/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    я так понимаю, вы перечислили все страшные слова которые знали.
    GraphQL разрабатывался в первую очередь для мобильных устройств.
     
     
  • 6.29, rob pike (?), 17:57, 12/07/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну что вы, далеко не все. Даже ниже по треду я ограничился EDIFACT, не упомянув X12.

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

    Во-вторых, то что заявляется вольно иметь, и часто имеет, сколь угодно малое отношение к тому, что за этими заявлениями стоит. Не помните ли, как совсем не так давно некий Марк Ц. объяснял не самые оптимальные качества мобильного клиента своей небольшой социальной сети для котиков использованием веб-технологий вообще и HTML5 в частности? После чего компания Sencha наглядно продемонстрировала что дело было совсем не в них, продемонстрировав свой клиент небольшой социальной сети для котиков, сделанный именно на HTML5, но при этом не обладавший не самыми оптимальными качествами исходного клиента небольшой социальной сети для котиков.

    В-третьих, даже из официальных заявлений, при некоторой сноровке, можно извлечь некоторую релевантную информацию. Вы ведь прочли в https://facebook.github.io/react/blog/2015/05/01/graphql-introduction.html фразу "Fetching complicated object graphs require multiple round trips between the client and server to render single views"? Как вы думаете, какая же *техническая* причина могла бы помешать получать сколь угодно сложные результаты одним запросом? А вот нетехническая причина, которую я озвучил, именно и определила мгновенно вспыхнувший в сердцах разработчиков по всему миру резонанс (или уместнее было бы сказать унисон? оставлю на ваше усмотрение) с данным поползновением фейсбука - потому что проблема уж очень распространенная.

     
     
  • 7.35, MPEG LA (ok), 13:12, 13/07/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    столько текста, и сплошной субъективизм. тема почему "GraphQL нужен только и исключительно веб-фронтенду" не раскрыта. GraphQL вполне применим и внутри микросервисов, и на мобилках, и для десктопных клиент-серверных.
     
     
  • 8.36, rob pike (?), 01:15, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Не субъективизм, а глубочайшее и подробнейшее рассмотрение онтологической сущнос... текст свёрнут, показать
     
  • 5.30, Crazy Alex (ok), 18:10, 12/07/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну вот мне, напрмиер, нужно что-то несерьёзное - на десктоп, для локального применения. Чтобы разложить... скажем, документы по иерархическим тегам. То есть документ может иметь несколько тегов, а теги могут быть вложены друг в друга. В идеале - у тега может быть больше одного родителя. Чтобы на этом работали запросы с приемлемой скокростью хотя бы на паре десятков тысяч документов и стольких же тегах - с релционкой надо как-то очень странно извращаться, а от нескольких родителей у тега - отказываться.

    P.S. Ты бы agile  с отсутствием планирования не путал. Там всего и делов - не пытаться планировать то, для чего нет данных.

     
     
  • 6.32, rob pike (?), 08:39, 13/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Почему только документы? Окна, например, я бы тоже с радостью разложил по иерархическим тэгам. И не только окна. Но нечем, все заняты переписыванием hello world на Go и Rust.

    Я не вижу кейса когда у одного тэга больше одного родителя имело бы смысл, покажете?

    С Agile невозможно ничего спутать, ведь известно что любое утверждение про Agile всегда можно признать неверным, "потому что это неправильный Agile, в правильном Agile всё не так" - ровно как с социализмом.

     
     
  • 7.37, Crazy Alex (ok), 09:14, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Когда начинаешь раскладывать документы оказывается, что есть несколько параллельных классификаций. Вот, например, есть тег "Гитлер". Он может попадать в родительские категории "нацизм", "диктаторы" и "немецкие политические деятели". Либо надо делать теги  без иерархии, и каждому документу добавлять по 100500 (пусть и с автоматизацией), а выбирать потом исключительно запросами на пересечение - но одноранговые теги плохи по другим причинам в перву. очередь их просто помнить/просматривать неудобно, как только количество улетает за третью сотню. А учитывая, что подобный софт имеет смысли именно для боьших массивов - три сотни - ни разу не  предел.

    Насчёт агайла - не знаю, правильный или нет агайл там, где я работаю, но что хрен там получится спланировать надолго - факт. Потому что, во-первых, надо учитывать хотелки заказчиков, некоторые - весьма срочные, во-вторых - эволюцию возможностей девайсов и их операционок (проект для мобил), в-третьих - фичи конкурентов, в-четвёртых - изменения тех, с кем интегрируешься. В результате как там можно что-то спланировать больше, чем месяца на три - даже не представляю.

     

  • 1.18, Аноним (-), 12:44, 12/07/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Обращение к СУБД производится по HTTP с использованием протокола  Protocol
    > Buffers (https://developers.google.com/protocol-buffers) поверх gRPC, что позволяет
    > (https://wiki.dgraph.io/Clients) отправлять запросы из любых языков, для которых имеются
    > клиентские библиотеки с поддержкой gRPC, в том числе обращаться к Dgraph
    > из браузерных web-приложений.

      Правильно. Зачем нужны MVC, MVVM, если можно просто так взять и напрямую из браузера в базу залезть? ОРМки, вообще, давно нужно в печь выбросить.

      

     
     
  • 2.25, rob pike (?), 14:59, 12/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    В лучшем случае типичный слой "бизнес-логики" в вебе (где и нужен GraphQL) занимается просто заворачиванием резалтсетов в JSON, в худшем - еще и императивным вытягиванием всей БД и проходами по ней в циклах тройной вложенности перед этим.

    Никаких MVC и MVVM в этом всем обычно не наблюдается.

     

  • 1.19, Аноним (-), 12:59, 12/07/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Обращение к СУБД производится по HTTP с использованием протокола Protocol Buffers поверх gRPC

    Какая жесть...

     
     
  • 2.23, Crazy Alex (ok), 14:42, 12/07/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Чего жесть? protobufs - хороший протокол. Или это о gRPC?
     
     
  • 3.26, rob pike (?), 15:47, 12/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Только EDIFACT и ASN.1 способны по-настоящему закалить дух.
     
     
  • 4.28, Crazy Alex (ok), 16:54, 12/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    EDIFACT на пользовался, а asn.1 - это да, только закалять дух
     
  • 3.31, all_glory_to_the_hypnotoad (ok), 22:21, 12/07/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    protobuf это не протокол. Как формат сериализации он так себе и уж совсем гогно все его родные гугловые библиотеки с реализацией парсеров и генераторов. Для повседневных затычек внутри компании он более-менее годится и только.

    > Или это о gRPC?

    Раз уж gRPC прибит к протобуфу, то и о нём, естественно, тоже. Самое удивительное, что оно ещё умудряется отдавать ответы в JSON.

    Делаете протокол на основе HTTP - ну так используйте все типичные для этого протокола методы передачи запросов, т.е. текстовые аргументы которые можно набирать руками и ответамы в JSON/XML. Иначе же нет смысла прибивать протокол к транспорту поверх HTTP, свои реализации поверх сырого сокета дают больше профита.

     
     
  • 4.34, АнонимХ (ok), 11:55, 13/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > protobuf

    Чем плохи гугловские либы? Показывают неплохую производительность, с глюками не сталкивался. Я серьезно спрашиваю. А альтернативы?

     
     
  • 5.39, all_glory_to_the_hypnotoad (ok), 03:34, 15/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Не могут парсить пакеты в потоковом режиме, читают сразу всё в память делая кучу аллокаций даже если данные нахрен не нужны. Есть довольно низкие ограничения на размер пакета, порядка максимум полугига, но рабочие размеры несколько сотен мб. Причём сам парсер может понаделать UB если таки уговорить его сжирать большие пакеты. Альтернативой всему этому будет что-то типа flatbuffers.
     
  • 4.38, Crazy Alex (ok), 01:55, 15/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Ты можешь как-то аргументированно ответить? Куче народу было бы полезно. А то "гогно" информативностью не блещет.

    Я вот знаю, что третий протобуф шустр и сравнительно компактен.

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

     
     
  • 5.40, all_glory_to_the_hypnotoad (ok), 03:38, 15/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Почему нельзя поверх сокета - понятно, надо, чтобы браузерные клиенты дёргать могли.

    Что за бред несёшь ... протобуф в браузере офигеть как удобно готовить. Для браузера делают отдельные гейтвеи, а не костылят эту проблему в протоколе общения с СУБД.

     

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



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

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