Embedding Application Servers in Distributed Datastores

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional client/server architectures face inefficiencies in scaling the storage tier and managing data locality, leading to increased network hops and data transfer, especially in 'big data' environments with multiple servers.

Innovation Solution

Embedding application servers within distributed datastores to utilize data locality information, reducing remote procedure calls and data transfer by leveraging the datastore's replication and failover capabilities, thereby improving time and bandwidth efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If traditional client/server architecture with separate compute and storage tiers is used, then isolation and scaling of compute tier is improved, but network hops and data transfer between tiers increase

Engineering Contradiction:
Improvescaling of compute tierVSAvoidnetwork traffic
Core Design Contradiction:
Adaptability or versatilityVSLoss of energy

Solution Approach 1:

The patent embeds application servers within the distributed datastore infrastructure, merging compute and storage tiers into a unified architecture. Application server instances run alongside datastore nodes, allowing data processing to occur at the location where data resides, thereby eliminating network hops between separate compute and storage tiers while maintaining scaling capabilities.

Inventive Principle:
Principle #5Merging (Combining)

2Ease of operation

If data is fetched and processed from remote storage tier, then data access flexibility is improved, but time and bandwidth efficiency deteriorate

Engineering Contradiction:
Improvedata access flexibilityVSAvoiddata processing time
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The system pre-positions application server instances within the distributed datastore infrastructure, so that compute resources are already located near the data before processing is needed. This preliminary placement eliminates the need to fetch data across the network during operation, reducing data processing time while maintaining access flexibility through the distributed architecture.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If application servers are deployed separately from datastore, then application independence is improved, but fault tolerance and availability deteriorate

Engineering Contradiction:
Improveapplication independenceVSAvoidfault tolerance
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent implements a nested architecture where application server instances are embedded within the distributed datastore node structure. Each datastore node can host application server instances, creating a hierarchical arrangement where applications inherit the fault tolerance and availability properties of the underlying distributed datastore while maintaining their functional independence through isolated process execution.

Inventive Principle:
Principle #7Nested doll (Nesting)

Data Source

PatentUS9264519B1Embedding application services in a distributed datastore
Publication Date: 2016.02.16 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US9264519B1 patent drawing
  • US9264519B1 patent drawing
  • US9264519B1 patent drawing

AI summary

Described embodiments provide systems and methods for building client server applications. The application server code is deployed within a distributed datastore and utilizes the datastore's data locality information to fulfill requests with minimal remote procedure calls (RPC), reduced transfer of data between servers, and shared data caches. The application server inherits the properties of the distributed datastore such as statefulness, replication and failover. Described embodiments also enable the fetching and processing of data in a “big data” environment—a system that contains multiple servers' worth of data, with improved time and bandwidth considerations.