[
https://issues.apache.org/jira/browse/UNOMI-922?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jerome Blanchard updated UNOMI-922:
-----------------------------------
Summary: Inconsistency between value for nbOfVisits in Profile and number
of Sessions (was: Incoherency between value for nbOfVisits in Profile and
number of Sessions)
> Inconsistency between value for nbOfVisits in Profile and number of Sessions
> ----------------------------------------------------------------------------
>
> Key: UNOMI-922
> URL: https://issues.apache.org/jira/browse/UNOMI-922
> Project: Apache Unomi
> Issue Type: Bug
> Reporter: Jerome Blanchard
> Priority: Major
> Time Spent: 10m
> Remaining Estimate: 0h
>
> When a session is created or merged for a profile, a rule increment
> nbOfVisits of that profile.
> Thus, the number of sessions associated to a profile should be equal to the
> nbOfVisits of that profile which the case until old sessions are purged.
> When ProfileService.purgeSessionItems() is called, Sessions older that a
> certain age are removed but Profile.nbOfVisists is not decremented
> accordingly. Thus, with time, values are incoherent between a live
> calculation of profile's sessions and the already calculated nbOfVisits.
> The goal of that ticket is to keep the concept of TotalNbOfVisits (including
> visits calculated over removed sessions) and a NbOfVisits (correlated with
> the Session max TTL) decremented when some sessions are purged.
> The implementation will consist of :
> - add a migration step to copy existing value of nbOfVisits into a new
> totalNbOfVisits property.
> - for each profile, update the existing nbOfVisits to equals the number of
> existing sessions related to that profileId.
> - update the rule for events SessionMerged and SessionCreated to increment
> both nbOfVisits and totalNbOfVisits
> - update the action of purgeSessionItems() to aggregate session's to purge by
> profile id and, after the purge, to iterate over that aggregation to
> decrement each impacted profile's nbOfVisits accordingly.
> An alternative could be to migrate to a time based object for nbOfVisits :
> nbOfVisits : {
> "1d": 2,
> "1w": 8,
> "1m": 14,
> "6m": 15,
> "1y": 15,
> "2y": 15,
> "total": 15
> }
> The incoherency is mainly visible between a screen that display profiles in
> table (with nbOfVisit value) and kibana dashboard that calculate that number
> of visits by querying sessions.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)