Unwired Server Cache

The Unwired Server cache (or cache database CDB) caches data required by device applications.

A typical hardware cache has only two states: valid and invalid. When invalid, the data in the cache row is no long relevant and can be overwritten. The cache contains data needed by the processor at a given time. Data can be brought into and evicted from the cache rows rapidly.

The CDB, however, is filled with data required by the devices. Filling can occur all at once (DCN) or over time (on-demand). There is no eviction. In the case of a cache group policy that uses a pull mechanism, even if the CDB or a cache partition is invalid, the data is still relevant; The policy is used to detect changes when compared with new data from a refresh.

Whereas data in a hardware cache is always consistent with, or even supersedes data in the memory subsystem, data in the CDB does not. In database or application terminology, it is not the system of record, and is not guaranteed to be consistent with the EIS. This is neither a design nor implementation flaw, but is intended to avoid tight serialization and scalability problems. The CDB operates under the principle of eventual consistency. As stated in Brewer's CAP Theorem "In a distributed environment, it is impossible to provide all three guarantees simultaneously: consistency, availability, and partition tolerance":

When data resides on the device and operates in a partitioned mobility environment (tolerant to network outage), the choice is whether to have consistency or availability. To enable mobile users to perform their tasks even without connectivity, the choice is availability. Hence, there is no consistency guarantee between the CDB and the mobile databases. The relationship between CDB and EIS is somewhat different. In general, there is no expectation of a partition between the CDB and the EIS so there is no need for partition tolerance. However, achieving both consistency and availability means a tight coupling between them and the integration is either too costly or invasive. This is why the CDB is never considered the system of record.

You can configure the cache group, by way of a cache group policy, to function in a high-consistency or flow-through mode where data always has to be fetched from the EIS. The data residing in the CDB is used only to detect data changes, so only the difference is transferred to the device.