Igniters,

While working on IGNITE-946 (https://issues.apache.org/jira/browse/IGNITE-946) I faced with a strange part of the code.

GridCacheVersion class contains a getter that returns topology version. But this is not a plain cluster's topology version we know that is increased by a coordinator each time the topology changes. It's, according to GridCacheVersion documentation, /"topology version *plus number of seconds* from the start time of the first grid node". /The documentation is not wrong, just have a look at GridCacheVersionManager.next() implementation.

IMHO, this looks like a mess.

What is the reason to have such so called "topologyVersion"?

If there is a reason for that why this sum is called "topologyVersion"? It's not just confusing but rather will lead to the bugs in the code.
Moreover, this is seems to be a bug caused by improper naming:

if (addTime) {
    if (gridStartTime ==0)
        gridStartTime =cctx.kernalContext().discovery().gridStartTime();

    topVer += (gridStartTime -TOP_VER_BASE_TIME) /1000;
}

long globalTime =cctx.kernalContext().clockSync().adjustedTime(topVer);


In the code above topVer+time is passed to adjustedTime() method, but plain topVer should have been as I guess (GridCacheVersionManager.next()).

--
Denis

Reply via email to