For VoLTE calls, CPS
identifies a stale Gx session from the latest Gx session thus allowing CPS to
load the latest Gx session and act accordingly. For this, the secondary key
mapping stores the primary key in addition to the bucket ID and the site ID,
that is, SecondaryKey = <BucketId>; <Site Id>; <Primary Key>.
To enable this
feature, add the following parameter in the
/etc/broadhop/qns.conf file:
-Dcache.config.version=1
After migration
starts, QNS queries with the old format first. If secondary key mapping is not
found with the old format, QNS queries with the new format. This leads to
increase in query on cache ring during the data migration process. Due to this,
there could be some performance impact during the migration process.
Primary keys are
stored in the memcache. This increases storage on the memcache. By default,
memcache has two GB memory limit. Once memory limit is reached, memcache
automatically deletes old records to accommodate new records.
To accommodate more
sessions, add more ringsets to distribute data among multiple ringsets.
In case no sessionmgr
is available to add a ringset, memory limit can be increased on each
sessionmgrs (default two GB) by changing the value of
CACHESIZE
in the
/etc/sysconfig/memcached file on sessionmgr.
Key storage (memcache)
size can be obtained using the following command on sessionmgr:
-
Max Limit (in MBs): echo "stats" | nc sessionmgr01 11211 | grep "STAT limit_maxbytes" | awk '{print $3/1024/1024}'
-
Used (in MBs): echo "stats" | nc sessionmgr02 11211 | grep "STAT bytes " | awk '{print $3/1024/1024}'
-
Available (in
MBs) = Max Limit - Used (in MBs)
Upgrading CPS to use the new mapping format
To upgrade CPS to
change the mapping to the new format, do the following:
-
Add the flag
-Dcache.config.version=1
in
/etc/broadhop/qns.conf file.
-
Copy the file to
all VMs.
-
Restart the QNS
service.
-
Repeat the above
steps for all the sites.
-
Wait for all
sites to come up.
-
Add the keys being used for the look up in Lookaside Keys Prefixes in in Policy Builder. See Adding an HA Cluster.
-
Run
rebuildAllSkRings
from QNS on one of the sites. This
starts the data migration process and changes the mapping to the new format.
-
Once migration is
complete, CPS uses the new format.
Restoring CPS to use the old mapping format
To restore CPS to use
the old format, that is, disable the feature, do the following:
-
Clear scheduler
and ring set in Admin DB. To do this:
-
Log into the
administration database primary member.
-
Run the
following commands in Mongo:
PRIMARY> use scheduler
PRIMARY> db.tasks.remove({"type":"migrateCache"});
PRIMARY> use sharding
PRIMARY> db.versions.update({"_id":"cache_config"},{$set:{"migrationStatus": "READY"}});
PRIMARY> db.cache_config.update({},{$unset:{migratingShards:1}},false,true);
PRIMARY> db.config.update({},{$inc: {version:1}})
-
Run the
following commands to verify there is no pending task:
PRIMARY> use scheduler
PRIMARY> db.tasks.find({"type":"migrateCache"});
-
Set
-Dcache.config.version=0
in
/etc/broadhop/qns.conf. Copy the file to all VMs and
restart the QNS service.
-
Repeat Step 2 for all the sites.
-
Wait for all
sites to come up.
-
Once all sites
are up, run
rebuildAllSkRings
from QNS on one of the sites. This
starts the data migration process and changes the mapping back to the old
format.
-
You can keep
checking the status of data migration by running
skRingRebuildStatus
.
-
Once migration is
complete, CPS uses the old format.