При высоком уровне громкости производительность снижается - PullRequest
0 голосов
/ 04 июля 2018

Я пытался создать ~ 100 LinearStates. Он находится в потоке, который содержит только N for-each loop, который подчиняется другому IssueFlow, который выдает одно состояние на передачу. Это на Corda 3.0, Azure Cloud с Intel(R) Xeon(R) CPU E5-2673 v3 @ 2.40GHz 4GB RAM

Линейное состояние состоит из

  1. Заемщик
  2. Кредитор
  3. Регулятор

Во время CollectSignature, в первых 40-50 штатах, КАЖДОМУ участнику требуется около 3 ~ 4 секунд для ответа. Но по мере того, как это происходит, инициатор может получить ответ до 14+ секунд. Почему происходит снижение производительности при увеличении громкости?

Тест ниже для общей продолжительности

  1. 10 штатов ~ 2,5 мин
  2. 50 штатов ~ 30 минут
  3. 100 штатов ~ 105 минут

Пример журнала здесь, вы можете видеть, что инициатору требуется обработать ответ участников в процессе сбора подписи до 16 секунд.

Время запуска с LENDER: 2018-06-29T11: 07: 56,356Z

Время окончания с LENDER: 2018-06-29T11: 08: 12,669Z

[INFO ] 2018-06-29T11:07:56,356Z [Node thread-1] flow.[55168e42-bff4-4d75-94ba-304d63f1a58e].initiateSession - Initiating flow session with party OU=LENDER, O=LENDER, L=London, C=UK. Session id for tracing purposes is SessionId(toLong=-1958500197946881585). {}
[INFO ] 2018-06-29T11:08:02,251Z [Thread-179 (ActiveMQ-client-global-threads)] messaging.P2PMessagingClient.artemisToCordaMessage - Received message from: p2p.inbound.DjcvsLH1DL2QVRWbG7ucYLKtmraM8ch2RhCL5TEMJxWCdW user: OU=LENDER, O=LENDER, L=London, C=UK topic: platform.session uuid: 50a1b9aa-4c15-4c8e-a744-8df109103837 {actor_id=corda, actor_owningIdentity=OU=BORROWER, O=BORROWER, L=London, C=UK, actor_store_id=NODE_CONFIG, invocation_id=2f62be30-746e-41c5-9939-719d0653c038, invocation_timestamp=2018-06-29T10:36:49.307Z, session_id=9d602c15-c391-434c-9f6c-c44f662e261c, session_timestamp=2018-06-29T06:55:33.044Z}
[INFO ] 2018-06-29T11:08:05,281Z [Thread-179 (ActiveMQ-client-global-threads)] messaging.P2PMessagingClient.artemisToCordaMessage - Received message from: p2p.inbound.DjcvsLH1DL2QVRWbG7ucYLKtmraM8ch2RhCL5TEMJxWCdW user: OU=LENDER, O=LENDER, L=London, C=UK topic: platform.session uuid: ff4dd716-caaf-43e5-a462-f64844266659 {actor_id=corda, actor_owningIdentity=OU=BORROWER, O=BORROWER, L=London, C=UK, actor_store_id=NODE_CONFIG, invocation_id=2f62be30-746e-41c5-9939-719d0653c038, invocation_timestamp=2018-06-29T10:36:49.307Z, session_id=9d602c15-c391-434c-9f6c-c44f662e261c, session_timestamp=2018-06-29T06:55:33.044Z}
[INFO ] 2018-06-29T11:08:12,669Z [Thread-177 (ActiveMQ-client-global-threads)] messaging.P2PMessagingClient.artemisToCordaMessage - Received message from: p2p.inbound.DjcvsLH1DL2QVRWbG7ucYLKtmraM8ch2RhCL5TEMJxWCdW user: OU=LENDER, O=LENDER, L=London, C=UK topic: platform.session uuid: b2ff1807-b9ef-49dd-aabb-d69253ce5f28 {actor_id=corda, actor_owningIdentity=OU=BORROWER, O=BORROWER, L=London, C=UK, actor_store_id=NODE_CONFIG, invocation_id=2622b6f6-82f7-417b-a1ea-3c2207bb1a03, invocation_timestamp=2018-06-29T11:04:40.745Z, session_id=9d602c15-c391-434c-9f6c-c44f662e261c, session_timestamp=2018-06-29T06:55:33.044Z}
[INFO ] 2018-06-29T11:08:15,193Z [Node thread-1] flow.[55168e42-bff4-4d75-94ba-304d63f1a58e].initiateSession - Initiating flow session with party OU=REGULATOR, O=REGULATOR, L=London, C=UK. Session id for tracing purposes is SessionId(toLong=-8884253824391485917). {}
[INFO ] 2018-06-29T11:08:16,810Z [Thread-179 (ActiveMQ-client-global-threads)] messaging.P2PMessagingClient.artemisToCordaMessage - Received message from: p2p.inbound.DjcvsLH1DL2QVRWbG7ucYLKtmraM8ch2RhCL5TEMJxWCdW user: OU=REGULATOR, O=REGULATOR, L=London, C=UK topic: platform.session uuid: fd68ae1d-fa64-4a90-aeb5-c987f73836c3 {actor_id=corda, actor_owningIdentity=OU=BORROWER, O=BORROWER, L=London, C=UK, actor_store_id=NODE_CONFIG, invocation_id=2f62be30-746e-41c5-9939-719d0653c038, invocation_timestamp=2018-06-29T10:36:49.307Z, session_id=9d602c15-c391-434c-9f6c-c44f662e261c, session_timestamp=2018-06-29T06:55:33.044Z}
[INFO ] 2018-06-29T11:08:19,913Z [Thread-179 (ActiveMQ-client-global-threads)] messaging.P2PMessagingClient.artemisToCordaMessage - Received message from: p2p.inbound.DjcvsLH1DL2QVRWbG7ucYLKtmraM8ch2RhCL5TEMJxWCdW user: OU=REGULATOR, O=REGULATOR, L=London, C=UK topic: platform.session uuid: 3cadd008-4cf4-4e89-bcaf-92200c1f9c08 {actor_id=corda, actor_owningIdentity=OU=BORROWER, O=BORROWER, L=London, C=UK, actor_store_id=NODE_CONFIG, invocation_id=2f62be30-746e-41c5-9939-719d0653c038, invocation_timestamp=2018-06-29T10:36:49.307Z, session_id=9d602c15-c391-434c-9f6c-c44f662e261c, session_timestamp=2018-06-29T06:55:33.044Z}
[INFO ] 2018-06-29T11:08:24,468Z [Thread-177 (ActiveMQ-client-global-threads)] messaging.P2PMessagingClient.artemisToCordaMessage - Received message from: p2p.inbound.DjcvsLH1DL2QVRWbG7ucYLKtmraM8ch2RhCL5TEMJxWCdW user: OU=REGULATOR, O=REGULATOR, L=London, C=UK topic: platform.session uuid: 5295d816-0605-42f4-b53a-d34761ed2b03 {actor_id=corda, actor_owningIdentity=OU=BORROWER, O=BORROWER, L=London, C=UK, actor_store_id=NODE_CONFIG, invocation_id=2622b6f6-82f7-417b-a1ea-3c2207bb1a03, invocation_timestamp=2018-06-29T11:04:40.745Z, session_id=9d602c15-c391-434c-9f6c-c44f662e261c, session_timestamp=2018-06-29T06:55:33.044Z}
[INFO ] 2018-06-29T11:08:27,325Z [Node thread-1] flow.[55168e42-bff4-4d75-94ba-304d63f1a58e].initiateSession - Initiating flow session with party O=NetworkMapAndNotary, L=London, C=UK. Session id for tracing purposes is SessionId(toLong=4774527641719127102). {}
[INFO ] 2018-06-29T11:08:29,355Z [Thread-179 (ActiveMQ-client-global-threads)] messaging.P2PMessagingClient.artemisToCordaMessage - Received message from: p2p.inbound.DjcvsLH1DL2QVRWbG7ucYLKtmraM8ch2RhCL5TEMJxWCdW user: O=NetworkMapAndNotary, L=London, C=UK topic: platform.session uuid: 7a149d3e-cea8-46e4-8d05-09bb43d6d18b {actor_id=corda, actor_owningIdentity=OU=BORROWER, O=BORROWER, L=London, C=UK, actor_store_id=NODE_CONFIG, invocation_id=2f62be30-746e-41c5-9939-719d0653c038, invocation_timestamp=2018-06-29T10:36:49.307Z, session_id=9d602c15-c391-434c-9f6c-c44f662e261c, session_timestamp=2018-06-29T06:55:33.044Z}
[INFO ] 2018-06-29T11:08:32,224Z [Thread-179 (ActiveMQ-client-global-threads)] messaging.P2PMessagingClient.artemisToCordaMessage - Received message from: p2p.inbound.DjcvsLH1DL2QVRWbG7ucYLKtmraM8ch2RhCL5TEMJxWCdW user: O=NetworkMapAndNotary, L=London, C=UK topic: platform.session uuid: eb1b0a8c-a759-47aa-96f5-57e4a3ec27a4 {actor_id=corda, actor_owningIdentity=OU=BORROWER, O=BORROWER, L=London, C=UK, actor_store_id=NODE_CONFIG, invocation_id=2f62be30-746e-41c5-9939-719d0653c038, invocation_timestamp=2018-06-29T10:36:49.307Z, session_id=9d602c15-c391-434c-9f6c-c44f662e261c, session_timestamp=2018-06-29T06:55:33.044Z}
[INFO ] 2018-06-29T11:08:35,331Z [Thread-179 (ActiveMQ-client-global-threads)] messaging.P2PMessagingClient.artemisToCordaMessage - Received message from: p2p.inbound.DjcvsLH1DL2QVRWbG7ucYLKtmraM8ch2RhCL5TEMJxWCdW user: O=NetworkMapAndNotary, L=London, C=UK topic: platform.session uuid: f25ea565-23b0-4dd6-bb2d-38fe9c5f0529 {actor_id=corda, actor_owningIdentity=OU=BORROWER, O=BORROWER, L=London, C=UK, actor_store_id=NODE_CONFIG, invocation_id=2f62be30-746e-41c5-9939-719d0653c038, invocation_timestamp=2018-06-29T10:36:49.307Z, session_id=9d602c15-c391-434c-9f6c-c44f662e261c, session_timestamp=2018-06-29T06:55:33.044Z}
[INFO ] 2018-06-29T11:08:35,339Z [Node thread-1] vault.NodeVaultService._queryBy - Vault Query for contract type: interface net.corda.core.contracts.ContractState, criteria: VaultQueryCriteria(status=UNCONSUMED, contractStateTypes=null, stateRefs=[AA7F52DA4BC71835C46FCFBA4542372DC261F9885BA8B2614A9C111D24A5091A(0), 19CCA05079E7F5F34EB91C50F1EA7D7D7599662BB55A57B65E91F6D7BFE63602(1)], notary=null, softLockingCondition=null, timeCondition=null), pagination: PageSpecification(pageNumber=-1, pageSize=200), sorting: Sort(columns=[]) {}
[INFO ] 2018-06-29T11:08:35,382Z [Node thread-1] flow.[55168e42-bff4-4d75-94ba-304d63f1a58e].initiateSession - Initiating flow session with party OU=LENDER, O=LENDER, L=London, C=UK. Session id for tracing purposes is SessionId(toLong=-607600376681252697). {}
[INFO ] 2018-06-29T11:08:36,936Z [Thread-179 (ActiveMQ-client-global-threads)] messaging.P2PMessagingClient.artemisToCordaMessage - Received message from: p2p.inbound.DjcvsLH1DL2QVRWbG7ucYLKtmraM8ch2RhCL5TEMJxWCdW user: OU=LENDER, O=LENDER, L=London, C=UK topic: platform.session uuid: 64b87ae0-e744-4b56-aff6-25d4a2ef7c34 {actor_id=corda, actor_owningIdentity=OU=BORROWER, O=BORROWER, L=London, C=UK, actor_store_id=NODE_CONFIG, invocation_id=2f62be30-746e-41c5-9939-719d0653c038, invocation_timestamp=2018-06-29T10:36:49.307Z, session_id=9d602c15-c391-434c-9f6c-c44f662e261c, session_timestamp=2018-06-29T06:55:33.044Z}
[INFO ] 2018-06-29T11:08:39,844Z [Thread-179 (ActiveMQ-client-global-threads)] messaging.P2PMessagingClient.artemisToCordaMessage - Received message from: p2p.inbound.DjcvsLH1DL2QVRWbG7ucYLKtmraM8ch2RhCL5TEMJxWCdW user: OU=LENDER, O=LENDER, L=London, C=UK topic: platform.session uuid: 8a5520a9-fafa-48b0-82cb-a951b60f6a4c {actor_id=corda, actor_owningIdentity=OU=BORROWER, O=BORROWER, L=London, C=UK, actor_store_id=NODE_CONFIG, invocation_id=2f62be30-746e-41c5-9939-719d0653c038, invocation_timestamp=2018-06-29T10:36:49.307Z, session_id=9d602c15-c391-434c-9f6c-c44f662e261c, session_timestamp=2018-06-29T06:55:33.044Z}
[INFO ] 2018-06-29T11:08:42,980Z [Thread-179 (ActiveMQ-client-global-threads)] messaging.P2PMessagingClient.artemisToCordaMessage - Received message from: p2p.inbound.DjcvsLH1DL2QVRWbG7ucYLKtmraM8ch2RhCL5TEMJxWCdW user: OU=LENDER, O=LENDER, L=London, C=UK topic: platform.session uuid: 0760d9e0-9f6f-47e7-8875-0a89a805c8e3 {actor_id=corda, actor_owningIdentity=OU=BORROWER, O=BORROWER, L=London, C=UK, actor_store_id=NODE_CONFIG, invocation_id=2f62be30-746e-41c5-9939-719d0653c038, invocation_timestamp=2018-06-29T10:36:49.307Z, session_id=9d602c15-c391-434c-9f6c-c44f662e261c, session_timestamp=2018-06-29T06:55:33.044Z}
[INFO ] 2018-06-29T11:08:42,981Z [Node thread-1] flow.[55168e42-bff4-4d75-94ba-304d63f1a58e].initiateSession - Initiating flow session with party OU=REGULATOR, O=REGULATOR, L=London, C=UK. Session id for tracing purposes is SessionId(toLong=4404924816331214061). {}
[INFO ] 2018-06-29T11:08:46,011Z [Thread-179 (ActiveMQ-client-global-threads)] messaging.P2PMessagingClient.artemisToCordaMessage - Received message from: p2p.inbound.DjcvsLH1DL2QVRWbG7ucYLKtmraM8ch2RhCL5TEMJxWCdW user: OU=REGULATOR, O=REGULATOR, L=London, C=UK topic: platform.session uuid: 2ff5f6ee-59af-4e96-b9e5-b081cc59e5b7 {actor_id=corda, actor_owningIdentity=OU=BORROWER, O=BORROWER, L=London, C=UK, actor_store_id=NODE_CONFIG, invocation_id=2f62be30-746e-41c5-9939-719d0653c038, invocation_timestamp=2018-06-29T10:36:49.307Z, session_id=9d602c15-c391-434c-9f6c-c44f662e261c, session_timestamp=2018-06-29T06:55:33.044Z}
[INFO ] 2018-06-29T11:08:47,435Z [Thread-179 (ActiveMQ-client-global-threads)] messaging.P2PMessagingClient.artemisToCordaMessage - Received message from: p2p.inbound.DjcvsLH1DL2QVRWbG7ucYLKtmraM8ch2RhCL5TEMJxWCdW user: OU=REGULATOR, O=REGULATOR, L=London, C=UK topic: platform.session uuid: 24e23ab9-3a38-4b26-a1dc-b113332bfa20 {actor_id=corda, actor_owningIdentity=OU=BORROWER, O=BORROWER, L=London, C=UK, actor_store_id=NODE_CONFIG, invocation_id=2f62be30-746e-41c5-9939-719d0653c038, invocation_timestamp=2018-06-29T10:36:49.307Z, session_id=9d602c15-c391-434c-9f6c-c44f662e261c, session_timestamp=2018-06-29T06:55:33.044Z}
[INFO ] 2018-06-29T11:08:50,487Z [Thread-179 (ActiveMQ-client-global-threads)] messaging.P2PMessagingClient.artemisToCordaMessage - Received message from: p2p.inbound.DjcvsLH1DL2QVRWbG7ucYLKtmraM8ch2RhCL5TEMJxWCdW user: OU=REGULATOR, O=REGULATOR, L=London, C=UK topic: platform.session uuid: fbf75fab-5250-4a80-a3e6-96cf30c66082 {actor_id=corda, actor_owningIdentity=OU=BORROWER, O=BORROWER, L=London, C=UK, actor_store_id=NODE_CONFIG, invocation_id=2f62be30-746e-41c5-9939-719d0653c038, invocation_timestamp=2018-06-29T10:36:49.307Z, session_id=9d602c15-c391-434c-9f6c-c44f662e261c, session_timestamp=2018-06-29T06:55:33.044Z}

1 Ответ

0 голосов
/ 04 июля 2018

В Corda узлы создают контрольную точку каждый раз, когда они отправляют или получают информацию как часть потока (эти контрольные точки автоматически удаляются, как только они устаревают). Время, необходимое для создания этой контрольной точки, частично зависит от количества сериализуемых объектов.

В этом случае каждая итерация цикла for добавляла новый объект в список. По мере того как этот список рос, контрольные пункты занимали все больше и больше времени.

...