Technical Overview 05 - ECE
Technical Overview 05 - ECE
The following is intended to outline our general product direction. It is intended for information
purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any
material, code, or functionality, and should not be relied upon in making purchasing decisions. The
development, release, timing, and pricing of any features or functionality described for Oracle’s
products may change and remains at the sole discretion of Oracle Corporation.
1 Introduction
2 Coherence
3 Components
4 Subscriber caching
WSM SOAP API BC REST API TMF REST API JCA PCM API
Pricing
BRM Server
Design
Center Connection Manager
DM DM DM DM DM DM DM
Oracle AQ Vertex Fusa Ldap Invoice IFW BRM
Billing Database
Care
Persistence
Database
Rated Event
Kafka Loader
Persistence
Radius Diameter HTTP/2 Database
Gateway Gateway Gateway
Elastic Charging Engine
1 Introduction
2 Coherence
3 Components
4 Subscriber caching
Terminology Meaning
10
Distributed Cache
A B
• Operations against data in the cache can be A A
accomplished with a "single hop”, in other B Primary Primary B
words, involving at most one other server. C C
D C D
D
Backup Backup
Logical Logical
• Location Transparency: Although the data is Partitioned Cache Partitioned Cache
spread out across cluster nodes, the exact
Node 1 Node 2
same API is used to access the data. This is
called location transparency.
11
Distributed Cache – get()
A
get() A A
A B
B Primary Primary B
C get() C C
D C D D
Logical Backup Backup Logical
Business Layer Partitioned Cache Partitioned Cache Business Layer
Node 1 Node 2
A C D A
get() B B
B Primary Primary
C C
D get() D B A D
Logical Backup Backup Logical
Business Layer Partitioned Cache Partitioned Cache Business Layer
Node 3 Node 4
12
Distributed Cache – put()
A
put() A A
A B
B Primary Primary B
C C put() C
D C D D
Logical Backup Backup Logical
Business Layer Partitioned Cache Partitioned Cache Business Layer
Node 1 Node 2
A C D A
B Primary Primary B
C C
D B A D
Logical Backup Backup Logical
Business Layer Partitioned Cache Partitioned Cache Business Layer
Node 3 Node 4
13
Node, Machine, Site and Rack Safety
§ Rack safe
§ Site safe Site 1 Site 2
P1 MAN P2
P2’ P1’
14
Elastic Charging Engine
1 Introduction
2 Coherence
3 Components
4 Subscriber caching
Persistence
Radius Diameter HTTP/2 Database
Gateway Gateway Gateway
ECE
Rated Event
Kafka Loader
• Handles
- Trigger billing
- Subscriber lifecycle state change Pricing
Updater
EM
Gateway
BRM
Gateway
Customer
Updater
- First usage
- POID replenishments Rated
Event
Elastic charging servers Formatter
Pricing EM BRM
• Called from CM as opcode Updater Gateway Gateway
Customer
Updater
Rated
• Writes to ECE Coherence cache Elastic charging servers
Event
Formatter
Synchronous flow
Persistence
• Radius Diameter HTTP/2 Database
Gateway Gateway Gateway
ECE
• Synchronizes config,
metadata and pricing
data from PDC to ECE
Rated Event
Kafka Loader
Rated Event
Kafka Loader
Rated Event
• NoSQL database Kafka Loader
Persistence
Radius Diameter HTTP/2 Database
Gateway Gateway Gateway
ECE
Rated Event
Kafka Loader
1 Introduction
2 Coherence
3 Components
4 Subscriber caching
Selective loading
Partial loading
25
Selective Loading of Subscribers
Selective loading
Filter conditions
26
Selective Loading of Subscribers
- System in USAGE_PROCESSING
- Run preselect_customers.groovy script to create new work item entries with the newly created account POIDs in
BRM schema (can use the filtering capability in the groovy script)
- Invoke the customer loader application from ECC console to trigger the incremental load, this would be done per
BRM schema
27
Partial Loading of Subscribers
Example
• Total 10000 customers High Watermark1500
• 60% in cache = 6000 customers
• 3 machines M1, M2 and M3 each with 2 ECE nodes
• Each ECE node = 6000/(3*2) = 1000 customers
Low Watermark 1000
• If one machine goes down – 2000 customers will be divided between
the existing two machines, each node will get another 2000/(2*2) =
500 customers. So each node will host 1500 customers.
• In order to accommodate one machine failure, you can set
- High water mark at 1500 customers
ECE Cache
- Low watermark at 1000 customers
X
Initial loading up to High Watermark 60% of total 10000 which is 6000 is cached
Stretched distribution 3000
Subsequent reloads up to Low Watermark Normal Distribution 2000
3000
2000 2000
High Watermark 1500 1500 1500 1500
Low Watermark 1000 1000 1000 1000 1000 1000
M1 M2 M3
Initial Data Loading
ConfigLoader Loa
d from
File ECE Oracle
DB
Load from PDC
PricingUpdater
Cache
Store
Table
BRM
rom
Lo ad f Charging Grid
CustomerUpdater
Data Reloading
ConfigLoader Trig
g er R
eloa ECE Oracle
d
DB
Pull Data
PricingUpdater Trigger Reload into Cache
Cache
Store
Table
Reload
r
CustomerUpdater Tr igge Charging Grid
Lazy Loading – Load only when needed
Scenario
• When a charging request arrives for a customer and
relevant data is not in cache
ECE Oracle
DB
Lazy loading or on-demand loading Pull Data
into Cache
• Data for the subscriber is loaded into cache from ECE Cache
Store
Oracle DB Table