aboutsummaryrefslogtreecommitdiff
path: root/zenserver/cache/structuredcache.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Add `import-project` and `export-project` (#183)Dan Engelbrecht2022-11-181-6/+9
| | | * Add `import-project` and `export-project` command line parsing
* Support file reference in package message (#184)Dan Engelbrecht2022-11-071-8/+26
| | | | | | | | * Fix packed message parsing for absolute path * Always enable are sharing when opening files as IoBuffers. * Allow control over sending partial files as localfile ref * Check "AcceptFlags" field in RPC message for allowing localfile ref in reply * make oplog entry add operations ZEN_DEBUG level logs * changelog
* Add "Accept" field in RPC request to gracefully handle requests from older ↵Dan Engelbrecht2022-10-131-21/+97
| | | | instances (#180)
* Format all rpc package responses using `FormatPackageMessageBuffer` to avoid ↵Dan Engelbrecht2022-09-291-26/+10
| | | | | memory copy (#174) When reading upstream, fall back to old rpc response to handle older instances.
* De/more upstream details (#168)v0.1.6-pre9v0.1.6-pre10Dan Engelbrecht2022-09-221-93/+166
| | | | | | * Pass along endpoint info for each upstream request * Add more timing details in log * more log details for single item upstream fetch * DISABLEDQUERY over SKIP
* rename URI chunk requests from value -> chunk (#166)Dan Engelbrecht2022-09-191-7/+7
|
* Implement proper GetCacheValues upstream (#155)Dan Engelbrecht2022-09-061-17/+34
| | | | * Implement proper GetCacheValues upstream * changelog
* Make cas storage an hidden implementation detail of CidStore (#130)v0.1.4-pre6v0.1.4-pre5Dan Engelbrecht2022-06-171-9/+9
| | | | | | | | | | | | | | | | | | - Bumped ZEN_SCHEMA_VERSION - CasStore no longer a public API, it is hidden behind CidStore - Moved cas.h from public header folder - CidStore no longer maps from Cid -> Cas, we store entries in Cas under RawHash - CasStore now decompresses data to validate content (matching against RawHash) - CasChunkSet renames to HashKeySet and put in separate header/cpp file - Disabled "Chunk" command for now as it relied on CAS being exposed as a service - Changed CAS http service to Cid http server - Moved "Run" command completely inside ZEN_WITH_EXEC_SERVICES define - Removed "cas.basic" test - Uncommented ".exec.basic" test and added return-skip at start of test - Moved ScrubContext to separate header file - Renamed CasGC to GcManager - Cleaned up configuration passing in cas store classes - Removed CAS stuff from GcContext and clarified naming in class - Remove migration code
* namespace/bucket validation now uses AsciiSet for more efficient validation ↵Stefan Boberg2022-06-101-5/+7
| | | | (#127)
* Corrected some typos in log messagesStefan Boberg2022-06-081-3/+5
|
* add warnings on illegal namespace/bucket namesDan Engelbrecht2022-06-081-0/+5
|
* namespace dropDan Engelbrecht2022-05-251-9/+9
|
* fix mac compilation errorDan Engelbrecht2022-05-191-1/+1
|
* fix testsDan Engelbrecht2022-05-191-5/+5
|
* Keep Namespace out of CacheKey and store it on request levelDan Engelbrecht2022-05-191-96/+125
| | | | | RPC requests now has a Namespace field under Params instead of one Namespace per cache key Fall back to legacy upstream HTTP URI format if default namespace is requested
* align bucket naming rules with UE code baseDan Engelbrecht2022-05-181-3/+4
|
* review feedbackDan Engelbrecht2022-05-161-27/+26
|
* drop api/v2 prefix for non-legacy requestsDan Engelbrecht2022-05-161-112/+172
|
* use ns_ prefix on disk onlyDan Engelbrecht2022-05-161-5/+0
|
* use "default" as the default namespaceDan Engelbrecht2022-05-161-14/+14
| | | | remove ns_ prefix for namespaces on disk and in requests
* Validate max length for namespace nameDan Engelbrecht2022-05-121-0/+4
|
* keep compatability for valid bucket namesDan Engelbrecht2022-05-121-1/+1
|
* Add validation to namespace names that follows Jupiters rules.Dan Engelbrecht2022-05-121-225/+192
| | | | | Add unified validation of Namespace, Bucket and Hash for rpc requests. cleanup
* Tests for HttpRequestParseRelativeUriDan Engelbrecht2022-05-121-26/+142
|
* Add support for /api/v2/ URI requests with namespace supportDan Engelbrecht2022-05-121-25/+152
|
* revert Bucket - Key parameter changeDan Engelbrecht2022-05-121-2/+1
|
* cleanupDan Engelbrecht2022-05-111-26/+26
|
* parameterize namespace for upstream (first hack)Dan Engelbrecht2022-05-111-89/+151
|
* reverted unnecessary changesDan Engelbrecht2022-05-051-2/+2
|
* cleanup and review feedbackDan Engelbrecht2022-05-051-18/+24
|
* cleanupDan Engelbrecht2022-05-041-7/+6
|
* Add namespacecachestore layer to allow multiple structured cache namespacesDan Engelbrecht2022-05-041-24/+26
|
* mac compilation fixDan Engelbrecht2022-04-291-1/+1
|
* Use GetCacheValues when checking upstream to reduce number of calls to upstreamDan Engelbrecht2022-04-261-47/+101
| | | | Added some timing info to debug logs
* Value propagation fix - Read/Write ValueAPI as CompressedBinary type when ↵mattpetersepic2022-02-181-27/+44
| | | | | | writing to zen and horde upstreams. Return failure from HandleGetCacheRecord if the requested type does not match the cachetype. (#55) * Fix bug with getting values PUT to Jupiter as CompressedBinary. When getting CompressedBinary records from Jupiter, they are expected to now be a record with a reference to the compact binary. This has to be accounted for when performing upstream GETs. * HandleGetCacheRecord: avoid crashing on invalid type, and avoid sending back data that doesn't match the AcceptType.
* Fixed "Record* Record;" non-conformant compile errors from GCCMartin Ridgers2022-02-111-10/+10
|
* Merge pull request #52 from EpicGames/ValuePropagationFixzousar2022-02-091-1/+1
|\ | | | | Change Value propagation to Zen or Jupiter
| * Change Value propagation to Zen or Jupiterzousar2022-02-081-1/+1
| | | | | | | | This change ensures we retain the right content type of kCompressedBinary when propagating values from Zen->UpstreamZen. This is done via an RPC that posts a CbPackage. Furthermore when propagating from Zen->Jupiter, it composes its own referencing CbObject for them instead of sending a octet content type and Jupiter defining the referencing CbObject. When fetching Values from Jupiter, this new composed CbObject is still interpreted correctly by Zen.
* | Simplify HandleRpcGetCacheChunks (#53)mattpetersepic2022-02-091-260/+292
| | | | | | Refactor HandleRpcGetCacheChunks to reduce complexity. Port CacheStore tests from Unreal.
* | Remove the backwards compatibility for the Zen CachePolicy changes no… (#49)mattpetersepic2022-02-081-214/+32
|/ | | Remove the backwards compatibility for the Zen CachePolicy changes now that there has been enough time for all internal users of the old protocol to update.
* Cache policy support (#47)mattpetersepic2022-02-011-217/+953
| | | | | | | | Add HandleRpc methods for the remaining ICacheStore requests from unreal: PutCacheValues/GetCacheValues. We now have batched versions for PutCacheRecords,GetCacheRecords,PutCacheValues,GetCacheValues,GetCacheChunks. Add support for CachePolicy flags to all of these batched methods. * Add Batched PutCacheValues/GetCacheValues. Rename old GetCacheValues to GetCacheChunks. * HandleRpcGetCacheRecords: Receive a CacheRecordPolicy with each key, and skipdata on attachments we already have. * Changes to CachePolicy copied from Release-5.0 depot. Change serialization to use the key BasePolicy instead of DefaultValuePolicy. * GetChunks: Read CacheRecords from remote if necessary to find ContentId. Implement QueryLocal, StoreLocal, and SkipData.
* Merge branch 'main' of https://github.com/EpicGames/zenStefan Boberg2022-01-281-154/+406
|\
| * Compile fixMartin Ridgers2022-01-281-1/+0
| |
| * Rename Paylod to Value to match the client side: missing file from previous ↵Matt Peters2022-01-271-1/+1
| | | | | | | | commit.
| * Rename Paylod to Value to match the client side. Rename PayloadId to ↵mattpetersepic2022-01-271-47/+52
| | | | | | | | ValueContentId where its a hash instead of an oid.
| * Add batched CacheRecord put rpc (#38)mattpetersepic2022-01-271-17/+178
| | | | | | * Add batched CacheRecord put rpc
| * Implement SkipData,QueryLocal,StoreLocal for HandleRpcGetCacheRecords (#41)mattpetersepic2022-01-261-51/+103
| | | | | | * Implement SkipData,QueryLocal,StoreLocal for HandleRpcGetCacheRecords.
| * Implement SkipData,QueryLocal,StoreLocal for GET-verb CacheGet requests (#39)mattpetersepic2022-01-261-40/+75
| | | | | | * Implement SkipData,QueryLocal,StoreLocal for GET-verb CacheGet requests
* | Structured cache PUTs now preserve content type for binary and compressed binaryStefan Boberg2022-01-281-2/+2
|/
* Cachepolicy (#36)mattpetersepic2022-01-251-167/+130
| | | | | | | | | | | | | | | | | * Copy CachePolicy implementation from UE5/Release-5.0. Add backwards compatability for clients and upstreams that are using the old protocol. * Add RefPtr templated move operator and constructor, so that RefPtr<const Foo*> A = std::move(RefPtr<Foo*>()) will do a move. * Fix broken CachePolicy tests and add tests for new Save/Load. * Remove TODO comments * CachePolicy Save/Load Fixes from codereview * Fix comment to match code change. * Remove backwards compatibility for CachePolicy change. Convert policy string tokens to PascalCase. Fix tests for new policy text. Change ParseCachePolicy to assert string is non-empty and always succeed. * Fix release build: use ZEN_WITH_TESTS define