Skip to content

Commit

Permalink
ensure shared bp uses correct allocation size for send and recv
Browse files Browse the repository at this point in the history
  • Loading branch information
vazois committed Sep 12, 2024
1 parent 9a6bca1 commit 87c575a
Show file tree
Hide file tree
Showing 7 changed files with 18 additions and 18 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ namespace Garnet.client
sealed class GarnetClientSessionTcpNetworkHandler : TcpNetworkHandlerBase<GarnetClientSession, GarnetTcpNetworkSender>
{
public GarnetClientSessionTcpNetworkHandler(GarnetClientSession serverHook, Socket socket, NetworkBuffers networkBuffers, bool useTLS, IMessageConsumer messageConsumer, int networkSendThrottleMax = 8, ILogger logger = null)
: base(serverHook, new GarnetTcpNetworkSender(socket, networkBuffers.bufferPool, networkSendThrottleMax), socket, networkBuffers, useTLS, messageConsumer: messageConsumer, logger: logger)
: base(serverHook, new GarnetTcpNetworkSender(socket, networkBuffers, networkSendThrottleMax), socket, networkBuffers, useTLS, messageConsumer: messageConsumer, logger: logger)
{
}

Expand Down
6 changes: 3 additions & 3 deletions libs/client/ClientTcpNetworkSender.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,10 @@ public class ClientTcpNetworkSender : GarnetTcpNetworkSender
/// </summary>
/// <param name="socket"></param>
/// <param name="callback"></param>
/// <param name="networkPool"></param>
/// <param name="networkBuffers"></param>
/// <param name="networkSendThrottleMax"></param>
public ClientTcpNetworkSender(Socket socket, Action<object> callback, LimitedFixedBufferPool networkPool, int networkSendThrottleMax)
: base(socket, networkPool, networkSendThrottleMax)
public ClientTcpNetworkSender(Socket socket, Action<object> callback, NetworkBuffers networkBuffers, int networkSendThrottleMax)
: base(socket, networkBuffers, networkSendThrottleMax)
{
this.callback = callback;
this.reusableSaea = new SimpleObjectPool<SocketAsyncEventArgs>(() =>
Expand Down
2 changes: 1 addition & 1 deletion libs/client/GarnetClientTcpNetworkHandler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ namespace Garnet.client
sealed class GarnetClientTcpNetworkHandler : TcpNetworkHandlerBase<GarnetClient, ClientTcpNetworkSender>
{
public GarnetClientTcpNetworkHandler(GarnetClient serverHook, Action<object> callback, Socket socket, NetworkBuffers networkBuffers, bool useTLS, IMessageConsumer messageConsumer, int networkSendThrottleMax = 8, ILogger logger = null)
: base(serverHook, new ClientTcpNetworkSender(socket, callback, networkBuffers.bufferPool, networkSendThrottleMax), socket, networkBuffers, useTLS, messageConsumer: messageConsumer, logger: logger)
: base(serverHook, new ClientTcpNetworkSender(socket, callback, networkBuffers, networkSendThrottleMax), socket, networkBuffers, useTLS, messageConsumer: messageConsumer, logger: logger)
{
}

Expand Down
6 changes: 3 additions & 3 deletions libs/common/Networking/GarnetSaeaBuffer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,12 @@ public unsafe class GarnetSaeaBuffer : IDisposable
/// Construct new instance
/// </summary>
/// <param name="eventHandler">Event handler</param>
/// <param name="networkPool"></param>
public GarnetSaeaBuffer(EventHandler<SocketAsyncEventArgs> eventHandler, LimitedFixedBufferPool networkPool)
/// <param name="networkBuffers"></param>
public GarnetSaeaBuffer(EventHandler<SocketAsyncEventArgs> eventHandler, NetworkBuffers networkBuffers)
{
socketEventAsyncArgs = new SocketAsyncEventArgs();

buffer = networkPool.Get(networkPool.MinAllocationSize);
buffer = networkBuffers.bufferPool.Get(networkBuffers.sendMinAllocationSize);
socketEventAsyncArgs.SetBuffer(buffer.entry, 0, buffer.entry.Length);
socketEventAsyncArgs.Completed += eventHandler;
}
Expand Down
16 changes: 8 additions & 8 deletions libs/common/Networking/GarnetTcpNetworkSender.cs
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ public class GarnetTcpNetworkSender : NetworkSenderBase
readonly string remoteEndpoint;
readonly string localEndpoint;

readonly LimitedFixedBufferPool networkPool;
readonly NetworkBuffers networkBuffers;

/// <summary>
/// NOTE: This variable should not be marked as readonly as it is a mutable struct
Expand All @@ -59,18 +59,18 @@ public class GarnetTcpNetworkSender : NetworkSenderBase
private int closeRequested;

/// <summary>
///
/// GarnetTcpNetworkSender Constructor
/// </summary>
/// <param name="socket"></param>
/// <param name="networkPool"></param>
/// <param name="networkBuffers"></param>
/// <param name="throttleMax"></param>
public GarnetTcpNetworkSender(
Socket socket,
LimitedFixedBufferPool networkPool,
NetworkBuffers networkBuffers,
int throttleMax = 8)
: base(networkPool.MinAllocationSize)
: base(networkBuffers.sendMinAllocationSize)
{
this.networkPool = networkPool;
this.networkBuffers = networkBuffers;
this.socket = socket;
this.saeaStack = new(2 * ThrottleMax);
this.responseObject = null;
Expand Down Expand Up @@ -108,7 +108,7 @@ public override unsafe void EnterAndGetResponseObject(out byte* head, out byte*
{
if (disposed)
ThrowDisposed();
responseObject = new GarnetSaeaBuffer(SeaaBuffer_Completed, networkPool);
responseObject = new GarnetSaeaBuffer(SeaaBuffer_Completed, networkBuffers);
}
head = responseObject.buffer.entryPtr;
tail = responseObject.buffer.entryPtr + responseObject.buffer.entry.Length;
Expand Down Expand Up @@ -142,7 +142,7 @@ public override void GetResponseObject()
{
if (disposed)
ThrowDisposed();
responseObject = new GarnetSaeaBuffer(SeaaBuffer_Completed, networkPool);
responseObject = new GarnetSaeaBuffer(SeaaBuffer_Completed, networkBuffers);
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion libs/common/Networking/NetworkHandler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ public unsafe NetworkHandler(TServerHook serverHook, TNetworkSender networkSende
transportReceiveBuffer = transportReceiveBufferEntry.entry;
transportReceiveBufferPtr = transportReceiveBufferEntry.entryPtr;

transportSendBufferEntry = this.networkBuffers.bufferPool.Get(this.networkBuffers.bufferPool.MinAllocationSize);
transportSendBufferEntry = this.networkBuffers.bufferPool.Get(this.networkBuffers.sendMinAllocationSize);
transportSendBuffer = transportSendBufferEntry.entry;
transportSendBufferPtr = transportSendBufferEntry.entryPtr;
}
Expand Down
2 changes: 1 addition & 1 deletion libs/common/Networking/TcpNetworkHandler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ public abstract class TcpNetworkHandler<TServerHook> : TcpNetworkHandlerBase<TSe
/// Constructor
/// </summary>
public TcpNetworkHandler(TServerHook serverHook, Socket socket, NetworkBuffers networkBuffers, bool useTLS, IMessageConsumer messageConsumer = null, LimitedFixedBufferPool recvNetworkPool = null, int networkSendThrottleMax = 8, ILogger logger = null)
: base(serverHook, new GarnetTcpNetworkSender(socket, networkBuffers.bufferPool, networkSendThrottleMax), socket, networkBuffers, useTLS, messageConsumer: messageConsumer, logger: logger)
: base(serverHook, new GarnetTcpNetworkSender(socket, networkBuffers, networkSendThrottleMax), socket, networkBuffers, useTLS, messageConsumer: messageConsumer, logger: logger)
{
}
}
Expand Down

0 comments on commit 87c575a

Please sign in to comment.