写点什么

谷歌启动容错 Git 管理系统项目:Git Ketch

  • 2016-02-17
  • 本文字数:954 字

    阅读完需:约 3 分钟

尽管 Git Ketch 项目开发才刚刚开始,谷歌公司已经对外宣布了他们的第一个Git 项目——Git Ketch,一个多主机Git 管理系统,能够通过访问多个Git 服务器来复制信息,以确保复制信息的复原性和可扩展性。所做的这些改变都是基于原有用Java 搭建的名为JGit 的Git 服务器基础之上的,虽然这里面的其它Git 服务器可能是多主机群集的一部分。

最初设计Git 的目的是将Git 打造成一个分布式源代码管理库系统,但是大多数组织都采用了一个集中式的方式:采用一个带有“黄金副本”代码的主库,所有开发者会在这个主库上做修改,然后以最终版本作为更新基础;尽管所有改动能从开发者的私库里直接调取,但很少有这么做的。

只不过这种集中式方法也会导致单点故障。不过别担心,JGit 提供了部分解决方案,那就是通过它的分布式文件系统(DFS)的存储选项。此选项仅能解决部分问题,因为JGit 只定义了一组抽象类,而这组抽象类又定义了DFS 存储协议,但支持数据复制和创建抽象类实现的整体架构则是由用户自己设计的。这就意味着组织已投入相当大的资源——为实现JGit DFS,项目组暂时还不能将JGit DFS 大范围推广使用,谷歌是少有的几个掌握DFS 实现的组织之一。

Ketch 所遵循的策略有些与众不同,不仅仅可以定义一个能够复制 DFS 数据的 Git 服务器,Ketch 还可以假定现存的多个普通 Git 服务器可以互相之间数据和状态同步,因此被称为“多主机”。在任何一个制定的节点上,这些服务器都可以当作“主机”来使用,其余的服务器当作“从机”来利用。任何时候向任何一台服务器发送请求,这个“请求”都会被转发给“主机”,该“主机”将会向所有其他服务器发送推送请求,一旦绝大多数“从机”服务器已经确认推送请求成功,“主机”会向初始呼叫对象确认操作已成功。这一机制是基于 Raft 算法,此算法能够确保至少大多数服务器能够接收已经做了变更的请求;任何服务器上的数据丢失,都可以通过其它服务器同步过来。目前,只有 JGit 服务器可以充当“主机”,虽然在多主机集群里任何 Git 服务器实现的原子推送都可以充当一个参与服务器。

这些已经提出来的改变均可以在 JGit 内部 Gerrit 里看到,关于未来在工具上的改进细节及进展都可以从 JGit 的电子邮件分发列表里获得。

查看英文原文: Google Kick-Starts Git Ketch: A Fault-Tolerant Git Management System

2016-02-17 18:003018
用户头像

发布了 25 篇内容, 共 83587 次阅读, 收获喜欢 1 次。

关注

评论

发布
暂无评论
发现更多内容

Apache Hue介绍

大数据技术指南

hue 5月日更

GitHub霸屏文章!清华教授手写保姆级笔记Scala - 类,网友:太香了

牛哄哄的java大师

Java scala

云原生的进一步具象化

阿里巴巴云原生

大数据 容器 云原生 监控 中间件

王兴的失败观

池建强

成功 王兴 创业失败启示录

消除数据孤岛,华为云DRS让一汽红旗ERP系统数据活起来

华为云开发者联盟

数据库 GaussDB 数据孤岛 华为云DRS ERP

太赞了!美团大牛强推的Spring事务笔记,上线仅1天就获赞上万

飞飞JAva

Java 事务spring

重磅!数字人民币接入支付宝!

CECBC

数字人民币

来了!这份阿里P7大佬梳理的Java注解和反射精髓笔记,信息量过大

飞飞JAva

Java

云厂商下一块必争之地就是它了!

Serverless Devs

Serverless 云原生

Nginx如何配置Http、Https、WS、WSS?

冰河

nginx 负载均衡 反向代理 https HTTP

5月20日,GaussDB将有大事发生

华为云开发者联盟

数据库 云原生 华为云 GaussDB TechWave

被解救的代码 - 代码即服务时代来了!

Serverless Devs

阿里云 Serverless 云原生

一千座5G工厂的花苞

脑极体

从SPACE矩阵,看5G究竟是否在走向成功?

脑极体

前端项目上传图片,压缩,拍照图片旋转解决方案

Vue js canvas axios

凭借师兄甩给我的通关秘籍,顺利拿到字节Offer

学Java关注我

Java 编程 架构 面试

强!上线3天获10w浏览量,京东T8纯手码Redis缓存手册,我粉了

飞飞JAva

redis

边缘计算与云计算的故事

攻城先森

云计算 边缘计算 5月日更

云原生下的灰度体系建设

阿里巴巴云原生

容器 运维 云原生 k8s 监控

异步编程的几种方式,你知道几种?

xcbeyond

Java 异步编程 5月日更

拥有一个高性能低延时数据库是什么样的体验?

华为云开发者联盟

数据库 华为云 GaussDB GaussDB(for Cassandra) 低延时

300条数据变更引发的血案-记某十亿级核心mongodb集群部分请求不可用故障踩坑记

杨亚洲(专注MongoDB及高性能中间件)

数据库 mongodb 架构 MySQ 分布式数据库mongodb

高德 Serverless 平台建设及实践

Serverless Devs

阿里云 Serverless 云原生

☕【Java技术之旅】如何彻底认识AQS的原理(上篇)

码界西柚

Java AQS JVM JUC 5月日更

如何下载和保存YouTube上的中英双语字幕和视频

flyfk

字幕

差点扛不住了,阿里巴巴支付宝面试 5 轮暴击,终获 Offer

Java架构师迁哥

工业制造业亟需数字化转型,区块链可以发挥哪些价值?

CECBC

区块链

实战排查由于系统负载引起的服务响应异常

Coder的技术之路

高并发 性能调优 线上问题

python解释器+pycharm的安装

Geek_6370d5

#python学习之路

消息队列的两种模式

五分钟学大数据

kafka 5月日更

阿里P7大佬!王者级讲解ConcurrentHashMap源码,码农:太透彻了

牛哄哄的java大师

Java ConcurrentHashMap

谷歌启动容错Git管理系统项目:Git Ketch_Java_Abraham Marín Pérez_InfoQ精选文章