On this page
About Bitbucket Mesh
Bitbucket Mesh is a distributed, replicated, and horizontally scalable Git repository storage system, which increases performance, scalability, and improves the resilience of Bitbucket.
Since clustering was introduced in Bitbucket Data Center, Git repositories have been hosted on a shared file system (specifically as NFS based filesystem), which often becomes a performance bottleneck. NFS introduces additional latency, which isn’t significant for large operations, like streaming a pack file, but can be extremely punishing for small operations, like accessing refs or loose objects. Bitbucket Mesh utilizes local disks for fast read/write access and moves Git processing closer to the storage for reduced I/O latency. As a result, it greatly improves the performance of Bitbucket.
Bitbucket Data Center is designed for high availability. However, not all the elements are truly HA. The shared file system can become a single point of failure. Bitbucket Mesh offers a solution to this problem. When repositories are migrated to Mesh, they are replicated to multiple Mesh nodes. That ensures the loss of any single node has no impact on the availability of the repositories it hosted because each still has replicas available on other nodes. When Mesh nodes are brought back online, they automatically repair their replicas and are returned to service.
Bitbucket Mesh architecture allows horizontal scaling of Git storage and processing. Repositories are replicated to multiple Mesh nodes, and each replica is capable of actively serving both read and write traffic. Each replica adds capacity and does so more efficiently than adding Bitbucket Data Center cluster nodes because each has independent storage in addition to its own CPUs and RAM.
For more detail about Bitbucket Mesh, refer to Bitbucket Mesh whitepaper.
What does Mesh look like?
Mesh is most easily understood through two diagrams.
The image below represents a three-node cluster deployed with NFS-based Git repository storage. This is, in principle, how Bitbucket Data Center is deployed on all versions before 8.0.
Bitbucket DC 7.x with 3 cluster nodes and NFS storage
Now observe the architecture of a Bitbucket Data Center 8.0 instance with Bitbucket Mesh. Mesh replaces NFS as storage for Git repositories, bringing Git processing closer to the storage. Distribution and replication of data also improves availability and prevents the NFS Server from being a single point of failure.
Bitbucket DC 8.x with 3 cluster nodes and 3 Mesh nodes
Ready to get started setting up Mesh?
Got other questions on Mesh? Check out these FAQs