Try Playground
Show / Hide Table of Contents

WAN Replication Across Multiple Data Centers

NCache provides you WAN Replication as a disaster recovery plan through the Bridge feature. A bridge is created between multiple cluster caches and data is replicated from the source to the other site through that bridge, without disrupting the clients' operations.

For more conceptual and behavioral detail of the bridge, you can refer to Bridge Architecture in Administrator's Guide.

In bridge, there can be more than one active site cache and cache operations can be simultaneous. It is possible that the client connected with one active site cache adds some keys and the same key operation is performed by the other active node. In such a situation the bridge conflict resolver comes into play. It resolves the conflicts and decides which key to apply on the cache depending upon the defined rules.

If the user hasn't configured any conflict resolver rules, then NCache uses the default resolver rule. In the default rule, a timespan is added with each operation performed on the cache and it keeps the latest operation. A check is performed on the version of the bridge item. If it has a newer time stamp or if the version is the latest or the same it replaces that with the new entry and in case of old, it keeps the old entry.

WAN Replication Prerequisites for Datacenters

Before using WAN Replication with NCache ensure that following rerequisites are fulfilled:

  • .NET
  • To learn about the standard prerequisites required to work with all NCache server-side features, please refer to the given page Server-Side API Prerequisites.
  • For API details, refer to: ICache, CacheItem, IBridgeConflictResolver, BridgeItemVersion.
  • This should be a class library project using Microsoft Visual Studio.
  • Make sure to configure Bridge using the NCache Management Center after implementing this class.

Sample Implementation of IBridgeConflictResolver Interface

The following sample implementation of the Conflict Resolver contains logic to resolve any conflict that may occur while replicating an operation from the bridge for a key that already exists in the cache. Whenever any conflict occurs, the cache calls BridgeConflictResolution to decide which operation to apply on the cache depending upon the rules defined in it. It takes two parameters/entries, both are of the ProviderBridgeItem type. ProviderBridgeItem contains the following parameters:

  • .NET
public class Resolver : IBridgeConflictResolver
{
    public void Init(System.Collections.IDictionary parameters)
    {
        // Initialize parameters
    }

    public ConflictResolution Resolve(ProviderBridgeItem oldEntry, ProviderBridgeItem newEntry)
    {
        var conflictResolution = new ConflictResolution();

        switch (oldEntry.BridgeItemVersion)
        {
            case BridgeItemVersion.OLD:
            {
               conflictResolution.ResolutionAction = ResolutionAction.ReplaceWithNewEntry;
            }
            break;

            case BridgeItemVersion.LATEST:
            {
                conflictResolution.ResolutionAction = ResolutionAction.KeepOldEntry;
            }
            break;

            case BridgeItemVersion.SAME:
            {
                if (oldEntry.OpCode == BridgeItemOpCodes.Remove)
                {
                    conflictResolution.ResolutionAction = ResolutionAction.ReplaceWithNewEntry;
                }
                else
                {
                  conflictResolution.ResolutionAction = ResolutionAction.KeepOldEntry;
                }
            }
            break;
        }

        return conflictResolution;

        // Configure this implementation on cache
    }

    public void Dispose()
    {
        // Dispose resources
    }
}

See Also

Custom Cache Dependencies
Entry Processor
Configuring Bridge for WAN Replication

In This Article
  • WAN Replication Prerequisites for Datacenters
  • Sample Implementation of IBridgeConflictResolver Interface
  • See Also

Contact Us

PHONE

+1 (214) 764-6933   (US)

+44 20 7993 8327   (UK)

 
EMAIL

sales@alachisoft.com

support@alachisoft.com

NCache
  • NCache Enterprise
  • NCache Professional
  • Edition Comparison
  • NCache Architecture
  • Benchmarks
Download
Pricing
Try Playground

Deployments
  • Cloud (SaaS & Software)
  • On-Premises
  • Kubernetes
  • Docker
Technical Use Cases
  • ASP.NET Sessions
  • ASP.NET Core Sessions
  • Pub/Sub Messaging
  • Real-Time ASP.NET SignalR
  • Internet of Things (IoT)
  • NoSQL Database
  • Stream Processing
  • Microservices
Resources
  • Magazine Articles
  • Third-Party Articles
  • Articles
  • Videos
  • Whitepapers
  • Shows
  • Talks
  • Blogs
  • Docs
Customer Case Studies
  • Testimonials
  • Customers
Support
  • Schedule a Demo
  • Forum (Google Groups)
  • Tips
Company
  • Leadership
  • Partners
  • News
  • Events
  • Careers
Contact Us

  • EnglishChinese (Simplified)FrenchGermanItalianJapaneseKoreanPortugueseSpanish

  • Contact Us
  •  
  • Sitemap
  •  
  • Terms of Use
  •  
  • Privacy Policy
© Copyright Alachisoft 2002 - 2025. All rights reserved. NCache is a registered trademark of Diyatech Corp.
Back to top