Version Control Adaptive Architecture for SVN Failover

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Subversion (SVN) source control systems face performance issues due to end-user and automated requests, leading to instability and the inability to automatically failover to another server in case of a disaster, especially as they grow to support tens of thousands of global technologists, resulting in race conditions and inefficiencies with multiple servers working on the same file system.

Innovation Solution

A version control adaptive system is implemented, featuring a global load balancer that directs requests to a front-end web proxy server, which uses a lookup table to route requests to specific SVN servers, with a corresponding Disaster Recovery (DR) server for automatic failover, ensuring that only one server works on a file at a time and distributing load across multiple hosts for improved performance and reliability.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple servers work on the same file system in a clustered environment, then system capacity and availability are improved, but race conditions and inefficiencies occur

Engineering Contradiction:
Improvesystem capacityVSAvoidrace conditions
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent segments the file system into separate partitions, with each SVN server working on a dedicated partition. This segmentation eliminates race conditions by ensuring that multiple servers do not simultaneously access the same file system resources, while still allowing the clustered environment to provide improved capacity and availability through distributed server operations.

Inventive Principle:
Principle #1Segmentation

2Device complexity

If a single server supports source code management, then system simplicity is maintained, but the system cannot support growth to tens of thousands of global technologists

Engineering Contradiction:
Improvesystem simplicityVSAvoidsystem capacity
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent divides the source code management system into multiple SVN servers, each handling specific repositories or partitions. This segmentation allows the system to scale to support tens of thousands of global technologists while maintaining operational simplicity through standardized server configurations and automated load balancing mechanisms.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a load balancer as an intermediary component that distributes incoming requests across multiple SVN servers. This mediator abstracts the complexity of the distributed system from users, presenting a unified access interface while automatically routing requests to appropriate servers, thereby maintaining simplicity for end users while enabling large-scale capacity.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If automated failover is implemented with DR servers, then system reliability is improved, but system complexity increases

Engineering Contradiction:
Improvefailover capabilityVSAvoidsystem architecture
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent implements Disaster Recovery (DR) servers as copies of primary SVN servers, each DR server maintaining a replica of its paired primary server's data and configuration. This copying approach enables automated failover by allowing the DR server to immediately take over when the primary server fails, while keeping the architecture relatively simple through standardized server pairs and automated failover mechanisms.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent pre-configures DR servers with identical software, data replicas, and failover capabilities before any failure occurs. This preliminary preparation ensures that when a primary server fails, the DR server can immediately activate and resume operations without requiring complex real-time decision-making or configuration changes, thereby improving reliability while managing architectural complexity.

Inventive Principle:
Principle #10Preliminary action

4Productivity

If load balancing is implemented across multiple SVN servers, then request handling capacity is improved, but request routing complexity increases

Engineering Contradiction:
Improverequest handling capacityVSAvoidrequest routing
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces a load balancer as an intermediary that automatically routes incoming requests to appropriate SVN servers based on current system state, repository location, and server capacity. This mediator handles the complexity of request routing internally, allowing multiple servers to work in parallel to improve request handling capacity while users interact with a simplified unified interface.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent pre-establishes routing rules and server-capability mappings in a lookup table before runtime. This preliminary configuration enables the load balancer to quickly and efficiently route requests without performing complex real-time analysis, thereby improving request handling capacity while keeping the routing mechanism relatively simple through predetermined rules.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10482069B1Method and system for implementing a version control adaptive architecture platform
Publication Date: 2019.11.19 JPMORGAN CHASE BANK NA
  • US10482069B1 patent drawing
  • US10482069B1 patent drawing
  • US10482069B1 patent drawing

AI summary

An embodiment of the present invention is directed to a version control adaptive architecture platform. The system comprises: a global load balancer that receives a read/write request from a user, the request comprising a URL, and determines a corresponding front-end web proxy server; a Proxy server that receives the request and using the URL, accesses a lookup table to determine a specific storage component and Subversion (SVN) server to route the request; and a plurality of SVN servers, where a SVN server, identified by the Proxy server, processes the request and returns a result to the user, wherein the SVN server has a corresponding Disaster Recovery (DR) server that monitors live data processed by the SVN server for failover mode upon detection of a failover event where the SVN server automatically reroutes traffic to the corresponding DR server.