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

 

Status

Assignee

Unassigned

Reporter

Ivan Shamray

Labels

None

Priority

Medium

Fix versions

None

Ported to...

None

Feature Team

Corda Core

Severity

High

Affects versions

Corda 4.3 RC01
Configure