This is data specific for an active partition in a server. You can cache this data on the cluster member that has the active partition and then use a write through cache to write it to the database when it changes. You do not need to be concerned about invalidations by other cluster members, because the partitioning facility (WPF) guarantees the partition is on exactly one cluster member. This allows the application to work as single server speed without loss of data integrity in a cluster. If the database can be modified by other applications then this cannot be used. If this is the case, then option C cached with optimistic update is the best answer, but it depends greatly on the read/write ratio of the application.