aboutsummaryrefslogtreecommitdiff
path: root/zenserver/cache/structuredcache.h
diff options
context:
space:
mode:
authorStefan Boberg <[email protected]>2021-05-25 09:52:36 +0200
committerStefan Boberg <[email protected]>2021-05-25 09:52:36 +0200
commit58d275132831462be21b58f6f35c18b6a723a8d1 (patch)
treefe7ecaeaa1e84fc755b1c1ac9420a00ba7d4fa29 /zenserver/cache/structuredcache.h
parentFixed mis-merge (diff)
downloadzen-58d275132831462be21b58f6f35c18b6a723a8d1.tar.xz
zen-58d275132831462be21b58f6f35c18b6a723a8d1.zip
Updated structured cache description
Diffstat (limited to 'zenserver/cache/structuredcache.h')
-rw-r--r--zenserver/cache/structuredcache.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/zenserver/cache/structuredcache.h b/zenserver/cache/structuredcache.h
index d0646e6e9..e2ab60928 100644
--- a/zenserver/cache/structuredcache.h
+++ b/zenserver/cache/structuredcache.h
@@ -12,6 +12,29 @@ namespace zen {
/**
* New-style cache service. Imposes constraints on keys, supports blobs and
* structured values
+ *
+ * Keys are structured as:
+ *
+ * {BucketId}/{KeyHash}
+ *
+ * Where BucketId is an alphanumeric string, and KeyHash is a 40-character hexadecimal
+ * sequence. The hash value may be derived in any number of ways, it's up to the
+ * application to pick an approach.
+ *
+ * Values may be structured or unstructured. Structured values are encoded using Unreal
+ * Engine's compact binary encoding
+ *
+ * Additionally, attachments may be addressed as:
+ *
+ * {BucketId}/{KeyHash}/{PayloadHash}
+ *
+ * Where the two initial components are the same as for the main endpoint
+ *
+ * The storage strategy is as follows:
+ *
+ * - Structured values are stored in a dedicated backing store per bucket
+ * - Unstructured values and attachments are stored in the CAS pool
+ *
*/
class HttpStructuredCacheService : public zen::HttpService