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)
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)
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:uhCAkIIpkhKYpGNz5VH_E1xZ8d8KDgSSlTqIxmBa-fXtuFK2agD2R
agent:uhCAkILrXTqCIw3DbZxxYYRrpxV5NmEHOf908rzmmMwcRjjBraCCI
agent:uhCAkdEorLOObLwnIMPnZdgdLJPrFmxpqePVK6NgzaYcEfUU9dApI
agent:uhCAkrR59OvzTiF4awXnbv5kMgtH-8plWRKWSYsdn3p_7TGqSECmQ
agent:uhCAkvpzr7X5uGV77iCsjGquiBh2iptvKLGZ-0pJFNgAWUB6jlk-M
agent:uhCAk8-8dFwLt5M6Q0v529Dgy3SjTXzmZJVdrcIUkzQwKWW1KgGRq
agent:uhCAkHNQ9bnz6gxsbHOsgTU8oA3dT7SZ9shAPP3P0tV_JLBlvij6-
agent:uhCAkc8Zmkauu8_A4UyQCiz5qDwJrz6jA8Zbr1GO7lECejUFuWNpX
agent:uhCAkhgoiI2Q_QUR0-jLJllGq67D--Eo6UPs21nmJMoHbfqFjHvRh
agent:uhCAkqo2bZDKbveV-LpGO35gFY4yC3andUV8w8L4A2oFpAuNnqISt
agent:uhCAk8-8dFwLt5M6Q0v529Dgy3SjTXzmZJVdrcIUkzQwKWW1KgGRq
agent:uhCAkHNQ9bnz6gxsbHOsgTU8oA3dT7SZ9shAPP3P0tV_JLBlvij6-
agent:uhCAkc8Zmkauu8_A4UyQCiz5qDwJrz6jA8Zbr1GO7lECejUFuWNpX
agent:uhCAkhgoiI2Q_QUR0-jLJllGq67D--Eo6UPs21nmJMoHbfqFjHvRh
agent:uhCAkqo2bZDKbveV-LpGO35gFY4yC3andUV8w8L4A2oFpAuNnqISt
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:uhCAk5qGxLExY5Jtw4Jb8Xa0yhTsK-qGD4tk-8qBadxz6OeqaJYaB
agent:uhCAkHJyNqh6DGC85Cm-86r_nNVgTE6OzYaC9Iiado90qTtWsN5UW
agent:uhCAkP8xxHYTzPnunIhns6BIHBS67Xtncj9hicL_qWvW6YHneUJz1
agent:uhCAkRWSZukII_ePiK-KpFSjR1hm9PLkXKcPDQNuayRPpN9JYYtO3
get_timed_local_entries zome function.agent:uhCAk2dVRBoSABFiglFa_66Uh-g5ZoQ6xw6atd1le5Azt014nqqhv
agent:uhCAk9A245zlWvGEr0nsIRqKaFQetlTQkFcFtkuWz4Zi4moWk7VX9
agent:uhCAk9K7sSj7hCrZ7AhNfnuR6L-XZLlck1E0-_G-mVPPzfwhJtpSW
agent:uhCAkVvm6xU73UHkWTmibPoFNhk2lNYvhNyV1BQHfsisgmqb8yVaO
agent:uhCAkeaINF5JfLgCN3onM4LPljc8QTZ6VFA2VtU403XwaDps6bOKJ
agent:uhCAktsl9K9-4Qz_ttTSMcKvZYMtLlET3PmoSxplchoqd2qwaFn02
agent:uhCAk2dVRBoSABFiglFa_66Uh-g5ZoQ6xw6atd1le5Azt014nqqhv
agent:uhCAk9A245zlWvGEr0nsIRqKaFQetlTQkFcFtkuWz4Zi4moWk7VX9
agent:uhCAk9K7sSj7hCrZ7AhNfnuR6L-XZLlck1E0-_G-mVPPzfwhJtpSW
agent:uhCAkVvm6xU73UHkWTmibPoFNhk2lNYvhNyV1BQHfsisgmqb8yVaO
agent:uhCAkeaINF5JfLgCN3onM4LPljc8QTZ6VFA2VtU403XwaDps6bOKJ
agent:uhCAktsl9K9-4Qz_ttTSMcKvZYMtLlET3PmoSxplchoqd2qwaFn02
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:uhCAkISRN-rJTfhSBjtDzwfDDLA71ifyjgZ2ohdarV2R3u2ZryGembehaviour:full_write
agent:uhCAkam8a5w77vfh7rtxoLav7SaQIkravOgD25ahz5UJy82td4W5Sbehaviour:zero_write
agent:uhCAkp-8wnqC7dO3YozcgO_q1pk3Rj-qGNQSDdoFf3TJhTC4R-zQ2behaviour:zero_write
agent:uhCAksZZop4o1ET5LmHEfFsvAQXlDThDSlgF-ZXgph4NZd4jYw_q3behaviour: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:uhCAk2ctMC5GLQW243TPV_kVf-RvFCvFvJDgjJUK8-lSFszCMkOYlwrite_agent:uhCAkISRN-rJTfhSBjtDzwfDDLA71ifyjgZ2ohdarV2R3u2ZryGem
get_agent_activity_agent:uhCAk2oygu8juiGc0Zskgwt-DivqJpbkzwQUm9XrVd1EtHWTnDLeIwrite_agent:uhCAksZZop4o1ET5LmHEfFsvAQXlDThDSlgF-ZXgph4NZd4jYw_q3
get_agent_activity_agent:uhCAkDPIR5YrR_jUfEfjVp5nxubHMN4i1Pijy_NI-JX1MM7InYWZFwrite_agent:uhCAkISRN-rJTfhSBjtDzwfDDLA71ifyjgZ2ohdarV2R3u2ZryGem
get_agent_activity_agent:uhCAk_ACoDJK3X6Ku2EPGRDeHPqJln-BL61gT144sNy5tkndo5gnNwrite_agent:uhCAkISRN-rJTfhSBjtDzwfDDLA71ifyjgZ2ohdarV2R3u2ZryGem
get_agent_activity_agent:uhCAkefHMLVmB9Sv3PFkPaU8vLAdMbtMHzVBBHxqEEenBZaLPVOBwwrite_agent:uhCAkISRN-rJTfhSBjtDzwfDDLA71ifyjgZ2ohdarV2R3u2ZryGem
get_agent_activity_agent:uhCAkzYaZ3Hy4U0E6ITrnLj51qaZQjt7fQROMWRDPd3xYEjX4ze_Owrite_agent:uhCAkISRN-rJTfhSBjtDzwfDDLA71ifyjgZ2ohdarV2R3u2ZryGem
get_agent_activity. This is measured per new action in the chain.agent:uhCAk2ctMC5GLQW243TPV_kVf-RvFCvFvJDgjJUK8-lSFszCMkOYl
agent:uhCAk2oygu8juiGc0Zskgwt-DivqJpbkzwQUm9XrVd1EtHWTnDLeI
agent:uhCAkDPIR5YrR_jUfEfjVp5nxubHMN4i1Pijy_NI-JX1MM7InYWZF
agent:uhCAk_ACoDJK3X6Ku2EPGRDeHPqJln-BL61gT144sNy5tkndo5gnN
agent:uhCAkefHMLVmB9Sv3PFkPaU8vLAdMbtMHzVBBHxqEEenBZaLPVOBw
agent:uhCAkzYaZ3Hy4U0E6ITrnLj51qaZQjt7fQROMWRDPd3xYEjX4ze_O
agent:uhCAk2ctMC5GLQW243TPV_kVf-RvFCvFvJDgjJUK8-lSFszCMkOYl
agent:uhCAk2oygu8juiGc0Zskgwt-DivqJpbkzwQUm9XrVd1EtHWTnDLeI
agent:uhCAkDPIR5YrR_jUfEfjVp5nxubHMN4i1Pijy_NI-JX1MM7InYWZF
agent:uhCAk_ACoDJK3X6Ku2EPGRDeHPqJln-BL61gT144sNy5tkndo5gnN
agent:uhCAkefHMLVmB9Sv3PFkPaU8vLAdMbtMHzVBBHxqEEenBZaLPVOBw
agent:uhCAkzYaZ3Hy4U0E6ITrnLj51qaZQjt7fQROMWRDPd3xYEjX4ze_O
get_agent_activity_full zome call timingget_agent_activity_full zome call that queries a writer's chain.agent:uhCAk2ctMC5GLQW243TPV_kVf-RvFCvFvJDgjJUK8-lSFszCMkOYl
agent:uhCAk2oygu8juiGc0Zskgwt-DivqJpbkzwQUm9XrVd1EtHWTnDLeI
agent:uhCAkDPIR5YrR_jUfEfjVp5nxubHMN4i1Pijy_NI-JX1MM7InYWZF
agent:uhCAk_ACoDJK3X6Ku2EPGRDeHPqJln-BL61gT144sNy5tkndo5gnN
agent:uhCAkefHMLVmB9Sv3PFkPaU8vLAdMbtMHzVBBHxqEEenBZaLPVOBw
agent:uhCAkzYaZ3Hy4U0E6ITrnLj51qaZQjt7fQROMWRDPd3xYEjX4ze_O
get_agent_activity.agent:uhCAk2ctMC5GLQW243TPV_kVf-RvFCvFvJDgjJUK8-lSFszCMkOYl
agent:uhCAk2oygu8juiGc0Zskgwt-DivqJpbkzwQUm9XrVd1EtHWTnDLeI
agent:uhCAkDPIR5YrR_jUfEfjVp5nxubHMN4i1Pijy_NI-JX1MM7InYWZF
agent:uhCAk_ACoDJK3X6Ku2EPGRDeHPqJln-BL61gT144sNy5tkndo5gnN
agent:uhCAkefHMLVmB9Sv3PFkPaU8vLAdMbtMHzVBBHxqEEenBZaLPVOBw
agent:uhCAkzYaZ3Hy4U0E6ITrnLj51qaZQjt7fQROMWRDPd3xYEjX4ze_O
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:uhCAkTlHVEsbLQZJs0pR-5yR5n54x3hhRI-dKxM4iukTKt0U2ezUL
must_get_agent_activity_agent:uhCAkg3WGVP3R_UUKm8Uaa1tN_Se1wWyl2DUdJrI1Z3uYHy5Qj7MK
must_get_agent_activity_agent:uhCAkjQ8oDqC0RUuIwWkBJiEx_Q6OI4Mp3YDtYhDNu-KggM5fEsrD
must_get_agent_activity_agent:uhCAkknWoX9yCCp0TJDWcoK686PCNwjOIeSYi0dW4Z5EQQ9wqVO4w
must_get_agent_activity_agent:uhCAkvEEZRWtzMU0GprPj4-0PtOvBwfcCa_pBhntJW1SoPj08nA-g
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:uhCAkTlHVEsbLQZJs0pR-5yR5n54x3hhRI-dKxM4iukTKt0U2ezUL
must_get_agent_activity_agent:uhCAkg3WGVP3R_UUKm8Uaa1tN_Se1wWyl2DUdJrI1Z3uYHy5Qj7MK
must_get_agent_activity_agent:uhCAkjQ8oDqC0RUuIwWkBJiEx_Q6OI4Mp3YDtYhDNu-KggM5fEsrD
must_get_agent_activity_agent:uhCAkknWoX9yCCp0TJDWcoK686PCNwjOIeSYi0dW4Z5EQQ9wqVO4w
must_get_agent_activity_agent:uhCAkvEEZRWtzMU0GprPj4-0PtOvBwfcCa_pBhntJW1SoPj08nA-g
create_validated_sample_entry zome call timingwrite agent's source chain.agent:uhCAkTlHVEsbLQZJs0pR-5yR5n54x3hhRI-dKxM4iukTKt0U2ezUL
agent:uhCAkg3WGVP3R_UUKm8Uaa1tN_Se1wWyl2DUdJrI1Z3uYHy5Qj7MK
agent:uhCAkjQ8oDqC0RUuIwWkBJiEx_Q6OI4Mp3YDtYhDNu-KggM5fEsrD
agent:uhCAkknWoX9yCCp0TJDWcoK686PCNwjOIeSYi0dW4Z5EQQ9wqVO4w
agent:uhCAkvEEZRWtzMU0GprPj4-0PtOvBwfcCa_pBhntJW1SoPj08nA-g
must_get_agent_activity calls.agent:uhCAkTlHVEsbLQZJs0pR-5yR5n54x3hhRI-dKxM4iukTKt0U2ezUL
agent:uhCAkg3WGVP3R_UUKm8Uaa1tN_Se1wWyl2DUdJrI1Z3uYHy5Qj7MK
agent:uhCAkjQ8oDqC0RUuIwWkBJiEx_Q6OI4Mp3YDtYhDNu-KggM5fEsrD
agent:uhCAkknWoX9yCCp0TJDWcoK686PCNwjOIeSYi0dW4Z5EQQ9wqVO4w
agent:uhCAkvEEZRWtzMU0GprPj4-0PtOvBwfcCa_pBhntJW1SoPj08nA-g
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:uhCAkDXo0GL63swOZ8vJFX_BLK-P9WtlD6kEX3FM1UIYlMkwa-iVO
agent:uhCAkGxglP0WMDXyM9EVdNaWz8IUPXmAyGwM64A5XGifyBiT_D2MR
agent:uhCAkDXo0GL63swOZ8vJFX_BLK-P9WtlD6kEX3FM1UIYlMkwa-iVO
agent:uhCAkGxglP0WMDXyM9EVdNaWz8IUPXmAyGwM64A5XGifyBiT_D2MR
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)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:uhCAkBV_FN7EWz1Q-TGuY8XWd-YcR_jpYf9F1t_kdzO7Xh3iRWCxRop_type:RegisterAgentActivity
agent:uhCAkBV_FN7EWz1Q-TGuY8XWd-YcR_jpYf9F1t_kdzO7Xh3iRWCxRop_type:StoreEntry
agent:uhCAkBV_FN7EWz1Q-TGuY8XWd-YcR_jpYf9F1t_kdzO7Xh3iRWCxRop_type:StoreRecord
agent:uhCAkE60bbRZslPXDxX3onrNJ8V7WvyX3WNNjJ8su95ZJyq7fTKSCop_type:RegisterAgentActivity
agent:uhCAkE60bbRZslPXDxX3onrNJ8V7WvyX3WNNjJ8su95ZJyq7fTKSCop_type:StoreEntry
agent:uhCAkE60bbRZslPXDxX3onrNJ8V7WvyX3WNNjJ8su95ZJyq7fTKSCop_type:StoreRecord
agent:uhCAkFGYFxD3CJRslMv-KxfrKSmSOJYNPoeHZhXuo8qCPIV9hhP8Xop_type:RegisterAgentActivity
agent:uhCAkFGYFxD3CJRslMv-KxfrKSmSOJYNPoeHZhXuo8qCPIV9hhP8Xop_type:StoreEntry
agent:uhCAkFGYFxD3CJRslMv-KxfrKSmSOJYNPoeHZhXuo8qCPIV9hhP8Xop_type:StoreRecord
agent:uhCAkFR30eiR10cuTPP0UAKckik-a5buaRHVCFfDfbRrPklzzG-soop_type:RegisterAgentActivity
agent:uhCAkFR30eiR10cuTPP0UAKckik-a5buaRHVCFfDfbRrPklzzG-soop_type:StoreEntry
agent:uhCAkFR30eiR10cuTPP0UAKckik-a5buaRHVCFfDfbRrPklzzG-soop_type:StoreRecord
agent:uhCAkKb7zd0D7DIhhBfyLNkFBI-8hudP4o9ZzgU4IgY4At5CBQe6Jop_type:RegisterAgentActivity
agent:uhCAkKb7zd0D7DIhhBfyLNkFBI-8hudP4o9ZzgU4IgY4At5CBQe6Jop_type:StoreEntry
agent:uhCAkKb7zd0D7DIhhBfyLNkFBI-8hudP4o9ZzgU4IgY4At5CBQe6Jop_type:StoreRecord
agent:uhCAkWF7fMfuSNbKrzXAexXJw5qb3LKe9iBqWl7isGYzPs22rExS6op_type:RegisterAgentActivity
agent:uhCAkWF7fMfuSNbKrzXAexXJw5qb3LKe9iBqWl7isGYzPs22rExS6op_type:StoreEntry
agent:uhCAkWF7fMfuSNbKrzXAexXJw5qb3LKe9iBqWl7isGYzPs22rExS6op_type:StoreRecord
agent:uhCAkWygAz_vHWtvPqYOOQe6vLffUt8AKB24IS-rp56z3ob4w5Pphop_type:RegisterAgentActivity
agent:uhCAkWygAz_vHWtvPqYOOQe6vLffUt8AKB24IS-rp56z3ob4w5Pphop_type:StoreEntry
agent:uhCAkWygAz_vHWtvPqYOOQe6vLffUt8AKB24IS-rp56z3ob4w5Pphop_type:StoreRecord
agent:uhCAkh1n_M-TS8fimZv8nMn2T-aSozKmI1r4LfsXfBqd93dPfSwVyop_type:RegisterAgentActivity
agent:uhCAkh1n_M-TS8fimZv8nMn2T-aSozKmI1r4LfsXfBqd93dPfSwVyop_type:StoreEntry
agent:uhCAkh1n_M-TS8fimZv8nMn2T-aSozKmI1r4LfsXfBqd93dPfSwVyop_type:StoreRecord
agent:uhCAkilDeCXTRoJC7PSfZC7wb7vUoXrHR6uztmt6nAdACC1nK5_c2op_type:RegisterAgentActivity
agent:uhCAkilDeCXTRoJC7PSfZC7wb7vUoXrHR6uztmt6nAdACC1nK5_c2op_type:StoreEntry
agent:uhCAkilDeCXTRoJC7PSfZC7wb7vUoXrHR6uztmt6nAdACC1nK5_c2op_type:StoreRecord
agent:uhCAkpM7X0UPSer54szRgvV50_4buZI9EhbvrwJZnJkgzoj6LU_Odop_type:RegisterAgentActivity
agent:uhCAkpM7X0UPSer54szRgvV50_4buZI9EhbvrwJZnJkgzoj6LU_Odop_type:StoreEntry
agent:uhCAkpM7X0UPSer54szRgvV50_4buZI9EhbvrwJZnJkgzoj6LU_Odop_type:StoreRecord
agent:uhCAkBV_FN7EWz1Q-TGuY8XWd-YcR_jpYf9F1t_kdzO7Xh3iRWCxRop_type:RegisterAgentActivity
agent:uhCAkBV_FN7EWz1Q-TGuY8XWd-YcR_jpYf9F1t_kdzO7Xh3iRWCxRop_type:StoreEntry
agent:uhCAkBV_FN7EWz1Q-TGuY8XWd-YcR_jpYf9F1t_kdzO7Xh3iRWCxRop_type:StoreRecord
agent:uhCAkE60bbRZslPXDxX3onrNJ8V7WvyX3WNNjJ8su95ZJyq7fTKSCop_type:RegisterAgentActivity
agent:uhCAkE60bbRZslPXDxX3onrNJ8V7WvyX3WNNjJ8su95ZJyq7fTKSCop_type:StoreEntry
agent:uhCAkE60bbRZslPXDxX3onrNJ8V7WvyX3WNNjJ8su95ZJyq7fTKSCop_type:StoreRecord
agent:uhCAkFGYFxD3CJRslMv-KxfrKSmSOJYNPoeHZhXuo8qCPIV9hhP8Xop_type:RegisterAgentActivity
agent:uhCAkFGYFxD3CJRslMv-KxfrKSmSOJYNPoeHZhXuo8qCPIV9hhP8Xop_type:StoreEntry
agent:uhCAkFGYFxD3CJRslMv-KxfrKSmSOJYNPoeHZhXuo8qCPIV9hhP8Xop_type:StoreRecord
agent:uhCAkFR30eiR10cuTPP0UAKckik-a5buaRHVCFfDfbRrPklzzG-soop_type:RegisterAgentActivity
agent:uhCAkFR30eiR10cuTPP0UAKckik-a5buaRHVCFfDfbRrPklzzG-soop_type:StoreEntry
agent:uhCAkFR30eiR10cuTPP0UAKckik-a5buaRHVCFfDfbRrPklzzG-soop_type:StoreRecord
agent:uhCAkKb7zd0D7DIhhBfyLNkFBI-8hudP4o9ZzgU4IgY4At5CBQe6Jop_type:RegisterAgentActivity
agent:uhCAkKb7zd0D7DIhhBfyLNkFBI-8hudP4o9ZzgU4IgY4At5CBQe6Jop_type:StoreEntry
agent:uhCAkKb7zd0D7DIhhBfyLNkFBI-8hudP4o9ZzgU4IgY4At5CBQe6Jop_type:StoreRecord
agent:uhCAkWF7fMfuSNbKrzXAexXJw5qb3LKe9iBqWl7isGYzPs22rExS6op_type:RegisterAgentActivity
agent:uhCAkWF7fMfuSNbKrzXAexXJw5qb3LKe9iBqWl7isGYzPs22rExS6op_type:StoreEntry
agent:uhCAkWF7fMfuSNbKrzXAexXJw5qb3LKe9iBqWl7isGYzPs22rExS6op_type:StoreRecord
agent:uhCAkWygAz_vHWtvPqYOOQe6vLffUt8AKB24IS-rp56z3ob4w5Pphop_type:RegisterAgentActivity
agent:uhCAkWygAz_vHWtvPqYOOQe6vLffUt8AKB24IS-rp56z3ob4w5Pphop_type:StoreEntry
agent:uhCAkWygAz_vHWtvPqYOOQe6vLffUt8AKB24IS-rp56z3ob4w5Pphop_type:StoreRecord
agent:uhCAkh1n_M-TS8fimZv8nMn2T-aSozKmI1r4LfsXfBqd93dPfSwVyop_type:RegisterAgentActivity
agent:uhCAkh1n_M-TS8fimZv8nMn2T-aSozKmI1r4LfsXfBqd93dPfSwVyop_type:StoreEntry
agent:uhCAkh1n_M-TS8fimZv8nMn2T-aSozKmI1r4LfsXfBqd93dPfSwVyop_type:StoreRecord
agent:uhCAkilDeCXTRoJC7PSfZC7wb7vUoXrHR6uztmt6nAdACC1nK5_c2op_type:RegisterAgentActivity
agent:uhCAkilDeCXTRoJC7PSfZC7wb7vUoXrHR6uztmt6nAdACC1nK5_c2op_type:StoreEntry
agent:uhCAkilDeCXTRoJC7PSfZC7wb7vUoXrHR6uztmt6nAdACC1nK5_c2op_type:StoreRecord
agent:uhCAkpM7X0UPSer54szRgvV50_4buZI9EhbvrwJZnJkgzoj6LU_Odop_type:RegisterAgentActivity
agent:uhCAkpM7X0UPSer54szRgvV50_4buZI9EhbvrwJZnJkgzoj6LU_Odop_type:StoreEntry
agent:uhCAkpM7X0UPSer54szRgvV50_4buZI9EhbvrwJZnJkgzoj6LU_Odop_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:uhCAkAtQtjhgQG2T_blk1vhHsEdXEhFl9_FIa3u1TFUAKrGXmd95m
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)
Write Validated 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 Mixed-Arc must_get_agent_activity, but all agents are full-arc.
-
must_get_agent_activity(1 agent) -
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:uhCAk1abut41HFNsL2VUtRCuOzt9a7YeTEk3DmrroTBdTjfarfVRh
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:uhCAk1abut41HFNsL2VUtRCuOzt9a7YeTEk3DmrroTBdTjfarfVRh
create_validated_sample_entry zome call timingwrite agent's source chain.agent:uhCAk1abut41HFNsL2VUtRCuOzt9a7YeTEk3DmrroTBdTjfarfVRh
must_get_agent_activity calls.agent:uhCAk1abut41HFNsL2VUtRCuOzt9a7YeTEk3DmrroTBdTjfarfVRh
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:uhCAk5oU2PHLxbMgiZ4biBbujQ4h97rtj2MXfP6rCUA57oqY9hKhG
agent:uhCAkDI6PEk-I2fai_upamM3cIJ4_FiwzTR_jO5B_n46S9VSsAwcs
agent:uhCAkL_6Ew9gNdnQxRjnkab951TaxLSjQoWfToLG6uZZU015pne62
agent:uhCAkXWyl2nGCpZRGjswL4kh1dyqVqBT2_givMKWyGzEAhPhWlXce
agent:uhCAkf1gEOuY3bjMHH0V8NpeyohB5C3MwtUvT73n_8IMTiMDTxJAs
agent:uhCAkfR6jByFtTrPyWmsVjDCVAC9mYrVLVFSvoA_-9bCIQrqrB5n2
get_timed_local_entries zome function.agent:uhCAk-ftmHyYVd45ElbiXFClyqZHjk40Omw1kHnQzbUlKaQVi29HJ
agent:uhCAkHiCasrsz1Ia61HlglO_1klcMbbymmmfnHRNrsmx3C4jEjj4b
agent:uhCAkI5cugyo-g_q9utx7PzH7u9t-G-xfNkvjVt3MIZfckbA10ZBo
agent:uhCAkQTWo_1NbJ_AdsTOmjI7Rl3frx6Qyz2Igdr4nF3W16doqUx5S
agent:uhCAk-ftmHyYVd45ElbiXFClyqZHjk40Omw1kHnQzbUlKaQVi29HJ
agent:uhCAkHiCasrsz1Ia61HlglO_1klcMbbymmmfnHRNrsmx3C4jEjj4b
agent:uhCAkI5cugyo-g_q9utx7PzH7u9t-G-xfNkvjVt3MIZfckbA10ZBo
agent:uhCAkQTWo_1NbJ_AdsTOmjI7Rl3frx6Qyz2Igdr4nF3W16doqUx5S
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:uhCAkDIT5ktYISvJwVovtp-2mMctuPtwGZp3DOiGmAonk7IdPBgqX
agent:uhCAkPeTxgBbUeL8HpeUMONdeSRK-89Lo2dMuGjlSrvOvKHm7Yz_6
agent:uhCAkY_oPREa5suWqwhOo4UKFrovizUP8O4qGjkWAiXPqBhokySGr
agent:uhCAklbHx3zjFVnrnf4VxW6udZsCagAniusOy4ZUUDfGwSY9zwEW2
agent:uhCAkszi6cqXOmq8b0R6417n4Mw_X79GY9UNC1aukHoBqPAjQA21D
agent:uhCAkw_LPn2Fb6r3s1I0N3AA0_4Gf2QxAL3xfMdMFskgFuoeuF8Lj
get_timed_local_entries zome function.agent:uhCAk0gXb2viYZUWtZmsnMbT1NSWPHWHQBtka4_s0ZBPRulf9ow25
agent:uhCAkIeBDUDgJ1y8pl6iyL9Z-8qn5t7gt4gswrYzzbdtumURFg0ds
agent:uhCAkOMUXzrloUMmiI0lbTBwWX8-GAtO9Hso2sDfIZm3KUobEh0Lr
agent:uhCAkb_Z_WWZn-J_QOQItLUBMS-iRJqDt785v2qZizfM4AX7NnXtJ
agent:uhCAk0gXb2viYZUWtZmsnMbT1NSWPHWHQBtka4_s0ZBPRulf9ow25
agent:uhCAkIeBDUDgJ1y8pl6iyL9Z-8qn5t7gt4gswrYzzbdtumURFg0ds
agent:uhCAkOMUXzrloUMmiI0lbTBwWX8-GAtO9Hso2sDfIZm3KUobEh0Lr
agent:uhCAkb_Z_WWZn-J_QOQItLUBMS-iRJqDt785v2qZizfM4AX7NnXtJ
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)