objectcache: add IExpiringStore::TTL_SECOND constant
[lhc/web/wiklou.git] / includes / libs / objectcache / IExpiringStore.php
index 91e7934..7bab20a 100644 (file)
@@ -30,6 +30,7 @@
  */
 interface IExpiringStore {
        // Constants for TTL values, in seconds
+       const TTL_SECOND = 1;
        const TTL_MINUTE = 60;
        const TTL_HOUR = 3600;
        const TTL_DAY = 86400; // 24 * 3600
@@ -42,4 +43,17 @@ interface IExpiringStore {
        const TTL_PROC_LONG = 30; // loose cache time that can survive slow web requests
 
        const TTL_INDEFINITE = 0;
+
+       // Attribute and QoS constants; higher QOS values with the same prefix rank higher...
+       // Medium attributes constants related to emulation or media type
+       const ATTR_EMULATION = 1;
+       const QOS_EMULATION_SQL = 1;
+       // Medium attributes constants related to replica consistency
+       const ATTR_SYNCWRITES = 2; // SYNC_WRITES flag support
+       const QOS_SYNCWRITES_NONE = 1; // replication only supports eventual consistency or less
+       const QOS_SYNCWRITES_BE = 2; // best effort synchronous with limited retries
+       const QOS_SYNCWRITES_QC = 3; // write quorum applied directly to state machines where R+W > N
+       const QOS_SYNCWRITES_SS = 4; // strict-serializable, nodes refuse reads if possible stale
+       // Generic "unknown" value that is useful for comparisons (e.g. always good enough)
+       const QOS_UNKNOWN = INF;
 }