Hello,
Intro
In this post I want to share with you some insights in working with SUP Personalization Keys.
Personalization Keys are a powerful feature of SUP, but they might sometimes lead to unexpected behavior when configured inattentively.
So, in this post I would like to discuss a use case that isn't as straightforward as it looks on first sight...
Context
The use case discussed in this blog post is applicable for;
The Idea
The point I want to make is that you should be careful when mapping Personalization Keys to Load Arguments when you are working with cached MBO data.
Consider following setup;
What we observe;
If this is not completely clear to you let me explain this step by step.
Step by Step Example
We start as follows at time 00:00;
User 1 is connected to the SUP but has not synchronized yet.
The SUP CDB Cache Database is empty at this moment.
Then User 1 fills in a value for the Personalization Key (PK1) and synchronizes.
As a result, the CDB is filled up with the corresponding Back End records and these records are downloaded to the device of User 1.
Now User 1 fills in another value for the Personalization Key and synchronizes again.
At this moment the CDB Cache has not expired yet.
As a result, the CDB is not refreshed and the data that User 1 receives is still the cached data from the previous synchronization (at 01:05).
This might be a misleading situation for User 1.
Then User 1 fills in another value for the Personalization Key and synchronizes again.
At this moment the CDB Cache did already expire.
As a result, the Back End records that correspond to the value PK3 of the Personalization Key are loaded into the CDB Cache and downloaded to the device of User 1.
(remember, this is because the Load Argument is mapped to the Personalization Key)
Now a second user (User 2) connects to the SUP.
He fills in a different value for the Personalization Key than the value User 1 last used.
After this User 2 synchronizes.
At this point the CDB Cache has not expired yet.
As a result, the records in the CDB are downloaded to the device of User 2.
This might be a misleading situation for User 2.
A while later User 2 fills in another value of the Personalization Key and synchronizes.
At this point the CDB Cache has expired.
As a result, the CDB cache is refreshed with the Back End records corresponding to value PK2 of the Personalization Key.
These records are also downloaded to the device of User 2.
Finally, User 1 synchronizes with a value for the Personalization Key that is different to the one User 2 used last.
At this moment the CDB Cache has not expired yet.
As a result, User 1 receives the data from the CDB Cache (that was last filled up for the value PK2 that User 2 entered at 04:30).
This could be a misleading situation for User 1.
I think by now you get the idea.
If you like to see more examples like these, make sure you don’t miss this webinar on SUP Caching by Example.
Have a nice day,
Wim
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
40 | |
25 | |
17 | |
13 | |
7 | |
7 | |
7 | |
6 | |
6 | |
6 |