The OpenNET Project / Index page

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

16.10.2016 08:40  Представлена децентрализованная СУБД Noms, основанная на идеях Git

Сформированный в августе стартап Attic Labs, в который вошли разработчики, ранее участвовавшие в работе над Google Chrome, Chrome OS и ECMAScript, представил первые результаты разработки новой децентрализованной СУБД Noms, в которой осуществлена попытка применения идей Git для организации хранения и совместной работы над большими коллекциями структурированных данных. Сформировано два рабочих прототипа Noms, написанных на языках Go и JavaScript и распространяемых под лицензией Apache 2.0.

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

Проект пока находится на стадии рабочего прототипа, из запланированных, но ещё не реализованных возможностей, отмечаются сборщик мусора, система запросов, обеспечение распараллеливания операций, возможность создания клонов БД без сохранения истории изменений ("shallow clones"), средства для автоматического слияния изменений и разрешения конфликтов. В настоящее время обмен данными между разными экземплярами БД может производится через HTTP API или локальную ФС, но рассматриваются возможность задействования таких протоколов, как IPFS или BitTorrent.

Основные особенности СУБД Noms:

  • Адресация по содержимому: имеется только возможность добавления данных, операции обновления не поддерживаются. СУБД автоматически игнорирует добавление дубликатов и отслеживает изменения;
  • Работа в режиме только добавления (Append-only). Данные в хранилище не перезаписываются и не удаляются - изменения размещаются в режиме дополнения, старое состояние данных сохраняется. Подобный подход позволяет отследить полную историю изменений, сравнить состояние на разных этапах существования БД и откатиться на позицию в прошлом;
  • Хранение только типизированных данных: каждое значение, набор данных и версия БД имеет свой тип. Типы определяются автоматически при добавлении данных, вручную их определять не нужно;
  • Децентрализация: можно создать копию БД, локально внести в неё изменения и вернуть эти изменения в основную БД, объединив с изменениями, накопившимися в основной БД с момента создания ответвления;
  • Возможность подключения различных бэкендов хранения. Noms предоставляет уровень абстракции, способный работать поверх любых хранилищ, способных обрабатывать данные в формате ключ/значение. В настоящее время подготовлены бэкенды для работы поверх LevelDB, HTTP (для обращения к внешним СУБД), Amazon DynamoDB и в оперативной памяти.


  1. Главная ссылка к новости (https://news.ycombinator.com/i...)
  2. OpenNews: Проект CoreOS представил распределённую систему хранения Torus
  3. OpenNews: Анонсирован GitTorrent для доступа к Git-репозиториям при помощи BitTorrent
  4. OpenNews: Выпуск децентрализованной торрент-системы Tribler 6.3
  5. OpenNews: Представлен Seafile, Dropbox-подобный сервер хранения на основе технологий Git
  6. OpenNews: В рамках проекта git-annex assistant развивается аналог Dropbox на базе Git
Лицензия: CC-BY
Тип: Программы
Ключевые слова: git, noms, database
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Ajax/Линейный | Раскрыть все сообщения | RSS
 
  • 1.1, A.Stahl (ok), 09:35, 16/10/2016 [ответить] [показать ветку] [···]     [к модератору]
  • –20 +/
    Ага, это так нужно для БД, что просто слов нет Давайте ещё хранить диффы Точно... весь текст скрыт [показать]
     
     
  • 2.4, Аноним (-), 10:49, 16/10/2016 [^] [ответить]    [к модератору]  
  • +15 +/
    Если вы не можете найти этому применения, это не означает ненужность фичи.
     
  • 2.5, angra (ok), 10:49, 16/10/2016 [^] [ответить]    [к модератору]  
  • +7 +/
    У БД есть разные применения. Если для твоих задач такие фичи не нужны, а важна только производительность, то оно просто не для тебя, проходи мимо.
     
  • 2.15, Парвиз (?), 15:08, 16/10/2016 [^] [ответить]    [к модератору]  
  • +/
    Да-да-да Любите Git,- он как Большая Советская Энциклопедия: вчера была на 196 странице статья "Берия", а сегодня - вырежем и вставим "Берингов пролив "!!
     
     
  • 3.22, Какаянахренразница (ok), 18:41, 16/10/2016 [^] [ответить]    [к модератору]  
  • +/
    Using git to rewrite history is a sin © Paul Shadig
     
  • 3.24, мимо проходил (?), 21:23, 16/10/2016 [^] [ответить]     [к модератору]  
  • –1 +/
    Чем ты занимаешься со своей копией репозитория никого не волнует Что же вызывае... весь текст скрыт [показать]
     
  • 3.34, Аноним (-), 16:31, 17/10/2016 [^] [ответить]    [к модератору]  
  • +/
    Создай страницу абсолютных указателей. И используй: абсолютный указатель 0x........
     
  • 2.44, ыы (?), 23:55, 17/11/2017 [^] [ответить]     [к модератору]  
  • +/
    В нормальных базах данных это давным давно есть Это штатная функциональность во... весь текст скрыт [показать]
     
  • 1.6, Аноним (-), 11:18, 16/10/2016 [ответить] [показать ветку] [···]     [к модератору]  
  • –2 +/
    С одной стороны, хотелось бы иметь альтернативу уродливому явлению под названием... весь текст скрыт [показать]
     
     
  • 2.9, YetAnotherOnanym (ok), 11:53, 16/10/2016 [^] [ответить]    [к модератору]  
  • +/
    > уродливому явлению под названием "репликация"

    Чем же для Вас репликация уродлива?

     
     
  • 3.37, Пингвино (ok), 11:12, 19/10/2016 [^] [ответить]    [к модератору]  
  • –1 +/
    Тем, что она не работает нормально.
     
  • 1.7, OramahMaalhur (ok), 11:19, 16/10/2016 [ответить] [показать ветку] [···]    [к модератору]  
  • +1 +/
    Вот и субд на JavaScript пишут... оно, небось, ещё тянет за собой Electron с Atom'ом?
     
     
  • 2.12, arzeth (ok), 12:30, 16/10/2016 [^] [ответить]     [к модератору]  
  • –2 +/
    Зачем тут Electron, тут нет же GUI Реализация на JS нужна только для браузеров ... весь текст скрыт [показать]
     
  • 2.40, svboobnov (ok), 12:34, 19/10/2016 [^] [ответить]     [к модератору]  
  • –1 +/
    Сдаётся мне, что JavaScript там используется в качестве прикладного языка вмест... весь текст скрыт [показать]
     
  • 1.8, vitalif (ok), 11:52, 16/10/2016 [ответить] [показать ветку] [···]    [к модератору]  
  • –2 +/
    Кажется где-то я уже видел <шепчет из-за угла: ПООООСТГРЕЕЕССС...ВАКУУМ...>
     
     
  • 2.27, Аноним (-), 07:39, 17/10/2016 [^] [ответить]    [к модератору]  
  • +/
    Всем весом да на кровавый волдырь... Ай-яй-яй!
     
  • 1.10, Аноним (-), 12:21, 16/10/2016 [ответить] [показать ветку] [···]    [к модератору]  
  • –3 +/
    когда уже перистанут писать на жс,жс быть не должно,вспомнити пример с нпм лефтпад,надо писать на си чтоб производильнось была а жс тормозит,почему другие это непонимают.
     
     
  • 2.11, angra (ok), 12:29, 16/10/2016 [^] [ответить]    [к модератору]  
  • +/
    Загугли слово "прототип"
     
     
  • 3.16, Аноним (-), 15:10, 16/10/2016 [^] [ответить]    [к модератору]  
  • +5 +/
    И как часто язык готового продукта отличается от использованного в прототипе?
     
     
  • 4.25, angra (ok), 01:23, 17/10/2016 [^] [ответить]     [к модератору]  
  • +2 +/
    Я не раз встречал, однако для точного ответа на вопрос как часто надо иметь ст... весь текст скрыт [показать]
     
  • 3.32, Аноним (-), 13:45, 17/10/2016 [^] [ответить]    [к модератору]  
  • +/
    А ещё "прототипное наследование", когда один прототип делается на основе другого прототипа.
     
  • 2.13, Аноним (-), 12:59, 16/10/2016 [^] [ответить]    [к модератору]  
  • +3 +/
    когда уже перестанут писать кому на чем писать
     
     
  • 3.23, Какаянахренразница (ok), 18:42, 16/10/2016 [^] [ответить]    [к модератору]  
  • –1 +/
    Когда уже перестанут писать?
     
  • 2.35, Аноним (-), 16:34, 17/10/2016 [^] [ответить]    [к модератору]  
  • –1 +/
    Да, надо писать на си. А то как фсб или анб через уязвимость доступ получат?
     
  • 2.41, svboobnov (ok), 12:37, 19/10/2016 [^] [ответить]    [к модератору]  
  • –1 +/
    > когда уже перистанут писать на жс,жс быть не должно,вспомнити пример с нпм
    > лефтпад,надо писать на си чтоб производильнось была а жс тормозит,почему другие
    > это непонимают.

    Вася! А ну-ка переделай модуль наведения ракеты, который ты на Ada пишешь! Там 5 багов обнаружили вчера, а ты тут по опеннетам шастаешь. И да, зайди ко мне, поговорим о премировании...

     
  • 1.14, Аноним (-), 13:19, 16/10/2016 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    А мне нравится идея, как хранилище кластерной конфигурации, по типу corosync
     
  • 1.17, nc (ok), 15:47, 16/10/2016 [ответить] [показать ветку] [···]    [к модератору]  
  • +1 +/
    Интересная штука. Возможно пригодится для Либгена и перспективных наработок по созданию Пиринговой Библиотеки, а то существующий у них способ распространения огромного sql файла с базой уж больно неудобен.
     
  • 1.18, Аноним (-), 16:22, 16/10/2016 [ответить] [показать ветку] [···]     [к модератору]  
  • +/
    Вопрос что из перечисленного является оригинальной идеей гита JS-хипстеры не з... весь текст скрыт [показать]
     
     
  • 2.26, angra (ok), 01:25, 17/10/2016 [^] [ответить]    [к модератору]  
  • –1 +/
    Реализовать эти фичи можно очень по разному. Возможно их реализация основана на идеях _по реализации_ этих фич в git.
     
  • 1.28, Mail (?), 08:00, 17/10/2016 [ответить] [показать ветку] [···]    [к модератору]  
  • +1 +/
    >>  ранее участвовавшие в работе над  Google Chrome, Chrome OS и ECMAScript

    тут без JS никуда... :)

     
  • 1.30, Анонимомус (?), 12:00, 17/10/2016 [ответить] [показать ветку] [···]    [к модератору]  
  • –1 +/
    Вероятно как замена "традиционным" nosql базам не очень подойдет, но для p2p - это то, чего не хватало, отлично ложится на вики, которую легко задампить, на ZeroNet, где городили костыли с json записями, которые синхронизировались через битторрент, а потом собирались в sqlite кажется.
     
     
  • 2.36, Led (ok), 20:32, 17/10/2016 [^] [ответить]    [к модератору]  
  • +/
    > для p2p - это то, чего не хватало

    Так это ж не мозг!

     
  • 2.39, svboobnov (ok), 12:15, 19/10/2016 [^] [ответить]    [к модератору]  
  • –1 +/
    > Вероятно как замена "традиционным" nosql базам не очень подойдет, но для p2p
    > - это то, чего не хватало, отлично ложится на вики, которую
    > легко задампить, на ZeroNet, где городили костыли с json записями, которые
    > синхронизировались через битторрент, а потом собирались в sqlite кажется.

    Распределённая БД отлично подходит ещё и крупным распределённым компаниям.
    К примеру сетям распространения (дилерским сетям) CocaCola: там, насколько я знаю, схема такая:
    -Центральный офис
    --региональные офисы
    --региональные склады
    или торговым сетям, вроде магнита, пятёрки, дикси:
    -Центральный офис
    --несколько распределительных центров (склады)
    --тысячи магазинов.

    Плюсы: высокая отказоустойчивость и возможность разрешать конфликты обновления данных
    (Аня и Варя редактируют один документ, пушат изменения, а потом старший бух Галя решает: какая версия правильная)

     
  • 1.31, freehck (ok), 12:45, 17/10/2016 [ответить] [показать ветку] [···]    [к модератору]  
  • –1 +/
    Я как-то не уяснил из текста новости: а в чём отличие от Git, кроме отсутствия сборщика мусора и shallow clone? И что ещё за типизированные данные?
     
  • 1.33, Аноним (-), 13:49, 17/10/2016 [ответить] [показать ветку] [···]    [к модератору]  
  • –1 +/
    Я как-то не сразу понял, что это NoSQL СУБД. Интересно, а для реляционной модели данных это возможно было бы сделать?
     
     
  • 2.38, svboobnov (ok), 11:51, 19/10/2016 [^] [ответить]    [к модератору]  
  • –2 +/
    Есть уже такое. Avarda ERP называется. И Сделано в России (ТМ) =)
    вот тут http://avarda.ru/menu95.htm, в самом конце страницы упомянута распределённая репликация.
    Я когда-то хотел пойти в разработчики / консультанты, потому маны курил внимательно.
    Система построена на Firebird, GUI пишут на Delphi, а для репликации запускается отдельная служба.
     
     
  • 3.42, Александро (?), 23:37, 20/10/2016 [^] [ответить]    [к модератору]  
  • +/
    Так оно ж комерческое...
     
  • 1.43, Аноним (-), 11:02, 24/10/2016 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    распределенные БД они не осилили или не открыли для себя еще?
    даже фэйсбук - изредка носился то с касандрой то с другими БД(впрочем не лучшими из класса/типа, как правило).
     

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


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