Clustered Source Code Management Caching

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Clustered source code management systems face challenges in balancing workload distribution and managing data replication across multiple nodes, leading to performance degradation and increased complexity in backup and maintenance procedures.

Innovation Solution

Implementing a caching mechanism within the clustered SCM system to store and retrieve frequently accessed data locally on cluster nodes, reducing the load on shared file servers and improving performance by avoiding unnecessary data access and synchronization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If repository data is sharded over multiple file server nodes, then the system can serve more users simultaneously, but every SCM process must run on the same file server node that stores the relevant data, causing workload imbalance and performance degradation

Engineering Contradiction:
Improveuser serving capacityVSAvoidworkload balancing
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The patent segments the coupling between data storage and process execution by allowing SCM processes to be distributed independently from file server nodes. Cluster nodes can run multiple SCM processes that access repository data across different file server nodes through the shared file server, enabling workload to be balanced across cluster nodes rather than being constrained to specific file server nodes.

Inventive Principle:
Principle #1Segmentation

2Speed

If repository data is replicated on all nodes, then data access is improved, but data synchronization between nodes becomes complex and storage requirements increase

Engineering Contradiction:
Improvedata access speedVSAvoiddata synchronization complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent introduces a shared file server as an intermediary between cluster nodes and repository data. Instead of replicating data across all nodes and managing complex synchronization, the shared file server provides a centralized storage location that all cluster nodes can access. This eliminates the need for data replication and synchronization while maintaining fast access through the shared file server interface.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Quantity of substance

If repositories are sharded over multiple file servers, then storage capacity is distributed, but backup and maintenance procedures become more complex

Engineering Contradiction:
Improvestorage capacityVSAvoidbackup and maintenance procedures
Core Design Contradiction:
Quantity of substanceVSEase of manufacture

Solution Approach 1:

The patent makes the shared file server a universal access point for all repository data, regardless of which file server node physically stores the data. This universal interface simplifies backup and maintenance procedures, as administrators can manage all repositories through a single shared file server rather than accessing multiple distributed file servers. The shared file server consolidates management functions while maintaining distributed storage capacity.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS10628383B2Systems and methods for enhancing performance of a clustered source code management system
Publication Date: 2020.04.21 ATLASSIAN PTY LTD
  • US10628383B2 patent drawing
  • US10628383B2 patent drawing
  • US10628383B2 patent drawing

AI summary

A clustered source code management system is described. The system comprises a plurality of cluster nodes, a shared file server storing repository data, and a load balancer. Each of the plurality of cluster nodes is configured to receive an incoming request sent from a client computer, the incoming request being a source code management request to access repository data stored on the shared file server and process the incoming request to determine if a type of the incoming request is a cacheable request type. If the incoming request is of a cacheable request type, the cluster node is configured to determine if a valid cached response to the incoming request is available on storage media locally accessible to the cluster node; and, if so, respond to the incoming request by communicating the valid cached response to the client computer.