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:uhCAkLpxEmWaQ063pX1i1N2TNf5A-8aw8kIJ_poSnSaqhZ3RpySRM
agent:uhCAkTYkgvhQ28wiFjx1iyzQcB5PSdJ9-wNS1kuipRYaJVw0bftLL
agent:uhCAkTjprs__nGEvhXRMs6AhFkKAeNGTRtJ-c-G-zcly5aZQr3PiG
agent:uhCAkwh9cmZ5n6o-YRN8UieDzhdUR7NW_BsOLcuQQ7L0Mkxq-hM7_
agent:uhCAkzK2N95q3ZUNI1q2bwfLWopVJidRCDf0J_X_lAz1J6bdKQJZu
agent:uhCAkCTc4kX5q5gxJMTklMcU6fsRhnQggMnbBqXvj1mXAWTUqyehY
agent:uhCAkJFR8flE1RdZswtOZxAmYj4owCgg0Gdq8qsKK9sK5P1UfelU4
agent:uhCAkO0CbjyFF9t5pYIrdwCct9M3Vyk9bAcrTpLJFy82OzClcrNvG
agent:uhCAkbawhRw1IhbHLicjCPadNxvq9pehggPYbiZTL6luy9cLtu2cT
agent:uhCAkx2YHaJHDqRVi9Bu8f9WZ8ye6ecGXBmoO5bQQh0fIVa5M9akf
agent:uhCAkCTc4kX5q5gxJMTklMcU6fsRhnQggMnbBqXvj1mXAWTUqyehY
agent:uhCAkJFR8flE1RdZswtOZxAmYj4owCgg0Gdq8qsKK9sK5P1UfelU4
agent:uhCAkO0CbjyFF9t5pYIrdwCct9M3Vyk9bAcrTpLJFy82OzClcrNvG
agent:uhCAkbawhRw1IhbHLicjCPadNxvq9pehggPYbiZTL6luy9cLtu2cT
agent:uhCAkx2YHaJHDqRVi9Bu8f9WZ8ye6ecGXBmoO5bQQh0fIVa5M9akf
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:uhCAk-qyQorXM5FyUaXxesrXcnKAeO4ZstSxFgpJ8FXexP5XWLCt7
agent:uhCAkG97d_3PJKObNXQbLU1oxGgA5YYtPOPZWpLsCiKSpqVSmTCAa
agent:uhCAkJ1YWo6vcApExMoEpy3H-gQMnU-QQxmjeFhpsdFgkAEnC_UuC
agent:uhCAkKGGKrpJTy0Jatxo4Dee4qTiektEbRuezd3SmD6yX3tnPhIuH
get_timed_local_entries zome function.agent:uhCAkL2haSeBIRg9Zdb5Aqvep6JVAnNj8f4axOm0KiDKpJ1qC4rdD
agent:uhCAkWF96ZvoJw7e4lSugdj63cCprAma0dmGr1GWIKVumo480H4Ah
agent:uhCAkgOjS9StZpihYXgGfzzUlhfYtJXLGOTbdSjUTnqh627hXWMiR
agent:uhCAkoUSTjPf5z5Pdznv9t3Id0Anes_X34xuSYs9BXRkVp6wmw541
agent:uhCAkubA8GEpDyTQE4VHYf_WsYby7BFLapbDg4F24mrUUO_ULhBWX
agent:uhCAkL2haSeBIRg9Zdb5Aqvep6JVAnNj8f4axOm0KiDKpJ1qC4rdD
agent:uhCAkWF96ZvoJw7e4lSugdj63cCprAma0dmGr1GWIKVumo480H4Ah
agent:uhCAkgOjS9StZpihYXgGfzzUlhfYtJXLGOTbdSjUTnqh627hXWMiR
agent:uhCAkoUSTjPf5z5Pdznv9t3Id0Anes_X34xuSYs9BXRkVp6wmw541
agent:uhCAkubA8GEpDyTQE4VHYf_WsYby7BFLapbDg4F24mrUUO_ULhBWX
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:uhCAk0LIA4bTKhpxaGlRgGIQikaLaeZLXtTt_uu24PK8CSklrKuyybehaviour:zero_write
agent:uhCAkColfuviQCFr6ybYMmVKrtTtKcoHMUsF4EA3V-5hxxBmI28eIbehaviour:full_write
agent:uhCAkcJrPnJdCM8HfdoJOcw41kwE2hJtKGUeOTIkTHztx6orDVqakbehaviour:zero_write
agent:uhCAknPa7Qbrxl9e_Ixje-h4Nd7DolVz-VV5oEVgZT2HJtnJMuuLJbehaviour: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:uhCAkOGS_ZvZAtJBvHKoUVkKOxKjv1DdC6AYvwfGW6S6hsNRGjR5Twrite_agent:uhCAknPa7Qbrxl9e_Ixje-h4Nd7DolVz-VV5oEVgZT2HJtnJMuuLJ
get_agent_activity_agent:uhCAkQsZlVvTwmE0crLjwHLiE6zXiije_z-d0bcAyAu5ofv-EavfWwrite_agent:uhCAknPa7Qbrxl9e_Ixje-h4Nd7DolVz-VV5oEVgZT2HJtnJMuuLJ
get_agent_activity_agent:uhCAkWr9IQGsr040f7E5uNnzKNUrFlIm08R-L0Nrl8K6fIL3TetLhwrite_agent:uhCAknPa7Qbrxl9e_Ixje-h4Nd7DolVz-VV5oEVgZT2HJtnJMuuLJ
get_agent_activity_agent:uhCAkbN9sP0AoogLu4Mo8OX_oVnmFRtmYUiGyV1uDaIr77EOjtVeLwrite_agent:uhCAknPa7Qbrxl9e_Ixje-h4Nd7DolVz-VV5oEVgZT2HJtnJMuuLJ
get_agent_activity_agent:uhCAkfyy41aQZsEEkd5Km_akoYHeWWF1Yog7S__6iIcpKfIszuxy_write_agent:uhCAknPa7Qbrxl9e_Ixje-h4Nd7DolVz-VV5oEVgZT2HJtnJMuuLJ
get_agent_activity_agent:uhCAktZiEmnJm2IDL_NjtebDRjwDcYjC3v6XP_H1mdWwGVaJ0Z995write_agent:uhCAknPa7Qbrxl9e_Ixje-h4Nd7DolVz-VV5oEVgZT2HJtnJMuuLJ
get_agent_activity. This is measured per new action in the chain.agent:uhCAkOGS_ZvZAtJBvHKoUVkKOxKjv1DdC6AYvwfGW6S6hsNRGjR5T
agent:uhCAkQsZlVvTwmE0crLjwHLiE6zXiije_z-d0bcAyAu5ofv-EavfW
agent:uhCAkWr9IQGsr040f7E5uNnzKNUrFlIm08R-L0Nrl8K6fIL3TetLh
agent:uhCAkbN9sP0AoogLu4Mo8OX_oVnmFRtmYUiGyV1uDaIr77EOjtVeL
agent:uhCAkfyy41aQZsEEkd5Km_akoYHeWWF1Yog7S__6iIcpKfIszuxy_
agent:uhCAktZiEmnJm2IDL_NjtebDRjwDcYjC3v6XP_H1mdWwGVaJ0Z995
agent:uhCAkOGS_ZvZAtJBvHKoUVkKOxKjv1DdC6AYvwfGW6S6hsNRGjR5T
agent:uhCAkQsZlVvTwmE0crLjwHLiE6zXiije_z-d0bcAyAu5ofv-EavfW
agent:uhCAkWr9IQGsr040f7E5uNnzKNUrFlIm08R-L0Nrl8K6fIL3TetLh
agent:uhCAkbN9sP0AoogLu4Mo8OX_oVnmFRtmYUiGyV1uDaIr77EOjtVeL
agent:uhCAkfyy41aQZsEEkd5Km_akoYHeWWF1Yog7S__6iIcpKfIszuxy_
agent:uhCAktZiEmnJm2IDL_NjtebDRjwDcYjC3v6XP_H1mdWwGVaJ0Z995
get_agent_activity_full zome call timingget_agent_activity_full zome call that queries a writer's chain.agent:uhCAkOGS_ZvZAtJBvHKoUVkKOxKjv1DdC6AYvwfGW6S6hsNRGjR5T
agent:uhCAkQsZlVvTwmE0crLjwHLiE6zXiije_z-d0bcAyAu5ofv-EavfW
agent:uhCAkWr9IQGsr040f7E5uNnzKNUrFlIm08R-L0Nrl8K6fIL3TetLh
agent:uhCAkbN9sP0AoogLu4Mo8OX_oVnmFRtmYUiGyV1uDaIr77EOjtVeL
agent:uhCAkfyy41aQZsEEkd5Km_akoYHeWWF1Yog7S__6iIcpKfIszuxy_
agent:uhCAktZiEmnJm2IDL_NjtebDRjwDcYjC3v6XP_H1mdWwGVaJ0Z995
get_agent_activity.agent:uhCAkOGS_ZvZAtJBvHKoUVkKOxKjv1DdC6AYvwfGW6S6hsNRGjR5T
agent:uhCAkQsZlVvTwmE0crLjwHLiE6zXiije_z-d0bcAyAu5ofv-EavfW
agent:uhCAkWr9IQGsr040f7E5uNnzKNUrFlIm08R-L0Nrl8K6fIL3TetLh
agent:uhCAkbN9sP0AoogLu4Mo8OX_oVnmFRtmYUiGyV1uDaIr77EOjtVeL
agent:uhCAkfyy41aQZsEEkd5Km_akoYHeWWF1Yog7S__6iIcpKfIszuxy_
agent:uhCAktZiEmnJm2IDL_NjtebDRjwDcYjC3v6XP_H1mdWwGVaJ0Z995
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:uhCAkBBkRqjuH9cZHzqEgwxwNzx4FcmCSH5pA83dstBgVPQWVgoRb
must_get_agent_activity_agent:uhCAkJ8dAhqJXi5-4-7dlNMWUd1DFO-W-VIz5Ln__FIgrvfhs30EJ
must_get_agent_activity_agent:uhCAknZVMAmMHcHT9zKMNmL_DKmc3PbxAeJU2U4Qr-xGRUbERx1aq
must_get_agent_activity_agent:uhCAkvNwBpPwVp83T0djmZB5B1qOMDvHxt7quthY_EaooB2wmwTPB
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:uhCAkBBkRqjuH9cZHzqEgwxwNzx4FcmCSH5pA83dstBgVPQWVgoRb
must_get_agent_activity_agent:uhCAkJ8dAhqJXi5-4-7dlNMWUd1DFO-W-VIz5Ln__FIgrvfhs30EJ
must_get_agent_activity_agent:uhCAknZVMAmMHcHT9zKMNmL_DKmc3PbxAeJU2U4Qr-xGRUbERx1aq
must_get_agent_activity_agent:uhCAkvNwBpPwVp83T0djmZB5B1qOMDvHxt7quthY_EaooB2wmwTPB
create_validated_sample_entry zome call timingwrite agent's source chain.agent:uhCAkBBkRqjuH9cZHzqEgwxwNzx4FcmCSH5pA83dstBgVPQWVgoRb
agent:uhCAkJ8dAhqJXi5-4-7dlNMWUd1DFO-W-VIz5Ln__FIgrvfhs30EJ
agent:uhCAknZVMAmMHcHT9zKMNmL_DKmc3PbxAeJU2U4Qr-xGRUbERx1aq
agent:uhCAkvNwBpPwVp83T0djmZB5B1qOMDvHxt7quthY_EaooB2wmwTPB
must_get_agent_activity calls.agent:uhCAkBBkRqjuH9cZHzqEgwxwNzx4FcmCSH5pA83dstBgVPQWVgoRb
agent:uhCAkJ8dAhqJXi5-4-7dlNMWUd1DFO-W-VIz5Ln__FIgrvfhs30EJ
agent:uhCAknZVMAmMHcHT9zKMNmL_DKmc3PbxAeJU2U4Qr-xGRUbERx1aq
agent:uhCAkvNwBpPwVp83T0djmZB5B1qOMDvHxt7quthY_EaooB2wmwTPB
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:uhCAkU72PPQuvIsfswo0II7Wi3H9DjcfwgdIdAioJIlQdp4_8diGW
agent:uhCAkboDlJxMzcS-emVJrL3Zh1wxGVDF349sPPcd37iPiF0tJ-aWb
agent:uhCAkU72PPQuvIsfswo0II7Wi3H9DjcfwgdIdAioJIlQdp4_8diGW
agent:uhCAkboDlJxMzcS-emVJrL3Zh1wxGVDF349sPPcd37iPiF0tJ-aWb
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:uhCAk4ijZlXuEPhRvDZZRA6DIqxPB6MABxSQd3kcQ-3ngr5OFj3J6op_type:RegisterAgentActivity
agent:uhCAk4ijZlXuEPhRvDZZRA6DIqxPB6MABxSQd3kcQ-3ngr5OFj3J6op_type:StoreEntry
agent:uhCAk4ijZlXuEPhRvDZZRA6DIqxPB6MABxSQd3kcQ-3ngr5OFj3J6op_type:StoreRecord
agent:uhCAk7ZdFvCZYEr4xNrO-mQfKfJnYrnF5jd3wSM11wd_2WTjGlsnXop_type:RegisterAgentActivity
agent:uhCAk7ZdFvCZYEr4xNrO-mQfKfJnYrnF5jd3wSM11wd_2WTjGlsnXop_type:StoreEntry
agent:uhCAk7ZdFvCZYEr4xNrO-mQfKfJnYrnF5jd3wSM11wd_2WTjGlsnXop_type:StoreRecord
agent:uhCAkKXXzWHnvAXrW_JPnhGGe27GRn_ojAbYRH8-FtBETFZ_zqsHuop_type:RegisterAgentActivity
agent:uhCAkKXXzWHnvAXrW_JPnhGGe27GRn_ojAbYRH8-FtBETFZ_zqsHuop_type:StoreEntry
agent:uhCAkKXXzWHnvAXrW_JPnhGGe27GRn_ojAbYRH8-FtBETFZ_zqsHuop_type:StoreRecord
agent:uhCAkMXk10H4OjU3G7Fzs0RNZ2icX7LZKri5Ss_wAT5sb8gHjvpbPop_type:RegisterAgentActivity
agent:uhCAkMXk10H4OjU3G7Fzs0RNZ2icX7LZKri5Ss_wAT5sb8gHjvpbPop_type:StoreEntry
agent:uhCAkMXk10H4OjU3G7Fzs0RNZ2icX7LZKri5Ss_wAT5sb8gHjvpbPop_type:StoreRecord
agent:uhCAkNREX2IaXo6ug4z701MAYoHfE9i0lX8sjd-_ENEF7tuLaKJjuop_type:RegisterAgentActivity
agent:uhCAkNREX2IaXo6ug4z701MAYoHfE9i0lX8sjd-_ENEF7tuLaKJjuop_type:StoreEntry
agent:uhCAkNREX2IaXo6ug4z701MAYoHfE9i0lX8sjd-_ENEF7tuLaKJjuop_type:StoreRecord
agent:uhCAk_vC6B1A9AfIC7yuMtJ94HFAjKB2-_ylNNxSegQtD18ASz31oop_type:RegisterAgentActivity
agent:uhCAk_vC6B1A9AfIC7yuMtJ94HFAjKB2-_ylNNxSegQtD18ASz31oop_type:StoreEntry
agent:uhCAk_vC6B1A9AfIC7yuMtJ94HFAjKB2-_ylNNxSegQtD18ASz31oop_type:StoreRecord
agent:uhCAkhPRgUnm_OxvwBkVRJQGnG9DhfyUhosy7RCi10xNnXyjb0mxGop_type:RegisterAgentActivity
agent:uhCAkhPRgUnm_OxvwBkVRJQGnG9DhfyUhosy7RCi10xNnXyjb0mxGop_type:StoreEntry
agent:uhCAkhPRgUnm_OxvwBkVRJQGnG9DhfyUhosy7RCi10xNnXyjb0mxGop_type:StoreRecord
agent:uhCAkoEjraKmLORPFrHCYKVdqQhpVH6x0DDOW7QQow0n8NS5gwnRFop_type:RegisterAgentActivity
agent:uhCAkoEjraKmLORPFrHCYKVdqQhpVH6x0DDOW7QQow0n8NS5gwnRFop_type:StoreEntry
agent:uhCAkoEjraKmLORPFrHCYKVdqQhpVH6x0DDOW7QQow0n8NS5gwnRFop_type:StoreRecord
agent:uhCAkuex5w8oq16vcyPU4fSy_8GOIUVjuxMuXksJVY-D9MEkOoCdXop_type:RegisterAgentActivity
agent:uhCAkuex5w8oq16vcyPU4fSy_8GOIUVjuxMuXksJVY-D9MEkOoCdXop_type:StoreEntry
agent:uhCAkuex5w8oq16vcyPU4fSy_8GOIUVjuxMuXksJVY-D9MEkOoCdXop_type:StoreRecord
agent:uhCAkxqOX7zsoAan3AleS_6lmw_0f8jlLeEWg9CfMxKs6CqNIiVq8op_type:RegisterAgentActivity
agent:uhCAkxqOX7zsoAan3AleS_6lmw_0f8jlLeEWg9CfMxKs6CqNIiVq8op_type:StoreEntry
agent:uhCAkxqOX7zsoAan3AleS_6lmw_0f8jlLeEWg9CfMxKs6CqNIiVq8op_type:StoreRecord
agent:uhCAk4ijZlXuEPhRvDZZRA6DIqxPB6MABxSQd3kcQ-3ngr5OFj3J6op_type:RegisterAgentActivity
agent:uhCAk4ijZlXuEPhRvDZZRA6DIqxPB6MABxSQd3kcQ-3ngr5OFj3J6op_type:StoreEntry
agent:uhCAk4ijZlXuEPhRvDZZRA6DIqxPB6MABxSQd3kcQ-3ngr5OFj3J6op_type:StoreRecord
agent:uhCAk7ZdFvCZYEr4xNrO-mQfKfJnYrnF5jd3wSM11wd_2WTjGlsnXop_type:RegisterAgentActivity
agent:uhCAk7ZdFvCZYEr4xNrO-mQfKfJnYrnF5jd3wSM11wd_2WTjGlsnXop_type:StoreEntry
agent:uhCAk7ZdFvCZYEr4xNrO-mQfKfJnYrnF5jd3wSM11wd_2WTjGlsnXop_type:StoreRecord
agent:uhCAkKXXzWHnvAXrW_JPnhGGe27GRn_ojAbYRH8-FtBETFZ_zqsHuop_type:RegisterAgentActivity
agent:uhCAkKXXzWHnvAXrW_JPnhGGe27GRn_ojAbYRH8-FtBETFZ_zqsHuop_type:StoreEntry
agent:uhCAkKXXzWHnvAXrW_JPnhGGe27GRn_ojAbYRH8-FtBETFZ_zqsHuop_type:StoreRecord
agent:uhCAkMXk10H4OjU3G7Fzs0RNZ2icX7LZKri5Ss_wAT5sb8gHjvpbPop_type:RegisterAgentActivity
agent:uhCAkMXk10H4OjU3G7Fzs0RNZ2icX7LZKri5Ss_wAT5sb8gHjvpbPop_type:StoreEntry
agent:uhCAkMXk10H4OjU3G7Fzs0RNZ2icX7LZKri5Ss_wAT5sb8gHjvpbPop_type:StoreRecord
agent:uhCAkNREX2IaXo6ug4z701MAYoHfE9i0lX8sjd-_ENEF7tuLaKJjuop_type:RegisterAgentActivity
agent:uhCAkNREX2IaXo6ug4z701MAYoHfE9i0lX8sjd-_ENEF7tuLaKJjuop_type:StoreEntry
agent:uhCAkNREX2IaXo6ug4z701MAYoHfE9i0lX8sjd-_ENEF7tuLaKJjuop_type:StoreRecord
agent:uhCAk_vC6B1A9AfIC7yuMtJ94HFAjKB2-_ylNNxSegQtD18ASz31oop_type:RegisterAgentActivity
agent:uhCAk_vC6B1A9AfIC7yuMtJ94HFAjKB2-_ylNNxSegQtD18ASz31oop_type:StoreEntry
agent:uhCAk_vC6B1A9AfIC7yuMtJ94HFAjKB2-_ylNNxSegQtD18ASz31oop_type:StoreRecord
agent:uhCAkhPRgUnm_OxvwBkVRJQGnG9DhfyUhosy7RCi10xNnXyjb0mxGop_type:RegisterAgentActivity
agent:uhCAkhPRgUnm_OxvwBkVRJQGnG9DhfyUhosy7RCi10xNnXyjb0mxGop_type:StoreEntry
agent:uhCAkhPRgUnm_OxvwBkVRJQGnG9DhfyUhosy7RCi10xNnXyjb0mxGop_type:StoreRecord
agent:uhCAkoEjraKmLORPFrHCYKVdqQhpVH6x0DDOW7QQow0n8NS5gwnRFop_type:RegisterAgentActivity
agent:uhCAkoEjraKmLORPFrHCYKVdqQhpVH6x0DDOW7QQow0n8NS5gwnRFop_type:StoreEntry
agent:uhCAkoEjraKmLORPFrHCYKVdqQhpVH6x0DDOW7QQow0n8NS5gwnRFop_type:StoreRecord
agent:uhCAkuex5w8oq16vcyPU4fSy_8GOIUVjuxMuXksJVY-D9MEkOoCdXop_type:RegisterAgentActivity
agent:uhCAkuex5w8oq16vcyPU4fSy_8GOIUVjuxMuXksJVY-D9MEkOoCdXop_type:StoreEntry
agent:uhCAkuex5w8oq16vcyPU4fSy_8GOIUVjuxMuXksJVY-D9MEkOoCdXop_type:StoreRecord
agent:uhCAkxqOX7zsoAan3AleS_6lmw_0f8jlLeEWg9CfMxKs6CqNIiVq8op_type:RegisterAgentActivity
agent:uhCAkxqOX7zsoAan3AleS_6lmw_0f8jlLeEWg9CfMxKs6CqNIiVq8op_type:StoreEntry
agent:uhCAkxqOX7zsoAan3AleS_6lmw_0f8jlLeEWg9CfMxKs6CqNIiVq8op_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:uhCAk6jDpPfPAFdbNRatLmw6sQw0pPgFRSHxdsOsW_hLufyJxg1Rq
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:uhCAk9RzAFWzESpTX9tiIjsrLIsCRp0WF0zv3NKCRBy8T7HG4NDLL
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:uhCAk9RzAFWzESpTX9tiIjsrLIsCRp0WF0zv3NKCRBy8T7HG4NDLL
create_validated_sample_entry zome call timingwrite agent's source chain.agent:uhCAk9RzAFWzESpTX9tiIjsrLIsCRp0WF0zv3NKCRBy8T7HG4NDLL
must_get_agent_activity calls.agent:uhCAk9RzAFWzESpTX9tiIjsrLIsCRp0WF0zv3NKCRBy8T7HG4NDLL
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:uhCAkbHoYIyGGSaUaCMvKKLGiNg8Kk0ZJPHmjKCU3ZfXVMXyL6I7Z
agent:uhCAkkN-66_ag9qB76WxRvistr1oeHNoGo_SkZBRZoPM42pP7MZi2
agent:uhCAkn3gSHOpzShY3eY5uibZEN0Bx5mCP7jd-zqPbih5Us66HWtEu
get_timed_local_entries zome function.agent:uhCAkGUJFm96J2gemeHzognXV12dRNyfusAW2UDECTLhIsP5g07rL
agent:uhCAkoCN7beqiLzFf48-qQBLQidwy_1t1bWLQhP5SlJlkgLfTxNKt
agent:uhCAkoHqZGpGUEsj0AWkPuvz-Uc6FLBtpbGpFRVmQTOGm5KveVieL
agent:uhCAkGUJFm96J2gemeHzognXV12dRNyfusAW2UDECTLhIsP5g07rL
agent:uhCAkoCN7beqiLzFf48-qQBLQidwy_1t1bWLQhP5SlJlkgLfTxNKt
agent:uhCAkoHqZGpGUEsj0AWkPuvz-Uc6FLBtpbGpFRVmQTOGm5KveVieL
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:uhCAk7nbtMMHOYL79CqvxpV010Y8-bzR1PWcbFyLT25lfHBljIalg
agent:uhCAkKFnCu3LDDoM7ssN-38mZTSrD32jCZEa2KUmcv5YpbOLJBNMg
agent:uhCAkMDGd5zxhGVEJMOPvvsn2Sx1jMJp0liVmihc4VwP8x9tPUt-9
agent:uhCAkgpRxDmFM7sZlKcwryIdwD-Uo--jpPrGW5vMCEaO79TWr86w6
agent:uhCAkhxCPEm93uvPwCHoyrv99Y7WVRx03MDYxE2qr78LIncTUk1jV
agent:uhCAkzYKhgK2ApPDewH4EUmKfCPfti_pumVVkM_2YV7hnpwkLTtiI
get_timed_local_entries zome function.agent:uhCAk-bP_GrjNhugp18LXkUGgeoKU0adOMtO8s1yQLY0fvDglDojc
agent:uhCAkDqC0ByZ6HJXfYV9NoO34APTx8oCHNhXvfQR--8pm9vRGaMRG
agent:uhCAkMYlJ0NdW-9q98yYYxgpQNggaGeL9rM4LgiUNb9yW9kYs3f7W
agent:uhCAkUhSNWNmxJpH7CCnZj-jsSR_WdRfGHmne_7Bym3msQ7Y6mMGa
agent:uhCAk-bP_GrjNhugp18LXkUGgeoKU0adOMtO8s1yQLY0fvDglDojc
agent:uhCAkDqC0ByZ6HJXfYV9NoO34APTx8oCHNhXvfQR--8pm9vRGaMRG
agent:uhCAkMYlJ0NdW-9q98yYYxgpQNggaGeL9rM4LgiUNb9yW9kYs3f7W
agent:uhCAkUhSNWNmxJpH7CCnZj-jsSR_WdRfGHmne_7Bym3msQ7Y6mMGa
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:uhCAkMTMK0ZwNID27xYxoV_vKs_axGjlOtTaVpO1QnSNAO08REmnH
agent:uhCAkPU66PWLbWm1TDD0KVA4AcJqeMysuo6jJK6Qsnmj9SEh0gHeS
agent:uhCAkWckH5QXJbu1pU1_9H1WeI9ngErITh4a2aozKrrp_X225086V
agent:uhCAkagi-3t4UYLdquEfGI1zdn6Oo6VU0XpWtLbcq25o-mPAVTJv2
agent:uhCAknjYF7OutkcqWuq7CW09fu6_Swwg74Zh7qZU_vUrdj4MCy_6h
agent:uhCAkzWYCiOPoEGNHYQ0RbvJqb9Gk-grkdP_y3O4Udf21UicijsiF
get_timed_local_entries zome function.agent:uhCAkJjWvN79T9pCtGdhoA0z8tHyo69KRIAedTgHOG3htocOnVNf7
agent:uhCAkSVeCUdQrxWHM6zr9Rh7gdb1JOlB5QHIjGvEgahkme72vC1so
agent:uhCAkbYSpolI72q9FYNyNuGZNZ_N293y_dbtdbBU80L_dKWTG0IWq
agent:uhCAkuZ_CA8OyTruN6UsMpDXJLkJHWpfvZ2kUzLhvLcHS-_cWZQ2H
agent:uhCAkJjWvN79T9pCtGdhoA0z8tHyo69KRIAedTgHOG3htocOnVNf7
agent:uhCAkSVeCUdQrxWHM6zr9Rh7gdb1JOlB5QHIjGvEgahkme72vC1so
agent:uhCAkbYSpolI72q9FYNyNuGZNZ_N293y_dbtdbBU80L_dKWTG0IWq
agent:uhCAkuZ_CA8OyTruN6UsMpDXJLkJHWpfvZ2kUzLhvLcHS-_cWZQ2H
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)