Orleans.Providers.Streams.Common Namespace
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Classes
BlockPoolMonitorDimensions |
Aggregation dimensions for block pool monitors. |
CacheDataComparerExtensions |
Cache data comparer extension functions that switch argument order |
CachedMessageBlock |
CachedMessageBlock is a block of tightly packed structures containing tracking data for cached messages. This data is tightly packed to reduced GC pressure. The tracking data is used by the queue cache to walk the cache serving ordered queue messages by stream. |
CachedMessageBlock<TCachedMessage> |
CachedMessageBlock is a block of tightly packed structures containing tracking data for cached messages. This data is tightly packed to reduced GC pressure. The tracking data is used by the queue cache to walk the cache serving ordered queue messages by stream. |
CachedMessageExtensions |
Extensions for CachedMessage. |
CacheMonitorDimensions |
Aggregation dimensions for cache monitor. |
ChronologicalEvictionStrategy |
Eviction strategy that evicts data based off of age. |
ChronologicalEvictionStrategy<TCachedMessage> |
Eviction strategy that evicts data based off of age. |
DefaultBlockPoolMonitor |
Block pool monitor used as a default option in GeneratorStreamProvider and MemoryStreamProvider. |
DefaultCacheMonitor |
cache monitor used as a default option in GeneratorStreamprovider and MemoryStreamProvider |
DefaultQueueAdapterReceiverMonitor |
Queue adapter receiver monitor used as a default option in GeneratorStreamprovider and MemoryStreamProvider |
EventSequenceToken |
Stream sequence token that tracks sequence number and event index |
EventSequenceTokenV2 |
Stream sequence token that tracks sequence number and event index |
EvictionStrategyCommonUtils | |
FixedSizeBuffer |
Manages a contiguous block of memory. Calls purge action with itself as the purge request when it's signaled to purge. |
MonitorAggregationDimensions |
Base class for holding monitor aggregation dimensions |
ObjectPool<T> |
Simple object pool that uses a stack to store available objects. |
ObjectPoolMonitorBridge |
ObjectPoolMonitor report metrics for ObjectPool, which are based on object count. BlockPoolMonitor report metrics for BlockPool, which are based on memory size. These two monitor converge in orleans cache infrastructure, where ObjectPool is used as block pool to allocate memory, where each object represent a block of memory which has a size. ObjectPoolMonitorBridge is the bridge between these two monitors in cache infrastructure. When ObjectPoolMonitor is reporting a metric, the user configured BlockPoolMonitor will call its counterpart method and reporting metric based on the math: memoryInByte = objectCount*objectSizeInByte |
PersistentStreamProvider |
Persistent stream provider that uses an adapter for persistence |
PersistentStreamProvider<TAdapterFactory> |
Persistent stream provider that uses an adapter for persistence |
PooledQueueCache |
The PooledQueueCache is a cache that is intended to serve as a message cache in an IQueueCache. It is capable of storing large numbers of messages (gigs worth of messages) for extended periods of time (minutes to indefinite), while incurring a minimal performance hit due to garbage collection. This pooled cache allocates memory and never releases it. It keeps freed resources available in pools that remain in application use through the life of the service. This means these objects go to gen2, are compacted, and then stay there. This is relatively cheap, as the only cost they now incur is the cost of checking to see if they should be freed in each collection cycle. Since this cache uses small numbers of large objects with relatively simple object graphs, they are less costly to check then large numbers of smaller objects with more complex object graphs. For performance reasons this cache is designed to more closely align with queue specific data. This is, in part, why, unlike the SimpleQueueCache, this cache does not implement IQueueCache. It is intended to be used in queue specific implementations of IQueueCache. |
PooledQueueCache<TQueueMessage,TCachedMessage> |
The PooledQueueCache is a cache that is intended to serve as a message cache in an IQueueCache. It is capable of storing large numbers of messages (gigs worth of messages) for extended periods of time (minutes to indefinite), while incurring a minimal performance hit due to garbage collection. This pooled cache allocates memory and never releases it. It keeps freed resources available in pools that remain in application use through the life of the service. This means these objects go to gen2, are compacted, and then stay there. This is relatively cheap, as the only cost they now incur is the cost of checking to see if they should be freed in each collection cycle. Since this cache uses small numbers of large objects with relatively simple object graphs, they are less costly to check then large numbers of smaller objects with more complex object graphs. For performance reasons this cache is designed to more closely align with queue specific data. This is, in part, why, unlike the SimpleQueueCache, this cache does not implement IQueueCache. It is intended to be used in queue specific implementations of IQueueCache. |
PooledResource<T> |
Utility class to support pooled objects by allowing them to track the pool they came from and return to it when disposed |
ReceiverMonitorDimensions |
Aggregation dimensions for receiver monitor. |
RecoverableStreamProviderSettings |
Common stream provider settings shared by EventHubStreamProvider, MemoryStreamProvider and GeneratorStreamProvider |
SegmentBuilder |
Utility class for encoding data into an ArraySegment. |
SimpleQueueAdapterCache |
Adapter for simple queue caches. |
SimpleQueueCache |
A queue cache that keeps items in memory. |
SimpleQueueCacheCursor |
Cursor into a simple queue cache. |
StreamPosition |
Stream position uniquely identifies the position of an event in a stream. If acquiring a stream position for a batch of events, the stream position will be of the first event in the batch. |
TimePurgePredicate |
Determines if data should be purged based off time. |
Structs
CachedMessage |
This is a tightly packed cached structure containing a queue message. It should only contain value types. |
Interfaces
IBlockPoolMonitor |
Monitor track block pool related metrics. Block pool is used in cache system for memory management |
ICacheDataAdapter |
Pooled queue cache stores data in tightly packed structures that need to be transformed to various other formats quickly. Since the data formats may change by queue type and data format, this interface allows adapter developers to build custom data transforms appropriate for the various types of queue data. |
ICacheDataAdapter<TQueueMessage,TCachedMessage> |
Pooled queue cache stores data in tightly packed structures that need to be transformed to various other formats quickly. Since the data formats may change by queue type and data format, this interface allows adapter developers to build custom data transforms appropriate for the various types of queue data. |
ICacheDataComparer<TCachedMessage> |
Compares cached messages with various stream details |
ICacheMonitor |
Responsible for monitoring cache related metrics. |
IEvictionStrategy |
Eviction strategy for the PooledQueueCache |
IEvictionStrategy<TCachedMessage> |
Eviction strategy for the PooledQueueCache |
IObjectPool<T> |
Simple object pool Interface. Objects allocated should be returned to the pool when disposed. |
IObjectPoolMonitor |
Monitor track object pool related metrics |
IPurgeObservable |
Functionality for purge-related actions. |
IPurgeObservable<TCachedMessage> |
IPurgeObservable is implemented by the cache to do purge related actions, and invoked by EvictionStrategy |
IQueueAdapterReceiverMonitor |
Responsible for monitoring receiver performance metrics. |
Enums
PersistentStreamProviderCommand |
Commands which can be handled by the PersistentStreamProvider. |
PersistentStreamProviderState |