¿Hay una mejor database que Git (con treees serializables, inmutables y versionados)?

Imagine la estructura de datos detrás de Git. Es como una estructura de datos confluentemente persistente , excepto el uso de references hash en lugar de pointers tradicionales.

Necesito la estructura de datos de Git, excepto sin el tree de trabajo y el material de índice. Y habría millones de sucursales, cada una rastreando un puñado de otras sucursales locales. Compromisos y fusiones ocurrirían miles de veces por minuto en diferentes hilos. Los tirones ocurrirían cada segundo.

Entre libgit2 y jgit puedo usar el subsistema de almacenamiento de datos de Git.

¿Pero estoy usando la herramienta correcta para el trabajo? ¿Hay un DB que tenga las características de git, pero es más rápido / más concurrente / escalable / less impedancia? Las escrituras en memory caching serían extremadamente útiles.

La tarea:

Un juego editado en queueboración . Cada jugador tiene su propia twig, y ​​cada cambio que hacen en el mundo del juego solo se aplica a su versión. Los usuarios de confianza vuelven a fusionar los cambios en la twig 'master'. Los datos y el código fuente a menudo están unidos, y necesitan la misma funcionalidad de bifurcación y fusión.

Datomic proporciona un almacenamiento de datos persistente y una noción de time incorporada.

Los desarrolladores centrales incluso crearon una aplicación de muestra que implementa un repository git en la database

Aunque las partes de índice / copy de trabajo de git se pueden separar con la suficiente facilidad, git no está diseñado para fusiones o confirmaciones a razón de miles por segundo en una sola máquina. El código central ni siquiera es seguro para roscas, en su mayor parte. Es probable que necesite crear un nuevo sistema para sus datos (aún puede usar git para el código, por supuesto, y también puede search la generación de confirmaciones de git para representar sus datos cuando sea necesario, etc.).

Eche un vistazo a cómo funciona github en términos de queueboración entre proyectos y entre ellos. La key está en la forma en que muchos usuarios optan por copyr, usar y replicar el contenido del file de otros, de modo que el repository central de github pueda hacer la agregación.

Si no tiene esa reutilización, entonces la filosofía de git probablemente no coincida con su necesidad. El desafío es identificar sus puntos de coincidencia de impedancia y promoverlo con fuerza. Mucha gente no entiende realmente por qué funciona git y VCS "normal" no (es decir, ¿por qué / cuándo funcionó el VCS de estilo antiguo? – pistas de Kaolin y dibujos de lino para el RMS Titanic). git funciona porque comienza con las capacidades modernas de la computadora.

JGit puede usar JDBC, HBase, Cassandra, Bigtable y más y es seguro para subprocesss.