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:uhCAk-r1Rk4EQw-vfGISRz11wOzpd4YaMRPc8IHUnvi5GFMmlH9gQ
agent:uhCAkHXhN0VqSMBbeXTzoUk49xUhAkw4BbubEImYlmDVNK4RtD3Cb
agent:uhCAkSicCTotvH_rEYuou0k8lbQhc2scZKaHUx6VBbmcQM2XO146a
agent:uhCAkb6WlHJS1Ee3uZxZCo0ijGY1i6R1OiKUNggytUomtAWjr3UMS
agent:uhCAkg1_ZumtSFvu3UjdvAF6V7GbGk-yXTluUm4_RtGxsGKeMx2xs
agent:uhCAkFx5SoAuPYqGZKI34q2zvvTCsd5Pb6yqKlMPhhLx4r4-aV6ua
agent:uhCAkOU5JJKieL3ODq4PpwqYAFhHbWfWpldpo3nmfESSad1D4ylP1
agent:uhCAkYDMv1MSP2il1nubn4_9FEhGdzxNEiZog0ImB2mzk9i54kXNA
agent:uhCAknx3cLHvOU1aALv2lw7rZPDdB-JSJxBPgHvPdVcjMbNOnsqGe
agent:uhCAktFS3zdKWV-hSmqWuRbC58V3uGCvx8uBHqMoL4z0Gqaaj3PXL
agent:uhCAkFx5SoAuPYqGZKI34q2zvvTCsd5Pb6yqKlMPhhLx4r4-aV6ua
agent:uhCAkOU5JJKieL3ODq4PpwqYAFhHbWfWpldpo3nmfESSad1D4ylP1
agent:uhCAkYDMv1MSP2il1nubn4_9FEhGdzxNEiZog0ImB2mzk9i54kXNA
agent:uhCAknx3cLHvOU1aALv2lw7rZPDdB-JSJxBPgHvPdVcjMbNOnsqGe
agent:uhCAktFS3zdKWV-hSmqWuRbC58V3uGCvx8uBHqMoL4z0Gqaaj3PXL
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:uhCAkBUKx2lEN5b9aHdc8-TlIFbenfMvMM5Y3VJ6dpRavJ3IaE6PG
agent:uhCAkCdRMmvpuoczdvRTzEeUvCiOxGb9Cakn1AAcaMnxFG3CHf5kq
agent:uhCAkPW4i2Tio77iFQDcX0sjWef2N16-ZTQq7sR3nlDMNV24jfoN4
agent:uhCAkURi0Bkl7tPWo1sH2cx4PsHWR3qjuY4YD1DsUqgiCrjTl_gzj
get_timed_local_entries zome function.agent:uhCAk3AZSoEoxTkDqBDP-QPDhQRtCXdu4CM-z_A7yhJb5KOX-uC0H
agent:uhCAk9VTrthqb0RFc4uF0AlNzInTNNJK3SOk9GWRYrgaHWx2jMJM-
agent:uhCAkFaIVns2Z0SMwji7iYgnGL6_ArUQ6eQsO0pslXKyoh-nbxy-H
agent:uhCAkH9rHSIrsPEVqkumO5V5HGdaCTx0aX4fbpNkcbL3zE_w3L79X
agent:uhCAkciUDBbr5DBrg-zzfAAoB2FvaKdJyhGztxYuTXwQu4vTnd_Lz
agent:uhCAkux_OG8RTd2GikTGMzKb7vLaPtsXIzYCn9NSObTwi-zIkODra
agent:uhCAk3AZSoEoxTkDqBDP-QPDhQRtCXdu4CM-z_A7yhJb5KOX-uC0H
agent:uhCAk9VTrthqb0RFc4uF0AlNzInTNNJK3SOk9GWRYrgaHWx2jMJM-
agent:uhCAkFaIVns2Z0SMwji7iYgnGL6_ArUQ6eQsO0pslXKyoh-nbxy-H
agent:uhCAkH9rHSIrsPEVqkumO5V5HGdaCTx0aX4fbpNkcbL3zE_w3L79X
agent:uhCAkciUDBbr5DBrg-zzfAAoB2FvaKdJyhGztxYuTXwQu4vTnd_Lz
agent:uhCAkux_OG8RTd2GikTGMzKb7vLaPtsXIzYCn9NSObTwi-zIkODra
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:uhCAkA4m7v4rQOBqDhSo6cOt97CLkAOnpEJBMfD_bxZIo46eDqz7Qbehaviour:zero_write
agent:uhCAkLkgYxBtIV7EuIVZHX1-V6JeXQVMXLPsvbhqjkzW3hAw2y201behaviour:zero_write
agent:uhCAkcFDt9cDYwsMjMJ0JVB3ec8shymn9u4oQKUmlrzeFd5LwaEvTbehaviour:full_write
agent:uhCAkvODa5kGF_jQf1r1djepUL0ewdhh6ngwRL6Hc1R57oqu557WQbehaviour: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:uhCAkMhn_JaGnA2Vya-pPjEackurK-Xx-6AuTskATPp_t2CkDs8Xfwrite_agent:uhCAkvODa5kGF_jQf1r1djepUL0ewdhh6ngwRL6Hc1R57oqu557WQ
get_agent_activity_agent:uhCAk_FYkADjYALcmveYfWrkgS6a_iw4sL1in_NIpOCITqDOk_Xnlwrite_agent:uhCAkvODa5kGF_jQf1r1djepUL0ewdhh6ngwRL6Hc1R57oqu557WQ
get_agent_activity_agent:uhCAkg-SfMhL8sxbIoLdObT8GwIxZxmvNjkOtyu19hmgr1qxpf5lrwrite_agent:uhCAkvODa5kGF_jQf1r1djepUL0ewdhh6ngwRL6Hc1R57oqu557WQ
get_agent_activity_agent:uhCAknjdiN4Ar7CUd-Lc3x0V_WPWoVZiwBQcsy4Vn07B_8sHUUwgawrite_agent:uhCAkvODa5kGF_jQf1r1djepUL0ewdhh6ngwRL6Hc1R57oqu557WQ
get_agent_activity_agent:uhCAkx_gRsINfuBZtUQWwINObjyG1JEnlxqM0D8huxFv4eAsmZ_Iqwrite_agent:uhCAkvODa5kGF_jQf1r1djepUL0ewdhh6ngwRL6Hc1R57oqu557WQ
get_agent_activity_agent:uhCAkyu8Z2ZJnCDbVLJwSmj5njWf8WdSV_xJHvYJHbtZ6W6wdzS3zwrite_agent:uhCAkcFDt9cDYwsMjMJ0JVB3ec8shymn9u4oQKUmlrzeFd5LwaEvT
get_agent_activity. This is measured per new action in the chain.agent:uhCAkMhn_JaGnA2Vya-pPjEackurK-Xx-6AuTskATPp_t2CkDs8Xf
agent:uhCAk_FYkADjYALcmveYfWrkgS6a_iw4sL1in_NIpOCITqDOk_Xnl
agent:uhCAkg-SfMhL8sxbIoLdObT8GwIxZxmvNjkOtyu19hmgr1qxpf5lr
agent:uhCAknjdiN4Ar7CUd-Lc3x0V_WPWoVZiwBQcsy4Vn07B_8sHUUwga
agent:uhCAkx_gRsINfuBZtUQWwINObjyG1JEnlxqM0D8huxFv4eAsmZ_Iq
agent:uhCAkyu8Z2ZJnCDbVLJwSmj5njWf8WdSV_xJHvYJHbtZ6W6wdzS3z
agent:uhCAkMhn_JaGnA2Vya-pPjEackurK-Xx-6AuTskATPp_t2CkDs8Xf
agent:uhCAk_FYkADjYALcmveYfWrkgS6a_iw4sL1in_NIpOCITqDOk_Xnl
agent:uhCAkg-SfMhL8sxbIoLdObT8GwIxZxmvNjkOtyu19hmgr1qxpf5lr
agent:uhCAknjdiN4Ar7CUd-Lc3x0V_WPWoVZiwBQcsy4Vn07B_8sHUUwga
agent:uhCAkx_gRsINfuBZtUQWwINObjyG1JEnlxqM0D8huxFv4eAsmZ_Iq
agent:uhCAkyu8Z2ZJnCDbVLJwSmj5njWf8WdSV_xJHvYJHbtZ6W6wdzS3z
get_agent_activity_full zome call timingget_agent_activity_full zome call that queries a writer's chain.agent:uhCAkMhn_JaGnA2Vya-pPjEackurK-Xx-6AuTskATPp_t2CkDs8Xf
agent:uhCAk_FYkADjYALcmveYfWrkgS6a_iw4sL1in_NIpOCITqDOk_Xnl
agent:uhCAkg-SfMhL8sxbIoLdObT8GwIxZxmvNjkOtyu19hmgr1qxpf5lr
agent:uhCAknjdiN4Ar7CUd-Lc3x0V_WPWoVZiwBQcsy4Vn07B_8sHUUwga
agent:uhCAkx_gRsINfuBZtUQWwINObjyG1JEnlxqM0D8huxFv4eAsmZ_Iq
agent:uhCAkyu8Z2ZJnCDbVLJwSmj5njWf8WdSV_xJHvYJHbtZ6W6wdzS3z
get_agent_activity.agent:uhCAkMhn_JaGnA2Vya-pPjEackurK-Xx-6AuTskATPp_t2CkDs8Xf
agent:uhCAk_FYkADjYALcmveYfWrkgS6a_iw4sL1in_NIpOCITqDOk_Xnl
agent:uhCAkg-SfMhL8sxbIoLdObT8GwIxZxmvNjkOtyu19hmgr1qxpf5lr
agent:uhCAknjdiN4Ar7CUd-Lc3x0V_WPWoVZiwBQcsy4Vn07B_8sHUUwga
agent:uhCAkx_gRsINfuBZtUQWwINObjyG1JEnlxqM0D8huxFv4eAsmZ_Iq
agent:uhCAkyu8Z2ZJnCDbVLJwSmj5njWf8WdSV_xJHvYJHbtZ6W6wdzS3z
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:uhCAk36sYJSqavTfu08FSAwsCL254FkFPVfNWAJmOleNxqS3Po7JA
must_get_agent_activity_agent:uhCAkB-E9W_o_uraiANBk2xEDITWgcZ1HnG5aGW_J7T2OhlkTyX4F
must_get_agent_activity_agent:uhCAkJArjZ5Glu-7yJ8kmoRFVM21hvUI7qn_cyGWPv8cmBaYnL5VW
must_get_agent_activity_agent:uhCAk_2UuANhsmNdJxUZE6v6dC8m9-u3Q74hbM1kM9xiazU9jEYY4
must_get_agent_activity_agent:uhCAkisMP5GMM90vaHZqYGn2Z9iiMRJ64x4ajcQskkEKAtFIK-gB5
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:uhCAk36sYJSqavTfu08FSAwsCL254FkFPVfNWAJmOleNxqS3Po7JA
must_get_agent_activity_agent:uhCAkB-E9W_o_uraiANBk2xEDITWgcZ1HnG5aGW_J7T2OhlkTyX4F
must_get_agent_activity_agent:uhCAkJArjZ5Glu-7yJ8kmoRFVM21hvUI7qn_cyGWPv8cmBaYnL5VW
must_get_agent_activity_agent:uhCAk_2UuANhsmNdJxUZE6v6dC8m9-u3Q74hbM1kM9xiazU9jEYY4
must_get_agent_activity_agent:uhCAkisMP5GMM90vaHZqYGn2Z9iiMRJ64x4ajcQskkEKAtFIK-gB5
create_validated_sample_entry zome call timingwrite agent's source chain.agent:uhCAk36sYJSqavTfu08FSAwsCL254FkFPVfNWAJmOleNxqS3Po7JA
agent:uhCAkB-E9W_o_uraiANBk2xEDITWgcZ1HnG5aGW_J7T2OhlkTyX4F
agent:uhCAkJArjZ5Glu-7yJ8kmoRFVM21hvUI7qn_cyGWPv8cmBaYnL5VW
agent:uhCAk_2UuANhsmNdJxUZE6v6dC8m9-u3Q74hbM1kM9xiazU9jEYY4
agent:uhCAkisMP5GMM90vaHZqYGn2Z9iiMRJ64x4ajcQskkEKAtFIK-gB5
must_get_agent_activity calls.agent:uhCAk36sYJSqavTfu08FSAwsCL254FkFPVfNWAJmOleNxqS3Po7JA
agent:uhCAkB-E9W_o_uraiANBk2xEDITWgcZ1HnG5aGW_J7T2OhlkTyX4F
agent:uhCAkJArjZ5Glu-7yJ8kmoRFVM21hvUI7qn_cyGWPv8cmBaYnL5VW
agent:uhCAk_2UuANhsmNdJxUZE6v6dC8m9-u3Q74hbM1kM9xiazU9jEYY4
agent:uhCAkisMP5GMM90vaHZqYGn2Z9iiMRJ64x4ajcQskkEKAtFIK-gB5
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:uhCAkBm0CH8W0oXrrXM5lXkOJBn2b0kuqJtukHW8B_pmxIkcR6bCN
agent:uhCAkd4pCymO6zbad1sgEfzI53c0G3-XMFXjbo0bEq1nuUYCkqhea
agent:uhCAkBm0CH8W0oXrrXM5lXkOJBn2b0kuqJtukHW8B_pmxIkcR6bCN
agent:uhCAkd4pCymO6zbad1sgEfzI53c0G3-XMFXjbo0bEq1nuUYCkqhea
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:uhCAk6CnwArhcg3CZdzhLTGx4AaxdOLxbVibR7s6F_8rIhmGF0Uhbop_type:RegisterAgentActivity
agent:uhCAk6CnwArhcg3CZdzhLTGx4AaxdOLxbVibR7s6F_8rIhmGF0Uhbop_type:StoreEntry
agent:uhCAk6CnwArhcg3CZdzhLTGx4AaxdOLxbVibR7s6F_8rIhmGF0Uhbop_type:StoreRecord
agent:uhCAk7DXDBkq6AYtau3RiMYKtVccOvgnLB0hMWpngL8h0QrYwuobxop_type:RegisterAgentActivity
agent:uhCAk7DXDBkq6AYtau3RiMYKtVccOvgnLB0hMWpngL8h0QrYwuobxop_type:StoreEntry
agent:uhCAk7DXDBkq6AYtau3RiMYKtVccOvgnLB0hMWpngL8h0QrYwuobxop_type:StoreRecord
agent:uhCAk7rsrvILqBhmD6X-LSqprVDTOiXwUDHNonzc-bIYa2qt8Kqv6op_type:RegisterAgentActivity
agent:uhCAk7rsrvILqBhmD6X-LSqprVDTOiXwUDHNonzc-bIYa2qt8Kqv6op_type:StoreEntry
agent:uhCAk7rsrvILqBhmD6X-LSqprVDTOiXwUDHNonzc-bIYa2qt8Kqv6op_type:StoreRecord
agent:uhCAk9QvZxxBt6qvFCwhXKLN9v2MKxfTJyexVtic5NsAhS7c-Dipjop_type:RegisterAgentActivity
agent:uhCAk9QvZxxBt6qvFCwhXKLN9v2MKxfTJyexVtic5NsAhS7c-Dipjop_type:StoreEntry
agent:uhCAk9QvZxxBt6qvFCwhXKLN9v2MKxfTJyexVtic5NsAhS7c-Dipjop_type:StoreRecord
agent:uhCAkDP1gBQTfPJPvHUhyYKV3VvuXUzm_58ZppA7I6QWeqvqQx5uxop_type:RegisterAgentActivity
agent:uhCAkDP1gBQTfPJPvHUhyYKV3VvuXUzm_58ZppA7I6QWeqvqQx5uxop_type:StoreEntry
agent:uhCAkDP1gBQTfPJPvHUhyYKV3VvuXUzm_58ZppA7I6QWeqvqQx5uxop_type:StoreRecord
agent:uhCAkF7VyQkvZW_iBX8yjY8ZlGR_Y-eNAEEicNK9fGsuoNur8hhDlop_type:RegisterAgentActivity
agent:uhCAkF7VyQkvZW_iBX8yjY8ZlGR_Y-eNAEEicNK9fGsuoNur8hhDlop_type:StoreEntry
agent:uhCAkF7VyQkvZW_iBX8yjY8ZlGR_Y-eNAEEicNK9fGsuoNur8hhDlop_type:StoreRecord
agent:uhCAkFd7fq79PW-rOrm_ZtMflz4m0Fs7fOCbW2Ric362cZ-YE426qop_type:RegisterAgentActivity
agent:uhCAkFd7fq79PW-rOrm_ZtMflz4m0Fs7fOCbW2Ric362cZ-YE426qop_type:StoreEntry
agent:uhCAkFd7fq79PW-rOrm_ZtMflz4m0Fs7fOCbW2Ric362cZ-YE426qop_type:StoreRecord
agent:uhCAkkhaL4iwNri19cWeGBjOjIeARJraCPkdlgUnFXRTPr7yklR4hop_type:RegisterAgentActivity
agent:uhCAkkhaL4iwNri19cWeGBjOjIeARJraCPkdlgUnFXRTPr7yklR4hop_type:StoreEntry
agent:uhCAkkhaL4iwNri19cWeGBjOjIeARJraCPkdlgUnFXRTPr7yklR4hop_type:StoreRecord
agent:uhCAkrnVL57YW4HI2jYijz2iZUzz26_9_qkox-EvnNWLQ1myYvhrAop_type:RegisterAgentActivity
agent:uhCAkrnVL57YW4HI2jYijz2iZUzz26_9_qkox-EvnNWLQ1myYvhrAop_type:StoreEntry
agent:uhCAkrnVL57YW4HI2jYijz2iZUzz26_9_qkox-EvnNWLQ1myYvhrAop_type:StoreRecord
agent:uhCAktG9tMYo5dN_G8zvBQQ0TpkYKcTlU1pv_uqSpB-LrwHne3mxTop_type:RegisterAgentActivity
agent:uhCAktG9tMYo5dN_G8zvBQQ0TpkYKcTlU1pv_uqSpB-LrwHne3mxTop_type:StoreEntry
agent:uhCAktG9tMYo5dN_G8zvBQQ0TpkYKcTlU1pv_uqSpB-LrwHne3mxTop_type:StoreRecord
agent:uhCAk6CnwArhcg3CZdzhLTGx4AaxdOLxbVibR7s6F_8rIhmGF0Uhbop_type:RegisterAgentActivity
agent:uhCAk6CnwArhcg3CZdzhLTGx4AaxdOLxbVibR7s6F_8rIhmGF0Uhbop_type:StoreEntry
agent:uhCAk6CnwArhcg3CZdzhLTGx4AaxdOLxbVibR7s6F_8rIhmGF0Uhbop_type:StoreRecord
agent:uhCAk7DXDBkq6AYtau3RiMYKtVccOvgnLB0hMWpngL8h0QrYwuobxop_type:RegisterAgentActivity
agent:uhCAk7DXDBkq6AYtau3RiMYKtVccOvgnLB0hMWpngL8h0QrYwuobxop_type:StoreEntry
agent:uhCAk7DXDBkq6AYtau3RiMYKtVccOvgnLB0hMWpngL8h0QrYwuobxop_type:StoreRecord
agent:uhCAk7rsrvILqBhmD6X-LSqprVDTOiXwUDHNonzc-bIYa2qt8Kqv6op_type:RegisterAgentActivity
agent:uhCAk7rsrvILqBhmD6X-LSqprVDTOiXwUDHNonzc-bIYa2qt8Kqv6op_type:StoreEntry
agent:uhCAk7rsrvILqBhmD6X-LSqprVDTOiXwUDHNonzc-bIYa2qt8Kqv6op_type:StoreRecord
agent:uhCAk9QvZxxBt6qvFCwhXKLN9v2MKxfTJyexVtic5NsAhS7c-Dipjop_type:RegisterAgentActivity
agent:uhCAk9QvZxxBt6qvFCwhXKLN9v2MKxfTJyexVtic5NsAhS7c-Dipjop_type:StoreEntry
agent:uhCAk9QvZxxBt6qvFCwhXKLN9v2MKxfTJyexVtic5NsAhS7c-Dipjop_type:StoreRecord
agent:uhCAkDP1gBQTfPJPvHUhyYKV3VvuXUzm_58ZppA7I6QWeqvqQx5uxop_type:RegisterAgentActivity
agent:uhCAkDP1gBQTfPJPvHUhyYKV3VvuXUzm_58ZppA7I6QWeqvqQx5uxop_type:StoreEntry
agent:uhCAkDP1gBQTfPJPvHUhyYKV3VvuXUzm_58ZppA7I6QWeqvqQx5uxop_type:StoreRecord
agent:uhCAkF7VyQkvZW_iBX8yjY8ZlGR_Y-eNAEEicNK9fGsuoNur8hhDlop_type:RegisterAgentActivity
agent:uhCAkF7VyQkvZW_iBX8yjY8ZlGR_Y-eNAEEicNK9fGsuoNur8hhDlop_type:StoreEntry
agent:uhCAkF7VyQkvZW_iBX8yjY8ZlGR_Y-eNAEEicNK9fGsuoNur8hhDlop_type:StoreRecord
agent:uhCAkFd7fq79PW-rOrm_ZtMflz4m0Fs7fOCbW2Ric362cZ-YE426qop_type:RegisterAgentActivity
agent:uhCAkFd7fq79PW-rOrm_ZtMflz4m0Fs7fOCbW2Ric362cZ-YE426qop_type:StoreEntry
agent:uhCAkFd7fq79PW-rOrm_ZtMflz4m0Fs7fOCbW2Ric362cZ-YE426qop_type:StoreRecord
agent:uhCAkkhaL4iwNri19cWeGBjOjIeARJraCPkdlgUnFXRTPr7yklR4hop_type:RegisterAgentActivity
agent:uhCAkkhaL4iwNri19cWeGBjOjIeARJraCPkdlgUnFXRTPr7yklR4hop_type:StoreEntry
agent:uhCAkkhaL4iwNri19cWeGBjOjIeARJraCPkdlgUnFXRTPr7yklR4hop_type:StoreRecord
agent:uhCAkrnVL57YW4HI2jYijz2iZUzz26_9_qkox-EvnNWLQ1myYvhrAop_type:RegisterAgentActivity
agent:uhCAkrnVL57YW4HI2jYijz2iZUzz26_9_qkox-EvnNWLQ1myYvhrAop_type:StoreEntry
agent:uhCAkrnVL57YW4HI2jYijz2iZUzz26_9_qkox-EvnNWLQ1myYvhrAop_type:StoreRecord
agent:uhCAktG9tMYo5dN_G8zvBQQ0TpkYKcTlU1pv_uqSpB-LrwHne3mxTop_type:RegisterAgentActivity
agent:uhCAktG9tMYo5dN_G8zvBQQ0TpkYKcTlU1pv_uqSpB-LrwHne3mxTop_type:StoreEntry
agent:uhCAktG9tMYo5dN_G8zvBQQ0TpkYKcTlU1pv_uqSpB-LrwHne3mxTop_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:uhCAkVW0MolnwZEMrebOKqiVU7YMhelUtFf3mhGxoyuXpDikqJOsB
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:uhCAkSGgWhxYxRsBjk7Odgn-rrQCsarII5z8aAU4sqaqfV0TJ55Z-
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:uhCAkSGgWhxYxRsBjk7Odgn-rrQCsarII5z8aAU4sqaqfV0TJ55Z-
create_validated_sample_entry zome call timingwrite agent's source chain.agent:uhCAkSGgWhxYxRsBjk7Odgn-rrQCsarII5z8aAU4sqaqfV0TJ55Z-
must_get_agent_activity calls.agent:uhCAkSGgWhxYxRsBjk7Odgn-rrQCsarII5z8aAU4sqaqfV0TJ55Z-
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:uhCAkOauLiWqj8AiyGpnVwhg8WOUyYH6_NXLLdMBaqf9qsXXCBGDq
agent:uhCAkbN4oNpPRM_j0yXLRwWWaGCxU-sghilAk4KmNJ1YCHQqYz2LM
agent:uhCAkmDtaT3bj5hkzWVFfsvqASeqyspwAGJac5DAz0eSyWjvKiE07
get_timed_local_entries zome function.agent:uhCAkZ2eV1B3O8F-qQYRvOs2HYF-ZXv_3FUV7z341oPuTfDv7J6vQ
agent:uhCAkhyXHFK5dHY1KeZF4OcGYTAG4i-g_iyAlSWwbelAIAn8LV42q
agent:uhCAkvygaYO1ml4MNAk7V48qRjcdaN0oFDSles9kzhUUDLA9nBsNk
agent:uhCAkZ2eV1B3O8F-qQYRvOs2HYF-ZXv_3FUV7z341oPuTfDv7J6vQ
agent:uhCAkhyXHFK5dHY1KeZF4OcGYTAG4i-g_iyAlSWwbelAIAn8LV42q
agent:uhCAkvygaYO1ml4MNAk7V48qRjcdaN0oFDSles9kzhUUDLA9nBsNk
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:uhCAkGfY7031XZKcaJiOMYcal9Xe_CIxbpH6ClrPWEY3YB7nXz35m
agent:uhCAkVwtqepWL7OVz_XQuurCgU4cCz-bLSGCM5IiUiFv1igPFi8of
agent:uhCAkW1nS2f-JeRaD_K7zFlh-rLehwUdcj82jW8CGfXBEn3Mc46ef
agent:uhCAkWLL3KX3c0PSOzX37x-gBvhPr35dQdj5etpWoyApTv7OZIzvE
agent:uhCAkaRH2LgMT-Djq2VTbFG7h3f0qUizqXOXuLPn9zngBt_-NrFOA
agent:uhCAkm-yRkbYG7T9XVWmZ-RZkIvt2_VURGOhq000jP4A_Si7zdWbf
get_timed_local_entries zome function.agent:uhCAk3FepKc_YMw4gyvPi1iDXhq2lvia1B9SEN120Ibc9jFhRS_cn
agent:uhCAkIvu6sm-GhdSknUu6-Zn2Ek8hZmLc_Nt4FaSGAZ46pwuAlnQc
agent:uhCAkVwfPYEM_vEA-6s_1PhZR7ikvxtZLIBlgepSp2QA7voGx35hJ
agent:uhCAk_H0oHvoyDL5yfYnGJCuDPaXK1X9tDWJQx66llR29UuTugFXp
agent:uhCAk3FepKc_YMw4gyvPi1iDXhq2lvia1B9SEN120Ibc9jFhRS_cn
agent:uhCAkIvu6sm-GhdSknUu6-Zn2Ek8hZmLc_Nt4FaSGAZ46pwuAlnQc
agent:uhCAkVwfPYEM_vEA-6s_1PhZR7ikvxtZLIBlgepSp2QA7voGx35hJ
agent:uhCAk_H0oHvoyDL5yfYnGJCuDPaXK1X9tDWJQx66llR29UuTugFXp
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:uhCAk8UU56X_2dbWCdVJMo9dTeD-g3CB215L1HKjFW48eoKURdiNR
agent:uhCAkSZnwNVUM4bfykW73DA-GA0tAGwkFHpl4Qm6rkjFl1zFi_wmQ
agent:uhCAkaK4azqMNAUuie4BrduxX0Xptv11srdmHaSD2bP_BwTtyAEKC
agent:uhCAkiSrqnqxrWgBtD845jdgYL80JVOIFH_s4catc5FpFweDwcWZN
agent:uhCAkq8uzImDiO-Ro1AQUm2hUtyqc-hhQSw-jyohFgVfWMFoWu3VB
agent:uhCAkrSf3i8_OmPJ46CEa1PmO1XB5URUbfcbwLF-aUK9TdTizkqSG
get_timed_local_entries zome function.agent:uhCAk4DJTLrEKe_5kbYzUKBqQb4naUxIVO8AUNEQzDVT-ffIQs0VL
agent:uhCAkUt-JqV3jfjxYKpMNT0nzz8lJUaXa8AnmA-3XMpdrX_fEHxMk
agent:uhCAkYIjAmTaICXkM_okeE7KwICTJng0fhZjrQ_-fvaiOYzj5WLX7
agent:uhCAkeY9KXVSH2MOgKaRhisJFVlxcgnlj7vIf9mvwRRFkAIEVZlKA
agent:uhCAk4DJTLrEKe_5kbYzUKBqQb4naUxIVO8AUNEQzDVT-ffIQs0VL
agent:uhCAkUt-JqV3jfjxYKpMNT0nzz8lJUaXa8AnmA-3XMpdrX_fEHxMk
agent:uhCAkYIjAmTaICXkM_okeE7KwICTJng0fhZjrQ_-fvaiOYzj5WLX7
agent:uhCAkeY9KXVSH2MOgKaRhisJFVlxcgnlj7vIf9mvwRRFkAIEVZlKA
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)