Skip to content

Improve Efficiency of Cache Cmdlets #5095

@adamdriscoll

Description

@adamdriscoll

Summary of the new feature / enhancement

We had a user that stored a significant amount of data in the cache. They were caching about 65k users and 65k devices in the cache. The result was that the PSU server would starve the host because it was attempting to retrieve and deserialize large CLIXML values from the cached items in the SQL server.

The problem is that the cache cmdlets behave poorly in this scenario. Retrieving a list of the cached items, still retrieves the values so it's not faster. There is also no way to do a wildcard search of cached items so it's hard to group items by a similar key and return all of them.

For example, if a group of users were cached with the User_ prefix in the cache, there would be no way to retrieve all user objects from the cache without first retrieving all cache items, deserializing them, and then filtering them.

Instead, we should be able to support wild cards:

Get-PSUCache -Key "User_*"

This would return all user cache items. Each user would be a single row in the database rather than a large list of items in a single row value column. This would allow SQL to use the Key index rather than bringing all items back to the PSU server and filtering locally.

Proposed technical implementation details (optional)

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions