4 Followers · 40 Posts

Enterprise Cache Protocol (ECP): a distributed data caching architecture that manages the distribution of data and locks among a heterogeneous network of server systems.

Question Maarten Van den Vreken · Dec 15, 2017

Hi all,

I have a database with 140 million records containing financial transactions. When I do a query to calculate the sum of those records spanning a number of months it takes around 4 seconds on my database server which seems reasonable. However if I run the same query on an application server it takes around 40 seconds to do the same query.

In just this instance I would like to run that piece of code on the database server instead of the application server. It's a query that is only run a few times a day so I would prefer to have a fast result and don't mind putting a bit more stress on my database server for that.

4
0 891
Question Sébastien Demoustiez · Jul 27, 2017

Hello,

I have a DB server (ser-app-db) where cache is installed as server.

I have a Web server (ser-app-w) where cache is installed as web server and configured as CSP gateway.

I followed the configuration guide (https://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KE…) and ser-app-w perfectly display the CSP and CLS pages.

But that's not working for my REST service, for exemple with the REST sample:

http://ser-app-db/csp/samples/docserver/request(GET): work and show the request

http://ser-app-w/csp/samples/docserver/request(GET): return a 404.

Can someone he

9
0 1533
Question Sébastien Demoustiez · Jul 25, 2017

Hello,

I try to create an ECP between to CACHE server.

The ECP is working, the remote DB is created and the namespace is created and linked on the remote DB.

The table appears on the server but when I try to access I get this message:

ERREUR #5540: SQLCODE : Message 400 : Process 4076 failed to compile Cached Query Class %sqlcq.###.cls6 with these errors: ERREUR #5002: Erreur Cache: <COLLATION NOT SUPPORTED>getdependencyclasses+54^%occDepend SQLTEXT: SELECT ...

My servers have different cache version: 2016.2 and 2015.2, perhaps that's my problem ?

Thanks in advance

Sébastien

3
0 1025
Question CM Wang · Jun 19, 2017

Hi,

I want to attach one local namespace on instance A to the database on instance B.

How could I use ECP to achieve my goal?

Should I config instance B as ECP data server? If so, how could I explicitly specify which database on instance B could be exposed ?

Thanks for your help.

4
0 637
Article Murray Oldfield · Oct 1, 2016 10m read

One of the great availability and scaling features of Caché is Enterprise Cache Protocol (ECP). With consideration during application development distributed processing using ECP allows a scale out architecture for Caché applications. Application processing can scale to very high rates from a single application server to the processing power of up to 255 application servers with no application changes.

ECP was used widely for many years in TrakCare deployments I was involved in. A decade ago a 'big' x86 server from one of the major vendors might only have a total of eight cores. For larger dep



6
2 3572
Article Alexey Maslov · Nov 17, 2016 11m read

The technology of load balancing between several servers with relatively low capacity has been a standard feature of Caché for quite a while. It is based on the distributed cache technology called ECP (Enterprise Cache Protocol). ECP provides a host of possibilities for horizontal scaling of an application, and yet keeping the project budget fairly low. Another apparent advantage of ECP network is the possibility to conceal its architecture in the depths of Caché configuration so that applications developed for the traditional (vertical) architecture can be fairly easily migrated to a horizontal ECP environment. The ease of this process is so mesmerizing, that you start wishing it was always this way. For instance, everybody is used to having a possibility to control Caché processes: the $Job system variable and associated classes/functions work magic in skilful hands. Stop, but now processes can end up being on different Caché servers…

This article is about how to gain as much transparency in controlling processes in ECP environment as in traditional (non ECP) one.

6
0 2092
Question David Little · Oct 31, 2016

Hey guys

We have a need to mount remote databases using ECP, but with the Application servers mounting some of the remote databases as Read Only.  The Data servers will keep them R+W as normal.

From what I can gather this isn't possible using a "Mount Read Only" option, it looks like ECP just inherits the Database servers settings.  My reading seems to require roles/access/permissions to enforce Read Only on these remote mounts.  Does anyone have an easy guide/cheat sheet to set up read only ECP Application server read-only mounting using roles/permissions?  Or an alternative method to achieve t

2
0 913
Article Murray Oldfield · Sep 30, 2016 1m read

I saw someone recently refer to ECP as magic. It certainly seems so, and there is a lot of very clever engineering to make it work. But the following sequence of diagrams is a simple view of how data is retrieved and used across a distributed architecture.

For more more on ECP including capacity planning follow this link: Data Platforms and Performance - Part 7 ECP for performance, scalability and availability

To start

  • There are three globals on disk ^A, ^B and ^C.
  • Global ^B equals "B"
  • There is one Data server and two or more Application servers.
  • The diagrams show the cache (global buffers) o

















0
0 1338
Question Timur Safin · Jun 15, 2016

Let assume you have a infinitely scaling algorithm implemented in your application, using replication, ECP, or any other means of horizontal scaling, and let assume you know how to run your system under any volume of requests, the trick is to deploy required number of computing nodes in the cluster. If we are talking about cluster of 2-4 nodes your administrator (or as they call it today "devops engineer") will install anything manually. Probably he will easily handle 5 nodes configuration in the cluster. But what if you need to deploy 10, 100, or 200 properly configured, interconnected nodes?

8
0 755