App Install
Measure app installation speed. This scenario has two roles:
minimal: Installs a simple app which implements initialisation callbacks but otherwise doesn't contain a lot of code.large: Installs a larger app that contains some dependencies and some generated data as padding to make the bundle larger.
These are intended to catch a compilation slowdown or issues with copying around large WASMs (e.g. accidental cloning or tracing). In each case, the behaviour will uninstall the app it installed so that it can re-install it on the next iteration.
-
large(1 agent)
App Install
Measure app installation speed. This scenario has two roles:
minimal: Installs a simple app which implements initialisation callbacks but otherwise doesn't contain a lot of code.large: Installs a larger app that contains some dependencies and some generated data as padding to make the bundle larger.
These are intended to catch a compilation slowdown or issues with copying around large WASMs (e.g. accidental cloning or tracing). In each case, the behaviour will uninstall the app it installed so that it can re-install it on the next iteration.
-
minimal(1 agent)
DHT Sync Lag
Measure lag time between an agent publishing data and other peers being able to see it. This scenario has two roles:
write: A simple job that just creates entries with a timestamp field. Those entries are linked to a known base hash. For each write, the metricws.custom.dht_sync_sent_countis incremented.record_lag: A job that repeatedly queries for links from the known base hash. It keeps track of records that it has seen and when a new record is found, and calculates the time difference between the timestamp of the new record and the current time. That time difference is then recorded as a custom metric calledwt.custom.dht_sync_lag.
After each behaviour loop the metric ws.custom.dht_sync_recv_count is incremented.
-
record_lag(1 agent) -
write(1 agent)
agent:uhCAk6RcNzuX1BvDjKBfxIVnzW69KKet9vi91QQS9biKmgR1bu1u5
agent:uhCAkPjrfZh0aX0-z21Hv0Azugm1oAyR_qUapasiLkcfs4Q6MfBxp
agent:uhCAkSgzZPqkBPq7tgsQ0j3VhMka1FloklI4Gf9SqqIoPswveeFqG
agent:uhCAkX7hSJyV5jmKrDukjf9HpdsBAJCvh16khUfcY44_OAXaLjOOo
agent:uhCAkwsCMob-LGNQ1F1s6-3sEhHaXxMSKImcnV0fvAgjOgfunrIyJ
agent:uhCAk-JRouRQ3tAy4VaCao2grKo9Y4WGgPbnJYhySoS0NqSXvjSUH
agent:uhCAk1OaDUFQOZ6fZn-IbQaatJKEqxJLYEUE47OcI24GAU3o9oT5p
agent:uhCAkZBguduqvDVaKHA-SpVnP_TT6JZIk4-3Vfq0iPdubq8JPSInp
agent:uhCAkdffQ8NbnztPwy3-1lmwZZ96TBl8DmJ_IOPgzcJKLhwhWpT29
agent:uhCAkyy0UlZUVN-WMqm_V0roQLmWE4_GJ4qoeC30CaRm6Q9NntS-N
agent:uhCAk-JRouRQ3tAy4VaCao2grKo9Y4WGgPbnJYhySoS0NqSXvjSUH
agent:uhCAk1OaDUFQOZ6fZn-IbQaatJKEqxJLYEUE47OcI24GAU3o9oT5p
agent:uhCAkZBguduqvDVaKHA-SpVnP_TT6JZIk4-3Vfq0iPdubq8JPSInp
agent:uhCAkdffQ8NbnztPwy3-1lmwZZ96TBl8DmJ_IOPgzcJKLhwhWpT29
agent:uhCAkyy0UlZUVN-WMqm_V0roQLmWE4_GJ4qoeC30CaRm6Q9NntS-N
post_commit durationFirst Call
This scenario installs a simple app which implements the init callback, and measures the time elapsed between start of install and calling init. It will uninstall the app it installed so that it can re-install it on the next iteration. This is required to re-run the initialisation callback.
-
default(1 agent)
init.Full-Arc Create (Validated) / Zero-Arc Read
A full-arc/zero-arc mixed scenario where full-arc nodes create data that gets validated and zero-arc nodes read the data. The scenario has two roles:
full: A full-arc conductor that creates entries with a timestamp field. Those entries get validated and then retrieved by zero-arc nodes.zero: A zero-arc conductor that reads the entries created by the full-arc node(s) and records the time lag between when the entry had been created and when it was first discovered.
-
full(1 agent) -
zero(1 agent)
agent:uhCAk5xQyWgWNAGXnbtYaM5D_r0ECgzLIRahodCP1VNmGexpaooLO
agent:uhCAk6q33RN1S6KBiL4scNFCn3Xx1ortPmFuW5LfBQtKvY1ec7gFb
agent:uhCAkkgWJ8BT0P4_y3ZhUnaonWG1oK3ZUCQNo0goELwoP_3vDPcSl
agent:uhCAkwIRkv-KBhK-PAxM4CnU5CTwrUaH6GiyMkVVswtnNWibci80q
get_timed_local_entries zome function.agent:uhCAk-q_d_MTjOUspj3BbSc5eqcjO_hwPU0tWeKnhoo2p9_0T9PZV
agent:uhCAkEGZASkHgZUsNFOYfptFxSxEF7kc22LxkY5UPetN7FHjRTzU8
agent:uhCAkkI0n0mYSNVmgnKkeiyqeFFj0zq1ojgbM1ZgQGglmzdY1j0Qp
agent:uhCAkr2p-qKzs28azNXmsonDJM0U0XdbDOd7-uIfoVGv2yLRcQ3iO
agent:uhCAkuJm0-ham2LtrWJEnTNqvufyionwkWdiLQTBuVqgcYXY3Jh-l
agent:uhCAk-q_d_MTjOUspj3BbSc5eqcjO_hwPU0tWeKnhoo2p9_0T9PZV
agent:uhCAkEGZASkHgZUsNFOYfptFxSxEF7kc22LxkY5UPetN7FHjRTzU8
agent:uhCAkkI0n0mYSNVmgnKkeiyqeFFj0zq1ojgbM1ZgQGglmzdY1j0Qp
agent:uhCAkr2p-qKzs28azNXmsonDJM0U0XdbDOd7-uIfoVGv2yLRcQ3iO
agent:uhCAkuJm0-ham2LtrWJEnTNqvufyionwkWdiLQTBuVqgcYXY3Jh-l
Local Signals
This scenario is for testing the speed and reliability of local signals. It uses a zome with a function that will emit 10,000 signals. The scenario measures how long it takes to send the signals and how many have been received by the time the zome call ends.
-
default(1 agent)
Mixed Arc get_agent_activity
A mixed-arc scenario that measures the DHT's ability to propagate agent activity and make it available via get_agent_activity calls. The scenario has three roles:
zero_write: A zero-arc conductor that creates entries on its source chain.full_write: A full-arc conductor that creates entries on its source chain.zero_read: A zero-arc conductor that picks a random writer and repeatedly callsget_agent_activityto observe new entries appearing on the writer's chain, measuring the lag between creation and discovery.
-
full_write(1 agent) -
zero_read(1 agent) -
zero_write(1 agent)
agent:uhCAk--7_PvOPmVAC1SgMc_lb4AwxJlsWVyGEbV80_zuJu1G7ZWccbehaviour:full_write
agent:uhCAk24JI5DNF9zyX9H4jDU9TO8kPxbI3Ujqmws1_7fWj3Jerz4a_behaviour:zero_write
agent:uhCAkBfxLhqx1hL4eG-AI06yof_1mgCTE0CuSL91Qb_eWX6ad0q_7behaviour:zero_write
agent:uhCAkSaLEcC-VnRpQ4Ck6DkOR97btAOKF40RlcVMHKA9tNf8eOMa3behaviour:full_write
action_seqget_agent_activity. This reflects the DHT's ability to propagate agent activity ops and make them available to querying peers.get_agent_activity_agent:uhCAkD14bc8C68auD7hCSqXeUhKTN8LwUUnf7RnTX5amksjEcna1swrite_agent:uhCAkSaLEcC-VnRpQ4Ck6DkOR97btAOKF40RlcVMHKA9tNf8eOMa3
get_agent_activity_agent:uhCAkDeZ6Y7EqdemWNMy-ShY80Jp4KAgnrSEJ6Zgn-eJ1sUtlSPRIwrite_agent:uhCAkSaLEcC-VnRpQ4Ck6DkOR97btAOKF40RlcVMHKA9tNf8eOMa3
get_agent_activity_agent:uhCAkElWd7EyfgMFScsFsa_sZZOO2eqU5VHmifDHko1V49IoU6N1Rwrite_agent:uhCAkSaLEcC-VnRpQ4Ck6DkOR97btAOKF40RlcVMHKA9tNf8eOMa3
get_agent_activity_agent:uhCAkHJRCvR74JQffPX1tvPhUcGa_GyhNK4EVe4W34QpkoLQssEFhwrite_agent:uhCAkSaLEcC-VnRpQ4Ck6DkOR97btAOKF40RlcVMHKA9tNf8eOMa3
get_agent_activity_agent:uhCAkRK6KEcUWBJTT7B-lcgDrdnA5ZESQkyyOVR-JlObF5uEmM9lVwrite_agent:uhCAkSaLEcC-VnRpQ4Ck6DkOR97btAOKF40RlcVMHKA9tNf8eOMa3
get_agent_activity_agent:uhCAkh5uoVIyX5aHv0qWxTWpiPcTLEbf_DlZX55GsK2u96I6jaEUBwrite_agent:uhCAkSaLEcC-VnRpQ4Ck6DkOR97btAOKF40RlcVMHKA9tNf8eOMa3
get_agent_activity. This is measured per new action in the chain.agent:uhCAkD14bc8C68auD7hCSqXeUhKTN8LwUUnf7RnTX5amksjEcna1s
agent:uhCAkDeZ6Y7EqdemWNMy-ShY80Jp4KAgnrSEJ6Zgn-eJ1sUtlSPRI
agent:uhCAkElWd7EyfgMFScsFsa_sZZOO2eqU5VHmifDHko1V49IoU6N1R
agent:uhCAkHJRCvR74JQffPX1tvPhUcGa_GyhNK4EVe4W34QpkoLQssEFh
agent:uhCAkRK6KEcUWBJTT7B-lcgDrdnA5ZESQkyyOVR-JlObF5uEmM9lV
agent:uhCAkh5uoVIyX5aHv0qWxTWpiPcTLEbf_DlZX55GsK2u96I6jaEUB
agent:uhCAkD14bc8C68auD7hCSqXeUhKTN8LwUUnf7RnTX5amksjEcna1s
agent:uhCAkDeZ6Y7EqdemWNMy-ShY80Jp4KAgnrSEJ6Zgn-eJ1sUtlSPRI
agent:uhCAkElWd7EyfgMFScsFsa_sZZOO2eqU5VHmifDHko1V49IoU6N1R
agent:uhCAkHJRCvR74JQffPX1tvPhUcGa_GyhNK4EVe4W34QpkoLQssEFh
agent:uhCAkRK6KEcUWBJTT7B-lcgDrdnA5ZESQkyyOVR-JlObF5uEmM9lV
agent:uhCAkh5uoVIyX5aHv0qWxTWpiPcTLEbf_DlZX55GsK2u96I6jaEUB
get_agent_activity_full zome call timingget_agent_activity_full zome call that queries a writer's chain.agent:uhCAkD14bc8C68auD7hCSqXeUhKTN8LwUUnf7RnTX5amksjEcna1s
agent:uhCAkDeZ6Y7EqdemWNMy-ShY80Jp4KAgnrSEJ6Zgn-eJ1sUtlSPRI
agent:uhCAkElWd7EyfgMFScsFsa_sZZOO2eqU5VHmifDHko1V49IoU6N1R
agent:uhCAkHJRCvR74JQffPX1tvPhUcGa_GyhNK4EVe4W34QpkoLQssEFh
agent:uhCAkRK6KEcUWBJTT7B-lcgDrdnA5ZESQkyyOVR-JlObF5uEmM9lV
agent:uhCAkh5uoVIyX5aHv0qWxTWpiPcTLEbf_DlZX55GsK2u96I6jaEUB
get_agent_activity.agent:uhCAkD14bc8C68auD7hCSqXeUhKTN8LwUUnf7RnTX5amksjEcna1s
agent:uhCAkDeZ6Y7EqdemWNMy-ShY80Jp4KAgnrSEJ6Zgn-eJ1sUtlSPRI
agent:uhCAkElWd7EyfgMFScsFsa_sZZOO2eqU5VHmifDHko1V49IoU6N1R
agent:uhCAkHJRCvR74JQffPX1tvPhUcGa_GyhNK4EVe4W34QpkoLQssEFh
agent:uhCAkRK6KEcUWBJTT7B-lcgDrdnA5ZESQkyyOVR-JlObF5uEmM9lV
agent:uhCAkh5uoVIyX5aHv0qWxTWpiPcTLEbf_DlZX55GsK2u96I6jaEUB
behaviour:full_write
behaviour:zero_read
behaviour:zero_write
Mixed Arc must_get_agent_activity
A scenario where write agents create entries in batches of 10, while must_get_agent_activity agents each pick a random write agent and repeatedly attempt to create an entry that references the chain top of their latest batch. This reference means that the entry's validation function needs to make a must_get_agent_activity call.
The purpose of this scenario is to measure the time it takes for published agent activity data to be gossiped among authorities and become available to peers that query it via must_get_agent_activity.
This test is similar to Write Validated must_get_agent_activity, but some write agents are zero-arc and all must_get_agent_activity agents are zero-arc. This forces the must_get_agent_activity host call to go to the network.
-
full_write(1 agent) -
zero_must_get_agent_activity(1 agent) -
zero_write(1 agent)
action_seqaction_seq of a write agent successfully retrieved by a must_get_agent_activity agent. This reflects the DHT's ability to propagate agent activity ops and make them available to querying peers.write agent's creation of a batch and a must_get_agent_activity agent's successful discovery of the batch and creation/self-validation of a new entry that depends on it.must_get_agent_activity_agent:uhCAkbb3SNUzwrctqnD5uLH18yTIXw_Fe1_cOYn51-SK3So-Vqtol
must_get_agent_activity_agent:uhCAkmZS1GHfDzavUEzsAeQ9wsda6eYuMW6SPM_LCmJZMka7f0RAc
must_get_agent_activity_agent:uhCAkvAv9nPb0nz2pyLJSLnd1FPJqGodirC0r5svT0-dqj6FTSNEp
must_get_agent_activity_agent:uhCAkxbGxPn58pPzNbx_MX1prXO76YHkcoj5S5vmhHkmvfALJ5ZjD
must_get_agent_activity_agent:uhCAkxyPcmubQEyr5EDdAVrZcLU10V5eEEwQOJI5k2QmSjSFdfrp7
must_get_agent_activity agent was able to discover batches and create/self-validate new entries that depend on them.must_get_agent_activity_agent:uhCAkbb3SNUzwrctqnD5uLH18yTIXw_Fe1_cOYn51-SK3So-Vqtol
must_get_agent_activity_agent:uhCAkmZS1GHfDzavUEzsAeQ9wsda6eYuMW6SPM_LCmJZMka7f0RAc
must_get_agent_activity_agent:uhCAkvAv9nPb0nz2pyLJSLnd1FPJqGodirC0r5svT0-dqj6FTSNEp
must_get_agent_activity_agent:uhCAkxbGxPn58pPzNbx_MX1prXO76YHkcoj5S5vmhHkmvfALJ5ZjD
must_get_agent_activity_agent:uhCAkxyPcmubQEyr5EDdAVrZcLU10V5eEEwQOJI5k2QmSjSFdfrp7
create_validated_sample_entry zome call timingwrite agent's source chain.agent:uhCAkbb3SNUzwrctqnD5uLH18yTIXw_Fe1_cOYn51-SK3So-Vqtol
agent:uhCAkmZS1GHfDzavUEzsAeQ9wsda6eYuMW6SPM_LCmJZMka7f0RAc
agent:uhCAkvAv9nPb0nz2pyLJSLnd1FPJqGodirC0r5svT0-dqj6FTSNEp
agent:uhCAkxbGxPn58pPzNbx_MX1prXO76YHkcoj5S5vmhHkmvfALJ5ZjD
agent:uhCAkxyPcmubQEyr5EDdAVrZcLU10V5eEEwQOJI5k2QmSjSFdfrp7
must_get_agent_activity calls.agent:uhCAkbb3SNUzwrctqnD5uLH18yTIXw_Fe1_cOYn51-SK3So-Vqtol
agent:uhCAkmZS1GHfDzavUEzsAeQ9wsda6eYuMW6SPM_LCmJZMka7f0RAc
agent:uhCAkvAv9nPb0nz2pyLJSLnd1FPJqGodirC0r5svT0-dqj6FTSNEp
agent:uhCAkxbGxPn58pPzNbx_MX1prXO76YHkcoj5S5vmhHkmvfALJ5ZjD
agent:uhCAkxyPcmubQEyr5EDdAVrZcLU10V5eEEwQOJI5k2QmSjSFdfrp7
behaviour:full_write
behaviour:zero_must_get_agent_activity
behaviour:zero_write
Remote Call Rate
Test the throughput of remote_call operations. Each agent in this scenario waits for a certain number of peers to be available or for up to two minutes, whichever happens first, before starting its behaviour.
-
default(1 agent)
agent:uhCAk-21-gUoKQXWV6C3F1oTPsrC0kfr5RE9S2dlu7crtl9uwO6u-
agent:uhCAklCPk_DU4wTEjetDuRlElx8tBpliix2iQtSeg19gFI6k0GkiO
agent:uhCAk-21-gUoKQXWV6C3F1oTPsrC0kfr5RE9S2dlu7crtl9uwO6u-
agent:uhCAklCPk_DU4wTEjetDuRlElx8tBpliix2iQtSeg19gFI6k0GkiO
Remote Signals
This scenario tests the throughput of remote_signals operations.
-
default(1 agent)
Single-write, many-read
Creates an entry in the agent setup, then read one's own record back. This tests the maximum read performance for reading back local data when the chain is short.
-
default(1 agent)
read call timingread call rate (10s)Two-party countersigning
This scenario tests the performance of countersigning operations. There are two roles: initiate and participate. The participants commit an entry to advertise that they are willing to participate in sessions. They listen for sessions and participate in one at a time.
-
initiate(1 agent) -
participate(1 agent)
agent:uhCAk2r6kwQENyt-nc3RCKB7Y-NvFoXTZUjeXg7vqVOu_Waw632Wp
agent:uhCAkdXBcEYCS_Ts1U82DsDeZzfaDUSo82IoSJmDaXjnqVhgeutdU
agent:uhCAk2r6kwQENyt-nc3RCKB7Y-NvFoXTZUjeXg7vqVOu_Waw632Wp
agent:uhCAkdXBcEYCS_Ts1U82DsDeZzfaDUSo82IoSJmDaXjnqVhgeutdU
agent:uhCAk2r6kwQENyt-nc3RCKB7Y-NvFoXTZUjeXg7vqVOu_Waw632Wp
agent:uhCAkdXBcEYCS_Ts1U82DsDeZzfaDUSo82IoSJmDaXjnqVhgeutdU
agent:uhCAk_8UxhejR5K7dC34KCZGoyuiHDZvCcC-E1EyM3HLHHc9MEonF
agent:uhCAk_8UxhejR5K7dC34KCZGoyuiHDZvCcC-E1EyM3HLHHc9MEonF
agent:uhCAk_8UxhejR5K7dC34KCZGoyuiHDZvCcC-E1EyM3HLHHc9MEonF
Validation Receipts
Creates an entry, wait for required validation receipts, then repeat. Records the amount of time it took to accumulate the required number of receipts for all DHT operations. This is measured to the nearest 20ms so that we don't keep the agent too busy checking for receipts.
Each agent in this scenario waits for a certain number of peers to be available or for up to two minutes, whichever happens first, before starting its behaviour.
By default, this scenario will wait for a complete set of validation receipts before committing the next record. If the NO_VALIDATION_COMPLETE environment variable is set, it will instead publish new records on every round, building up an ever-growing list of action hashes to check on.
-
default(1 agent)
agent:uhCAk2doJ063Hi0H8fb0qlHsrcAQ6Ex7UVg0EqdRRczmNSCYHrjLOop_type:RegisterAgentActivity
agent:uhCAk2doJ063Hi0H8fb0qlHsrcAQ6Ex7UVg0EqdRRczmNSCYHrjLOop_type:StoreEntry
agent:uhCAk2doJ063Hi0H8fb0qlHsrcAQ6Ex7UVg0EqdRRczmNSCYHrjLOop_type:StoreRecord
agent:uhCAkIoBOCevXrR9QvtvpWn-HYmU2uXEkcGyYK9z6Mf7wRTaDac3bop_type:RegisterAgentActivity
agent:uhCAkIoBOCevXrR9QvtvpWn-HYmU2uXEkcGyYK9z6Mf7wRTaDac3bop_type:StoreEntry
agent:uhCAkIoBOCevXrR9QvtvpWn-HYmU2uXEkcGyYK9z6Mf7wRTaDac3bop_type:StoreRecord
agent:uhCAkJ-hlvvxuLC5AZRPp-qec87Az4sf-EriGpEInLkcXCNThWiX4op_type:RegisterAgentActivity
agent:uhCAkJ-hlvvxuLC5AZRPp-qec87Az4sf-EriGpEInLkcXCNThWiX4op_type:StoreEntry
agent:uhCAkJ-hlvvxuLC5AZRPp-qec87Az4sf-EriGpEInLkcXCNThWiX4op_type:StoreRecord
agent:uhCAkMpoPvVQBKljXm724U-bHRhuZRGYCaCB5UgUbFWQC4X929yocop_type:RegisterAgentActivity
agent:uhCAkMpoPvVQBKljXm724U-bHRhuZRGYCaCB5UgUbFWQC4X929yocop_type:StoreEntry
agent:uhCAkMpoPvVQBKljXm724U-bHRhuZRGYCaCB5UgUbFWQC4X929yocop_type:StoreRecord
agent:uhCAkOFHDBQG9qNvgeUIdAu4dpNFYEiAwI7eB1uyMBK4uAeCWYtylop_type:RegisterAgentActivity
agent:uhCAkOFHDBQG9qNvgeUIdAu4dpNFYEiAwI7eB1uyMBK4uAeCWYtylop_type:StoreEntry
agent:uhCAkOFHDBQG9qNvgeUIdAu4dpNFYEiAwI7eB1uyMBK4uAeCWYtylop_type:StoreRecord
agent:uhCAkPIb_uHPCCMQJAvDoBnHsX7CKG25qpZEKLQS25NA356Jjk18Sop_type:RegisterAgentActivity
agent:uhCAkPIb_uHPCCMQJAvDoBnHsX7CKG25qpZEKLQS25NA356Jjk18Sop_type:StoreEntry
agent:uhCAkPIb_uHPCCMQJAvDoBnHsX7CKG25qpZEKLQS25NA356Jjk18Sop_type:StoreRecord
agent:uhCAkZ71rmHU6cFVNz-Vwqq1PAF0QMFacQNt43oDS9J5IBLntAwp1op_type:RegisterAgentActivity
agent:uhCAkZ71rmHU6cFVNz-Vwqq1PAF0QMFacQNt43oDS9J5IBLntAwp1op_type:StoreEntry
agent:uhCAkZ71rmHU6cFVNz-Vwqq1PAF0QMFacQNt43oDS9J5IBLntAwp1op_type:StoreRecord
agent:uhCAkZ7gsIEnXgx3ycr-TCo8GbQZ9anWIyxycyZmmh8BBwJHV_aGkop_type:RegisterAgentActivity
agent:uhCAkZ7gsIEnXgx3ycr-TCo8GbQZ9anWIyxycyZmmh8BBwJHV_aGkop_type:StoreEntry
agent:uhCAkZ7gsIEnXgx3ycr-TCo8GbQZ9anWIyxycyZmmh8BBwJHV_aGkop_type:StoreRecord
agent:uhCAktmC3Q9mG5XTmdA_Z6BXbv780JoTq1iCoedbxkvvyNQgpwWXrop_type:RegisterAgentActivity
agent:uhCAktmC3Q9mG5XTmdA_Z6BXbv780JoTq1iCoedbxkvvyNQgpwWXrop_type:StoreEntry
agent:uhCAktmC3Q9mG5XTmdA_Z6BXbv780JoTq1iCoedbxkvvyNQgpwWXrop_type:StoreRecord
agent:uhCAkwa40FVbAOC6nwI5pMteoYQOd0Yvt-Igm03iokYD0ZoF_8Axsop_type:RegisterAgentActivity
agent:uhCAkwa40FVbAOC6nwI5pMteoYQOd0Yvt-Igm03iokYD0ZoF_8Axsop_type:StoreEntry
agent:uhCAkwa40FVbAOC6nwI5pMteoYQOd0Yvt-Igm03iokYD0ZoF_8Axsop_type:StoreRecord
agent:uhCAk2doJ063Hi0H8fb0qlHsrcAQ6Ex7UVg0EqdRRczmNSCYHrjLOop_type:RegisterAgentActivity
agent:uhCAk2doJ063Hi0H8fb0qlHsrcAQ6Ex7UVg0EqdRRczmNSCYHrjLOop_type:StoreEntry
agent:uhCAk2doJ063Hi0H8fb0qlHsrcAQ6Ex7UVg0EqdRRczmNSCYHrjLOop_type:StoreRecord
agent:uhCAkIoBOCevXrR9QvtvpWn-HYmU2uXEkcGyYK9z6Mf7wRTaDac3bop_type:RegisterAgentActivity
agent:uhCAkIoBOCevXrR9QvtvpWn-HYmU2uXEkcGyYK9z6Mf7wRTaDac3bop_type:StoreEntry
agent:uhCAkIoBOCevXrR9QvtvpWn-HYmU2uXEkcGyYK9z6Mf7wRTaDac3bop_type:StoreRecord
agent:uhCAkJ-hlvvxuLC5AZRPp-qec87Az4sf-EriGpEInLkcXCNThWiX4op_type:RegisterAgentActivity
agent:uhCAkJ-hlvvxuLC5AZRPp-qec87Az4sf-EriGpEInLkcXCNThWiX4op_type:StoreEntry
agent:uhCAkJ-hlvvxuLC5AZRPp-qec87Az4sf-EriGpEInLkcXCNThWiX4op_type:StoreRecord
agent:uhCAkMpoPvVQBKljXm724U-bHRhuZRGYCaCB5UgUbFWQC4X929yocop_type:RegisterAgentActivity
agent:uhCAkMpoPvVQBKljXm724U-bHRhuZRGYCaCB5UgUbFWQC4X929yocop_type:StoreEntry
agent:uhCAkMpoPvVQBKljXm724U-bHRhuZRGYCaCB5UgUbFWQC4X929yocop_type:StoreRecord
agent:uhCAkOFHDBQG9qNvgeUIdAu4dpNFYEiAwI7eB1uyMBK4uAeCWYtylop_type:RegisterAgentActivity
agent:uhCAkOFHDBQG9qNvgeUIdAu4dpNFYEiAwI7eB1uyMBK4uAeCWYtylop_type:StoreEntry
agent:uhCAkOFHDBQG9qNvgeUIdAu4dpNFYEiAwI7eB1uyMBK4uAeCWYtylop_type:StoreRecord
agent:uhCAkPIb_uHPCCMQJAvDoBnHsX7CKG25qpZEKLQS25NA356Jjk18Sop_type:RegisterAgentActivity
agent:uhCAkPIb_uHPCCMQJAvDoBnHsX7CKG25qpZEKLQS25NA356Jjk18Sop_type:StoreEntry
agent:uhCAkPIb_uHPCCMQJAvDoBnHsX7CKG25qpZEKLQS25NA356Jjk18Sop_type:StoreRecord
agent:uhCAkZ71rmHU6cFVNz-Vwqq1PAF0QMFacQNt43oDS9J5IBLntAwp1op_type:RegisterAgentActivity
agent:uhCAkZ71rmHU6cFVNz-Vwqq1PAF0QMFacQNt43oDS9J5IBLntAwp1op_type:StoreEntry
agent:uhCAkZ71rmHU6cFVNz-Vwqq1PAF0QMFacQNt43oDS9J5IBLntAwp1op_type:StoreRecord
agent:uhCAkZ7gsIEnXgx3ycr-TCo8GbQZ9anWIyxycyZmmh8BBwJHV_aGkop_type:RegisterAgentActivity
agent:uhCAkZ7gsIEnXgx3ycr-TCo8GbQZ9anWIyxycyZmmh8BBwJHV_aGkop_type:StoreEntry
agent:uhCAkZ7gsIEnXgx3ycr-TCo8GbQZ9anWIyxycyZmmh8BBwJHV_aGkop_type:StoreRecord
agent:uhCAktmC3Q9mG5XTmdA_Z6BXbv780JoTq1iCoedbxkvvyNQgpwWXrop_type:RegisterAgentActivity
agent:uhCAktmC3Q9mG5XTmdA_Z6BXbv780JoTq1iCoedbxkvvyNQgpwWXrop_type:StoreEntry
agent:uhCAktmC3Q9mG5XTmdA_Z6BXbv780JoTq1iCoedbxkvvyNQgpwWXrop_type:StoreRecord
agent:uhCAkwa40FVbAOC6nwI5pMteoYQOd0Yvt-Igm03iokYD0ZoF_8Axsop_type:RegisterAgentActivity
agent:uhCAkwa40FVbAOC6nwI5pMteoYQOd0Yvt-Igm03iokYD0ZoF_8Axsop_type:StoreEntry
agent:uhCAkwa40FVbAOC6nwI5pMteoYQOd0Yvt-Igm03iokYD0ZoF_8Axsop_type:StoreRecord
Write/get_agent_activity
A scenario where write peers write entries, while get_agent_activity peers each query a single write agent's activity with get_agent_activity.
Before a target write peer and the requesting get_agent_activity peer are in sync, this will measure the get_agent_activity call performance over a network. Once a write peer reaches sync with a get_agent_activity peer, the write peer will publish their actions and entries, and so the get_agent_activity calls will likely have most of the data they need locally. At that point this measures the database query performance and code paths through host functions.
-
get_agent_activity(1 agent) -
write(1 agent)
action_seqwrite peer's source chain.get_agent_activity_full zome call timingwrite peer's source chain.agent:uhCAkXd2jEveCmMtlBW-9rTd86OApGeb0jK-4zwV-SUoWeWE3w-cq
Write/Query
Creates an entry, then queries the source chain and performs a simple operation on the entries, then repeats.
-
default(1 agent)
Write/Read
Creates an entry and reads it back, then repeats.
-
default(1 agent)
Write validated
Creates an entry, updates it and links the create to the update, then repeats. Each of the three actions is validated by the included hApp.
-
default(1 agent)
Zero-Arc Create and Read
A zero-arc/full-arc mixed scenario with two types of zero-arc nodes -- ones that create data and ones that read data -- as well as full arc nodes to "relay" the data. The scenario has three roles:
zero_write: A zero-arc conductor that just creates entries with a timestamp field. Those entries are linked to a known base hash so thatzero_readnodes can retrieve them.zero_read: A zero-arc conductor that reads the entries created by the zero-arc node(s) and records the time lag between when the entry had been created and when it was first discovered.full: A full-arc conductor that is just here to serve entries to zero arc nodes.
-
full(1 agent) -
zero_read(1 agent) -
zero_write(1 agent)
agent:uhCAk4UvXQJF6ii_AIdfCI9dd3WR_nUanvc_FFLXVaLDtdU6oS36g
agent:uhCAk9spnN-1C0Ws-TVOx6Nx6XDTyLxo55NgL0pEZvAgC05kQq0CZ
agent:uhCAkO7zyc87951tAbYTN4wuYkbHf272_Hw4utQqhejQAvwjEG03M
get_timed_local_entries zome function.agent:uhCAkToAJAUjOemQwAfKwstrvl_CRHzFAekdbQDtX-5ZQ6I8B8XZs
agent:uhCAkdxpbjK48N_kFawjucgN_AEP-CUgaAF2aoFZZeOmLLiKdxOda
agent:uhCAkg1RbgOREFM6VSnoJPyA0HgKZZotqjsWSjbDUlywQ01QbB1-q
agent:uhCAkToAJAUjOemQwAfKwstrvl_CRHzFAekdbQDtX-5ZQ6I8B8XZs
agent:uhCAkdxpbjK48N_kFawjucgN_AEP-CUgaAF2aoFZZeOmLLiKdxOda
agent:uhCAkg1RbgOREFM6VSnoJPyA0HgKZZotqjsWSjbDUlywQ01QbB1-q
Zero-Arc Create Data
zero: A zero-arc conductor that just creates entries with a timestamp field. Those entries are linked to a known base hash so that full-arc nodes can retrieve them.full: A full-arc conductor that reads the entries created by the zero-arc node(s) and records the time lag between when the entry had been created and when it was first discovered.
-
full(1 agent) -
zero(1 agent)
agent:uhCAkKW7d5dKeIqpL_UWqecGtjPa57CRZ0slz44LOUUGQorNIgYui
agent:uhCAkex4-oZ1I0DNHql7tz7698vArdxGu6lPqQ0Vp1DVzuNIW75G7
agent:uhCAkgSl8xWzx7909XJLNrx9sW13KPxXm_uJUNXTw0C4ful3vpCuq
agent:uhCAkgjQKVDidWZCZpiQE6ejBlCsIVqOgihlcYGt4dTpm4xEa4PzN
agent:uhCAkisRO_7p5PAOPxEEVkRJC41g2df3IpwP4V1k81hYipSIjBpR8
get_timed_local_entries zome function.agent:uhCAk0cOmnlH86kfQ90rGJbYER-AWrUeObjlbdChWVJxWtY1EUpLN
agent:uhCAkGedv0E0Yu3F6EXC0vydqN-wT_o0qNP2vk0ueYQw0AJUcc41K
agent:uhCAkTRk_4LU216briDmAMVptm4U6q7sgAliBTOTi9ju_oN9Sxytw
agent:uhCAkzYP3Vw-Evgp50z6bWjRZl4HU13j5kRtepA041GXd_UxTghDv
agent:uhCAk0cOmnlH86kfQ90rGJbYER-AWrUeObjlbdChWVJxWtY1EUpLN
agent:uhCAkGedv0E0Yu3F6EXC0vydqN-wT_o0qNP2vk0ueYQw0AJUcc41K
agent:uhCAkTRk_4LU216briDmAMVptm4U6q7sgAliBTOTi9ju_oN9Sxytw
agent:uhCAkzYP3Vw-Evgp50z6bWjRZl4HU13j5kRtepA041GXd_UxTghDv
Zero-arc Create Data (Validated)
A zero-arc/full-arc mixed scenario where zero-arc nodes create data that gets validated and full-arc nodes read the data. The scenario has two roles:
zero: A zero-arc conductor that just creates entries with a timestamp field. Those entries are linked to a known base hash so that full-arc nodes can retrieve them.full: A full-arc conductor that reads the entries created by the zero-arc node(s) and records the time lag between when the entry had been created and when it was first discovered.
-
full(1 agent) -
zero(1 agent)
agent:uhCAk7PZrGeRkD2LH1s3LnpBBrwmZ8Uvlzse75kGJG09t2t-iGsjd
agent:uhCAkNMvCrWc7xORzhOZmRXWoKxbN-ROLDko1v9OnweAeZc20OhXc
agent:uhCAkZy23-SOV_tYq0NcKTlKeGFyZpOFIZaPO_Su2aTjKSVrbLm_8
agent:uhCAkciLZbSPP-JTle6TnlOR36W6yr727q5lC4jfpCZ2xWFoVcC6I
agent:uhCAkeHzB3xSluWa17lJoTc36a9PO26vtWt4VOCreC71uM2UsV4FY
agent:uhCAkgCVtQ6zX7UfXzjnPFQ_E70WjenExcDjQmTvpAPRVE9HUuH4U
get_timed_local_entries zome function.agent:uhCAk3Ro3BzGQq62bIlBEauxdr9RYPse3wIjIL9-B6txPTT82w7ZZ
agent:uhCAkdNXDx3LAri2xnBlPuEORJl9F9h5IiT4DTqfsJqVgrukWF6uc
agent:uhCAk3Ro3BzGQq62bIlBEauxdr9RYPse3wIjIL9-B6txPTT82w7ZZ
agent:uhCAkdNXDx3LAri2xnBlPuEORJl9F9h5IiT4DTqfsJqVgrukWF6uc
Zome Call, Single Value
Calls a zome function that returns a fixed value. This tests the maximum performance of zome calls when the zome function is not calling into Holochain other otherwise doing any work.
-
default(1 agent)