Есть ли лучшая база данных, чем Git (с сериализуемыми, неизменяемыми, версионными деревьями)? - PullRequest
10 голосов
/ 22 августа 2011

Представьте себе структуру данных, стоящую за Git.Это похоже на устойчиво сохраняющуюся структуру данных , за исключением использования хеш-ссылок вместо традиционных указателей.

Мне нужна структура данных Git, кроме как без какого-либо рабочего дерева и индекса.И там будут миллионы филиалов, каждый из которых отслеживает горстку других местных филиалов.Коммиты и слияния будут происходить несколько тысяч раз в минуту в разных потоках.Извлечение происходит каждую секунду.

Между libgit2 и jgit Я могу использовать подсистему хранения данных Git.

Но я использую подходящий инструмент для работы?Есть ли БД с функциями git, но более быстрая / более параллельная / масштабируемая / с меньшим несоответствием импеданса?Записанные в память записи были бы чрезвычайно полезны.

Задание:

A совместно отредактированная игра .У каждого игрока есть своя ветвь, и каждое изменение, которое он вносит в игровой мир, применяется только к его версии.Изменения возвращаются в ветку «master» доверенными пользователями.Данные и исходный код часто связаны друг с другом, что требует одинаковых функций ветвления и слияния.

Ответы [ 4 ]

3 голосов
/ 04 октября 2013

Datomic обеспечивает постоянное хранение данных и встроенное понятие времени.

Разработчики ядра даже создали пример приложения , которое реализует репозиторий git вбазы данных

1 голос
/ 22 августа 2011

Посмотрите, как работает GitHub с точки зрения сотрудничества между проектами. Ключ в том, как многие пользователи выбирают копирование, использование и копирование содержимого файлов других пользователей, чтобы репозиторий github core мог выполнять агрегирование.

Если у вас нет такого повторного использования, философия git, вероятно, не соответствует вашим потребностям. Задача состоит в том, чтобы определить ваши точки соответствия импеданса и продвигать его. Многие люди не совсем понимают, почему Git работает, а «нормальные» VCS - нет (то есть, почему / когда VCS в старом стиле работала в первую очередь? Git работает, потому что он запускается с современными компьютерными возможностями.

1 голос
/ 23 августа 2011

JGit может использовать JDBC, HBase, Cassandra, Bigtable и многое другое, и это безопасно для потоков.

1 голос
/ 22 августа 2011

Хотя части индекса / рабочей копии git можно выделить достаточно легко, git не предназначен для слияний или фиксации со скоростью тысяч в секунду на одной машине.Код ядра, по большей части, даже не потокобезопасен.Скорее всего, вам потребуется создать новую систему для ваших данных (конечно, вы все равно можете использовать git для кода, а также можете посмотреть на создание коммитов git для представления ваших данных при необходимости и т. Д.).

...