The OpenNET Project / Index page

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

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

16.10.2016 08:40

Сформированный в августе стартап 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 3.0
Короткая ссылка: https://opennet.ru/45326-git
Ключевые слова: git, noms, database
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (38) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, A.Stahl (ok), 09:35, 16/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –20 +/
    >возможность контроля за версиями данных, создания форков БД, синхронизации изменений из разных БД, слияния БД и отслеживания истории изменений.

    Ага, это так нужно для БД, что просто слов нет.
    Давайте ещё хранить диффы. Точно. Гениальная идея! Пусть ещё курс форинта к навозу хранят. И погоду с отставанием в 693 месяца. Это тоже прикольно.

     
     
  • 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 нужна только для браузеров и людей, у которых мозг на JS написан. Реализация на Go — для обычного использования.
    И у реализации на JS всего лишь 4 зависимости (очень мало).
     
  • 2.40, svboobnov (ok), 12:34, 19/10/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Вот и субд на JavaScript пишут... оно, небось, ещё тянет за собой
    > Electron с Atom'ом?

    Сдаётся мне, что JavaScript там используется в качестве прикладного языка (вместо SQL реляционных баз). По мне, так лучше б Lua использовали.

     

  • 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 +/
    Я не раз встречал, однако для точного ответа на вопрос "как часто" надо иметь статистику, которой скорее всего ни у кого нет.
    Из примеров, что я с ходу вспомнил и что входило в дистрибутив debian как в виде прототипа на скриптовом языке, так и в переписанном на С виде:
    cupt - альтернатива apt, первая версия на perl, вторая на С. Большая часть фич была уже в первой.
    hardlinks - утилита для дедупликации файлов в дереве путем замены на хардлинки. Первая версия была на python и она тоже имела большую часть фич.
     
  • 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 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >СУБД Noms, основанная на идеях Git
    >возможность контроля за версиями данных, создания форков БД, синхронизации изменений из разных БД, слияния БД и отслеживания истории изменений

    Вопрос: что из перечисленного является оригинальной идеей гита? 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:
    Текст:



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

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