ealsur / rpc-benchmark

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

15K RPS per Core Challenge

Proposal

image

Tasks

With pre-configured account routing info

  • Http1 and Http2 E2E integration
  • Rntbd2 E2E integration (Use .NET Pipe abstraction if possible leverage on client as well)
  • Http2 Comsos header HPAC possibility (.NET seems only supporting for default header's)
  • Grpc implementation
  • Http3 endpoint and E2E integration
  • Native Rntbd server (With Backend code)
  • Native Http2 server (explore Http2 implementations)

Benchmarking (Azure env core)

  • Server AI integration (RPS, latency and scenario labeling/dimension)
  • Azure stand-by runner (Router and proxy on same node)
  • Azure stand-by runner (Router and proxy on different node's)

E2E scenario with auto account routing

  • Dotnet implementation
  • Native implementation (metadata provider can be managed)

E2E scenario flow (including session concept)

  • Dotnet implementation

Few misc

  • Rntbd full length including headers & body
  • Rntbd headers order (front load routing context header's)
  • Message protocol with routing context explictly
  • Avoid replica address rewriting (make it full padd-through)

Possible optimizatons for Rntbd

  • Ordering of Token through templates (HACK right solution)
  • Avoid explict loop for all required token presence (PreCount is one possible solution)
  • Avoid explict loop for content length (Can it be in-flight compute on every token set)?

Possible extensions

  • Rntbd test server (CTL altenative)

To start service

cd Service/
dotnet run -c retail 

How to run the client's

cd Client/
dotnet run -c retail -- -w [DotnetHttp1|DotnetHttp2|DotnetRntbd2]  -c 100 -m 2

'-m': Max connections per endpoint
'-c': Concurrency of worload

About

License:MIT License


Languages

Language:C# 72.6%Language:Smalltalk 19.2%Language:Java 8.1%Language:JavaScript 0.1%Language:Rust 0.0%