BACKGROUND

Noon In some computing systems, caching operations store data so that future requests for that data can be satisfied faster. The cached data is kept in cache entries. A cache hit occurs when the requested data is found in a cache, and a cache miss occurs when the data is not found in the cache. After a miss, the requested data is recomputed and put in the cache, or is fetched from other data storage and put in the cache. Often an existing cache entry value is removed (evicted from the cache) in order to make room for the newly retrieved or recomputed data.

Cache hits tend to improve computing system performance by rapidly providing the requested data to the requestor straight from the cache, which is often faster than recomputing the data or reading the data from slower data storage. To increase the likelihood of hits, cache entries may be forced to expire and may be evicted if they have not been used recently. For example, under a least recently used (LRU) replacement policy, when the cache is updated with new data after a miss, to make room for the new data the cache replaces the oldest entry, namely, the cache entry that was accessed less recently than any other entry. The new data takes the place of the older data, which is thereby evicted.

The effectiveness of caching may be improved in various ways, of which perhaps the easiest is simply to increase the size of the cache. Another approach is to increase the speed of the cache, e.g., by using faster memory. Other caching optimizations are also possible, but may be considerably more complex. In some cases, multiple optimizations may be combined.

SUMMARY

Some embodiments described in this document provide improved efficiency during computations in a distributed computing system, in particular by increasing cache hits in local caches of the distributed computing system. Some embodiments increase the likelihood of cache hits by clustering data of security peers together on nodes of the distributed computing system, on the assumption that such peers tend to access the same data over time. Retrieving data from a cache on a node X for use in computation performed on the node X may also be assumed to be faster than retrieving data from another node Y. Other distributed software performance efficiency improvements may also be provided.

Some embodiments use or include performance optimization for user behavior analysis or other analytic computations in a distributed computing system. The system includes a set of N analysis nodes, with N being at least 2. Each analysis node includes an analysis memory and an analysis processor. The analysis memory includes a cache. A clustering processor is in operable communication with a clustering memory. The clustering processor may be in addition to the analysis processors, or a given processor may operate both as an analysis processor and as the clustering processor. More than one clustering processor may also be present. The clustering processor is configured to perform steps for performance optimization which include (a) clustering resource accessors into at least N accessor clusters, (b) assigning each accessor cluster to an analysis node, and (c) distributing analysis workloads among the analysis nodes. Each analysis workload AWi is distributed to be performed on an analysis node ANj based at least on (c1) identifying an accessor Ak in AWi and (c2) finding the same accessor Ak in an accessor cluster ACm that is assigned to ANj.

Some embodiments optimize analysis node cache performance while avoiding distributing analysis workloads based on assigning cloud tenants to analysis nodes. Some embodiments optimize analysis node cache performance while avoiding distributing analysis workloads based on assigning users randomly to analysis nodes. Some do both avoidances.

One of skill will understand that particular designations such as “AWi”, “ANj”, “Ak”, and “ACm” used here merely for convenience. A given embodiment or an accurate description thereof may use different identifiers or use other designations when documenting, implementing, or performing the same or equivalent performance optimization actions describe herein. There is no intent here to limit the scope of the claims to variables or other computer-implemented data structures having the specific designations used herein.

Other technical activities and characteristics pertinent to teachings herein will also become apparent to those of skill in the art. The examples given are merely illustrative. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter. Rather, this Summary is provided to introduce—in a simplified form—some technical concepts that are further described below in the Detailed Description. The innovation is defined with claims as properly understood, and to the extent this Summary conflicts with the claims, the claims should prevail.

