Сегодня я рад сообщить, что Chronos, мой долгосрочный проект сохранения данных и управления версиями для JDK, наконец-то выпущен в версии 1.0.0 в качестве проекта с открытым исходным кодом на Github .
Проект Chronos начинался как мой докторский проект, но в конечном итоге превратился в готовую к производству версию базы данных во время моей работы в Txture . Он предлагает:
- Хроно ДБ : Хранилище значений ключей с версиями
- ХроногРаф : База данных графиков, совместимая с TinkerPop, с поддержкой управления версиями
- Хроносфера : Ан Хранилище моделей, совместимых с EMV
Управление версиями означает, что каждое изменение , внесенное в базу данных, будет сохраняться и управляться на неопределенный срок. Это позволяет перемещаться во времени по вашим данным и их истории, аналогично запросу ПО СОСТОЯНИЮ НА
в SQL. Chronos использует интеллектуальную схему хранения данных, чтобы данные не дублировались без необходимости на вашем жестком диске, но вы все равно можете получить к ним доступ, как если бы это было так.
Вот основной пример, где мы получаем вчерашние данные с помощью хронографа:
long yesterday = System.currentTimeMills() - TimeUnit.DAYS.toMillis(1); try(ChronoGraph txGraph = graph.tx().createThreadedTx(yesterday)){ // txGraph will contain the database state as it was yesterday Vertex johnDoe = txGraph.traversal().V().has("name", "John Doe").next(); // johnDoe will also have the same state as it did yesterday }
Точно так же, как Chronos предлагает контроль версий, он также позволяет ветвить ваши данные, как вы привыкли ожидать, например, от Git или SVN:
try(ChronoGraph txGraph = graph.tx().createThreadedTx("my-branch")){ // txGraph now points to branch "my-branch". // Everything you do here will only be visible on this branch. }
В Chronos есть целый набор функций, таких как:
- полные транзакции ACID
- вторичное индексирование
- полное и инкрементное резервное копирование
- дата возврата (
перебазирование
-подобный API)
Все в проекте с открытым исходным кодом. Бесплатно для всех в соответствии с лицензией aGPL v3.0.
Этот проект был мне очень дорог с момента его создания, и так будет и впредь. Я горжусь тем, что наконец-то выпустил версию 1.0.0 с открытым исходным кодом. Посетите наш репозиторий Github и дайте ему звездочку, если вы считаете, что это интересно:)
Оригинал: “https://dev.to/martinhaeusler/announcing-the-chronos-project-v1-0-0-open-source-release-1ke6”