I do not have a fixation on ring buffers but I keep finding them in my path. For example, recently I was writting about the new DMVs introduced by SQL Server 2008. One of the sys.dm_os_memory_brokers DMV returns information about memory brokers.


Allocations that are internal to SQL Server use the SQL Server memory manager. Tracking the difference between process memory counters from sys.dm_os_process_memory and internal counters can indicate memory use from external components in the SQL Server memory space.

Memory brokers fairly distribute memory allocations between various components within SQL Server, based on current and projected usage. Memory brokers do not perform allocations. They only track allocations for computing distribution.


Is it the sys.dm_os_memory_brokers  just another name for sys.dm_os_ring_buffers where the buffer type is memory broker? The answer is I am not sure yet.

Why? I ran this two queries:

FROM sys.dm_os_ring_buffers

SELECT * FROM sys.dm_os_memory_brokers;

The result for the first one:

For the second formatted a little:

At first look it seems to be the same info. But at the second ... And look at the values. But then again ...

I asked Slava Oks and when I will find an answer I will get back to this post.