Skip to content

Using RPC Async Request #2

@shroffk

Description

@shroffk

The RPCServiceAsync appears to be a more fitting choice for the ChannelFinder service.

Using the callback mechanism to notify the clinet when the elastic query and the NTTable is complete results in the Service being able to handle a lot more clients more effeciently.

Following is some preliminary numbers of the AsyncService IT tests run against both the old service implementation and the new async service.

Using a pool of 50, the IT creates a new RPC client, executes a query waits for the results and then validates it, and then closes the client.

The times are reported in ms

50
ChannelFinderServiceAsync 50 query time: 1559
ChannelFinderService 50 query time: 1319

100
ChannelFinderServiceAsync 100 query time: 2120
ChannelFinderService 100 query time: 2612

1000
ChannelFinderServiceAsync 1000 query time: 14364
ChannelFinderService 1000 query time: 26837
ChannelFinderServiceAsync 1000 query time: 13970
ChannelFinderService 1000 query time: 26542
ChannelFinderServiceAsync 1000 query time: 15414
ChannelFinderService 1000 query time: 28390

2000
ChannelFinderServiceAsync 2000 query time: 33224
ChannelFinderService 2000 query time: 58124

4000
ChannelFinderServiceAsync 4000 query time: 52421
ChannelFinderService 4000 query time: 104256

10000
ChannelFinderServiceAsync 10000 query time: 118873
ChannelFinderService 10000 query time: 247866

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions