Transaction chain resolution slows down significantly with large numbers of transactions

Description

Resolution along the chain slows down significantly with large numbers of transactions.

  • Corda Version: OS 4.3-RC01

  • OS: Ubuntu 16.04.6 LTS

  • JDK Version: Java(TM) SE Runtime Environment (build 1.8.0_211-b12)

  • Environment: Exactpro-exposed

  • Configuration: 1 Notary and 4 Nodes

Description
Check chain resolution time depends on a number of transactions

Simple Test:

  • Nodes A, B, C, D

  • Issue 6 USD to A, B
    Concurrently transfer:

  • A -> B - 1 USD, N times

  • B -> A - 1 USD, N times

Afterward:

  • transfer A -> C - 5 USD

  • transfer B -> D - 5 USD

  • Measure the duration of the Cash Payment Flow for transfer consuming N states

N = 100, 200, 400, 800, 1000, 1500, 2000

Complex Test:

  • Use 89 and 97 USD for transfers

  • Will result in more states

Results:

 

Simple

Complex

 

A -> C

B -> C

C -> D

A -> C

B -> C

C -> D

N

SimpleAC, sec

SimpleBC, sec

SimpleCD, sec

ComplexAC, sec

ComplexBC, sec

ComplexCD, sec

100

10

8

8

26

0

19

200

19

16

16

59

0

36

400

38

34

29

138

0

70

800

72

73

59

351

0

146

1000

91

87

75

470

1

188

1500

150

143

119

862

timeout

timeout

2000

timeout

timeout

timeout

timeout

timeout

timeout

Assignee

Unassigned

Reporter

Ivan Shamray

Labels

None

Sprint

None

Epic Link

None

Priority

Medium

Engineering Teams

None

Fix versions

None

Affects versions

Ported to...

None

Story Points / Dev Days

None

Build cut

None

Feature Team

Corda Core
Configure