Table of Contents | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
|
...
Client-Specific Binding: Bound to a dedicated client, with no cross-gateway sharing allowed. Once you decide to serve 1 or more domains on a listing-cache enabled gateway it must serve all requests to those domain(s) exclusively. This is achieved by configuring your load-balancer with dedicated host based traffic redirection rules.
Non-Persistent Cache: The disk/memory cache is discarded by default on restart.
Limited Lifecycle and RecursiveDeletion Support: No support for bucket lifecycle policies, delete lifepoints, or recursive deletes. All writes and deletes must originate from the gateway.
Memory Constraints: Caching large volumes of data can quickly consume system memory. Misconfiguring cache sizes can lead to memory exhaustion or excessive eviction, reducing cache effectiveness.
Delimiters Support: Custom delimiters are not yet supported, only forward slash "/".
Replication Support: <pending engineering feedback>, right now do not setup replication when LC is enabled.
Not supported functionalities: Custom delimiters, S3 lifecycles, and recursive deletes.
Prerequisites
The listing cache Listing Cache can be enabled on gateway 8.1.2 or above.
Memory, CPU and Disk Requirements
...
Minimum: 4 vCPU, 8 GB RAM (heap) - VM 12GB, 100GB dedicated partition on SSD ( on XFS filesystem )
...
Ensure the following prerequisites are met before deploying Listing Cache:
Hardware Requirements:
8 vCPUs
16GB RAM
200GB dedicated partition formatted with XFS
Load Balancing Configuration:
Hardcode domains to a single gateway with Listing Cache (LC).
Info |
---|
InfoShared gateway support is currently not available. |
Assuming you are using recommended settings you will need to do the following:
...
Code Block |
---|
caringo_listingcache_request (Summary)
Request counts and latencies for write/delete/list, versioned/nonversioned.
Labels: method=[write, delete, list], mode=[V, NV]
caringo_listingcache_request_errors (Counter)
Request error counts for write/delete/list, versioned/nonversioned.
Labels: method=[write, delete, list], mode=[V, NV]
caringo_listingcache_listed_recs (Counter)
Total number of records returned by the listing cache, versioned/nonversioned.
Labels: mode=[V, NV]
caringo_listingcache_backend_query (Summary)
Counts and latencies of ES queries for priming/listing, versioned/nonversioned.
Labels: method=["list", "prime"], mode=[V, NV]
caringo_listingcache_backend_query_recs (Counter)
Number of ES records queried for priming/listing, versioned/nonversioned.
Labels: method=["list", "prime"], mode=[V, NV]
caringo_listingcache_cache_query (Summary)
Counts and latencies of SqliteDB queries for priming/listing, versioned/nonversioned.
Labels: method=["list", "prime", "reconciliation"], mode=[V, NV]
caringo_listingcache_cache_query_recs (Counter)
Number of SqliteDB records queried for priming/listing, versioned/nonversioned.
Labels: method=["list", "prime", "reconciliation"], mode=[V, NV]
caringo_listingcache_flushes_pending (Gauge)
Folder updates pending flush to SqliteDB disk cache.
caringo_listingcache_flushes_done (Counter)
Folder updates flushed to SqliteDB disk cache.
caringo_listingcache_trims_pending (Gauge)
Folders pending trim in memory cache.
caringo_listingcache_trims_done (Counter)
Folders trimmed in memory cache.
caringo_listingcache_folder_pulls_pending (Gauge)
Folders marked to be internally pulled into cache.
caringo_listingcache_folder_pulls_done (Counter)
Folders internally pulled into cache.
caringo_listingcache_mem_cached (Gauge)
Folders currently in memory cache.
caringo_listingcache_mem_evicted (Counter)
Folders evicted from memory cache.
caringo_listingcache_dbhandle_cached (Gauge)
SqliteDB handles currently in memory cache.
caringo_listingcache_dbhandle_evicted (Counter)
SqliteDB handles evicted from memory cache.
caringo_listingcache_disk_cached (Gauge)
SqliteDBs currently in disk cache.
caringo_listingcache_disk_evicted (Counter)
Folders evicted from disk cache.
caringo_listingcache_disk_cached_bytes (Gauge)
Size in bytes of SqliteDBs currently in disk cache.
caringo_listingcache_disk_evicted_bytes (Counter)
Size in bytes of SqliteDBs evicted from disk cache.
caringo_listingcache_reconciliations_done (Counter)
Number of cache records reconciled (versionid mismatches corrected based on etag).
Labels: origin=[backend,cache]
caringo_listingcache_memory_used (Gauge)
Memory use as perceived by the listing cache.
caringo_listingcache_disk_free (Gauge)
Disk free space as perceived by the listing cache. |
Do Not Use Listing Cache If:
You use multipart S3 operations.
You use custom delimiters in search queries.
You need the ability to do recursive deletes of domains and buckets.
You use S3 lifecycle policies.
You need support for the delete lifepoints.
You do not use pseudo folders or all objects are in a single pseudo folder.
Deployment Steps
Follow these steps to deploy the Listing Cache:
Step 1: Prepare the Environment
Provision a server with the specified hardware requirements.
Ensure the server’s 200GB partition is formatted with the XFS file system.
Verify network connectivity to other components of the S3 environment.
Step 2: Configure Load Balancer
Modify load-balancing rules to hardcode domains to a single gateway.
Ensure that all LC-enabled domains point to the appropriate gateway.
Test the load balancer configuration to confirm proper routing.
Step 3: Install and Configure Listing Cache
Download the LC installation package from the designated repository.
Install the package on the prepared server.
Configure LC settings according to your environment’s specifications:
Set up domain-specific configurations.
Enable pseudo folder support as required.
Step 4: Validate Deployment
Perform basic functionality tests:
Verify data retrieval and storage through LC.
Test operations within pseudo folders.
Check system logs for any errors or warnings.
Monitor performance metrics to ensure hardware is sufficient.
Step 5: Go Live
Enable LC for production workloads.
Monitor system performance and address any issues promptly.
Post-deployment Recommendations
Regularly monitor LC’s performance and resource utilization.
Plan for updates as new features and improvements are released.
Document any environment-specific configurations for future reference.