/
index.html
28 lines (25 loc) · 17.7 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<!doctype html>
<html lang="en" dir="ltr" class="blog-wrapper blog-post-page plugin-blog plugin-id-updates">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v2.2.0">
<title data-rh="true">Performance & tracing update | Cardano Development Updates</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://input-output-hk.github.io/cardano-updates/2022-12-14-performance-and-tracing"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:docusaurus_tag" content="default"><meta data-rh="true" property="og:title" content="Performance & tracing update | Cardano Development Updates"><meta data-rh="true" name="description" content="High level summary"><meta data-rh="true" property="og:description" content="High level summary"><meta data-rh="true" property="og:type" content="article"><meta data-rh="true" property="article:published_time" content="2022-12-14T00:00:00.000Z"><meta data-rh="true" property="article:author" content="https://github.com/deepfire"><meta data-rh="true" property="article:tag" content="performance-tracing"><link data-rh="true" rel="icon" href="/cardano-updates/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://input-output-hk.github.io/cardano-updates/2022-12-14-performance-and-tracing"><link data-rh="true" rel="alternate" href="https://input-output-hk.github.io/cardano-updates/2022-12-14-performance-and-tracing" hreflang="en"><link data-rh="true" rel="alternate" href="https://input-output-hk.github.io/cardano-updates/2022-12-14-performance-and-tracing" hreflang="x-default"><link rel="alternate" type="application/rss+xml" href="/cardano-updates/rss.xml" title="Cardano Updates Feed RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/cardano-updates/atom.xml" title="Cardano Updates Feed Atom Feed">
<link rel="alternate" type="application/json" href="/cardano-updates/feed.json" title="Cardano Updates Feed JSON Feed">
<link rel="alternate" type="application/rss+xml" href="/cardano-updates/quarterly/rss.xml" title="Cardano Development Updates RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/cardano-updates/quarterly/atom.xml" title="Cardano Development Updates Atom Feed">
<script src="https://plausible.io/js/script.js" defer="defer" data-domain="input-output-hk.github.io/cardano-updates"></script><link rel="stylesheet" href="/cardano-updates/assets/css/styles.1b2b551c.css">
<link rel="preload" href="/cardano-updates/assets/js/runtime~main.1282f806.js" as="script">
<link rel="preload" href="/cardano-updates/assets/js/main.870ab849.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/cardano-updates/"><div class="navbar__logo"><img src="/cardano-updates/img/logo.svg" alt="Cardano Logo" class="themedImage_ToTc themedImage--light_HNdA"><img src="/cardano-updates/img/logo.svg" alt="Cardano Logo" class="themedImage_ToTc themedImage--dark_i4oU"></div><b class="navbar__title text--truncate">Cardano Updates</b></a></div><div class="navbar__items navbar__items--right"><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/cardano-updates/">Home</a><a class="navbar__item navbar__link" href="/cardano-updates/quarterly">Quarterly</a><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a class="navbar__link" aria-haspopup="true" aria-expanded="false" role="button" href="/cardano-updates/tags">Topics</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/cardano-updates/tags">All Topics</a></li><li><a class="dropdown__link" href="/cardano-updates/tags/network">Network</a></li><li><a class="dropdown__link" href="/cardano-updates/tags/consensus">Consensus</a></li><li><a class="dropdown__link" href="/cardano-updates/tags/ledger">Ledger</a></li><li><a class="dropdown__link" href="/cardano-updates/tags/hydra">Hydra</a></li><li><a class="dropdown__link" href="/cardano-updates/tags/db-sync">DB Sync</a></li><li><a class="dropdown__link" href="/cardano-updates/tags/cli-api">Node CLI & API</a></li><li><a class="dropdown__link" href="/cardano-updates/quarterly/tags/cli-api-quarterly">Node CLI & API Quarterly</a></li><li><a class="dropdown__link" href="/cardano-updates/tags/crypto">Crypto</a></li></ul></div><a class="navbar__item navbar__link" href="/cardano-updates/archive">Archive</a><a href="https://github.com/input-output-hk/cardano-updates" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link header-github-link" aria-label="GitHub repository"></a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><div class="container margin-vert--lg"><div class="row"><aside class="col col--3"><nav class="sidebar_re4s thin-scrollbar" aria-label="Blog recent posts navigation"><div class="sidebarItemTitle_pO2u margin-bottom--md">Recent Posts</div><ul class="sidebarItemList_Yudw clean-list"><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/cardano-updates/2023-03-24-hydra">Hydra Team Update</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/cardano-updates/2023-03-23-db-sync">DB-sync Team Update</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/cardano-updates/2023-03-23-mithril">Mithril Team Update</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/cardano-updates/2023-03-22-consensus">Consensus Team Update</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/cardano-updates/2023-03-22-performance-and-tracing">Performance & tracing update</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/cardano-updates/2023-03-21-network">Network Team Update</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/cardano-updates/2023-03-17-hydra">Hydra Team Update</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/cardano-updates/2023-03-17-ledger">Ledger Team Update</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/cardano-updates/2023-03-16-goedel">Goedel Team Update</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/cardano-updates/2023-03-10-hydra">Hydra Team Update</a></li></ul></nav></aside><main class="col col--7" itemscope="" itemtype="http://schema.org/Blog"><article itemprop="blogPost" itemscope="" itemtype="http://schema.org/BlogPosting"><header><h1 class="title_f1Hy" itemprop="headline">Performance & tracing update</h1><div class="container_mt6G margin-vert--md"><time datetime="2022-12-14T00:00:00.000Z" itemprop="datePublished">December 14, 2022</time> · <!-- -->4 min read</div><div class="margin-top--md margin-bottom--sm row"><div class="col col--6 authorCol_Hf19"><div class="avatar margin-bottom--sm"><a href="https://github.com/deepfire" target="_blank" rel="noopener noreferrer" class="avatar__photo-link"><img class="avatar__photo" src="https://github.com/deepfire.png" alt="Serge Kosyrev"></a><div class="avatar__intro" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><div class="avatar__name"><a href="https://github.com/deepfire" target="_blank" rel="noopener noreferrer" itemprop="url"><span itemprop="name">Serge Kosyrev</span></a></div><small class="avatar__subtitle" itemprop="description">Performance and Tracing Team Lead</small></div></div></div></div></header><div id="post-content" class="markdown" itemprop="articleBody"><h2 class="anchor anchorWithStickyNavbar_LWe7" id="high-level-summary">High level summary<a class="hash-link" href="#high-level-summary" title="Direct link to heading"></a></h2><ol><li>SECP benchmarking enablement was completed: we are now able to do local runs of the SECP workloads. The next step is to port this to the AWS environment.</li><li>A new workstream for Plutus cost modeling improvement: we've planned and started implementing the smart contract call overhead measurement machinery.</li><li>The new tracing system: after doing more benchmarking to address inter-run variance, we discovered that the regression, while still there, is small enough not to be release critical. Nevertheless, we're continuing with the further performance-oriented rework of the internals.</li><li>Infrastructure: a significant refactoring of the workbench internals was merged. We also started improving the denotation for ever-evolving protocol parameters. Comparative analysis of multi-run batches implementation started.</li><li>Open sourcing: our plans matured sufficiently so that we now expect actual deployment work to start this week.</li></ol><h2 class="anchor anchorWithStickyNavbar_LWe7" id="performance">Performance<a class="hash-link" href="#performance" title="Direct link to heading"></a></h2><p>The SECP benchmarking workload has been fully implemented in the workbench. We are now porting it over to AWS, and after that we'll be running the model cluster workload.</p><p>We've also started implementing mechanics for the upcoming investigation of the Plutus smart contract call overhead, which is expected to lead us to improved Plutus cost modeling.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="tracing">Tracing<a class="hash-link" href="#tracing" title="Direct link to heading"></a></h2><p>After the initial model-scale performance data caused us to panic, among other things we've done more benchmarks, and it turned out that inter-run variance increase was the culprit. The actual regression averages to barely noticeable 1-2% in key metrics -- which is certainly not release critical.</p><p>To understand the impact of the new tracing system, we have to bear in mind the extra functionality it provides:</p><ol><li>We are now processing all messages generated by the system, without making any shortcuts that the old system had to resort to. That causes the new tracing to do more work, but is more useful for all users and developers involved -- since it leads to a simple, non-confusing configuration. Incidentally, that's also the area where we are reworking the internals, to deduce and enable the optimisations that are implied by the particular configuration.</li><li>The new tracing system is benchmarked with remote tracing as the default backend (whereas the old one was using local, builtin log storage mechanism). In some sense it's the fair benchmark, because that's the way we expect SPO's to set up tracing. That, however also causes it to do more work.</li></ol><p>All that said, since we've established the performance of the new system to be adequate for the release, we won't be delaying it much further.</p><p>In addition, we're still pursuing our performance-enhancing rework of the new tracing internals.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="infrastructure">Infrastructure<a class="hash-link" href="#infrastructure" title="Direct link to heading"></a></h2><p>After implementing the multi-backend capability in the workbench, we got the opportunity to reassess the generic/backend boundaries and perform some long-awaited cleanups and simplifications in that area. The results of this work have been merged and will serve as a solid foundation for the CI and cloud backends.</p><p>Moving to analysis, we've also improved provenance of the raw data, by collecting more identification information and statistics about it.
This means, e.g. that we now record checksums, message frequencies and timestamps from the log files coming into analysis.
This will be used to enable us to see more data anomalies earlier, and lift that information directly into the generated reports.</p><p>A new feature is now under implementation -- the ability to provide comparative analysis of multi-run batches.
Previously we only had automation for two aspects separately, so we only could either:</p><ul><li>compare individual runs (used for different node configurations / versions)</li><li>collect variance statistics from a batch of runs (used to enhance statistical confidence for a single node configuration / version)
Naturally, combining these two capabilities was a long-desired feature of our analysis pipeline.</li></ul></div><footer class="row docusaurus-mt-lg blogPostFooterDetailsFull_mRVl"><div class="col"><b>Tags:</b><ul class="tags_jXut padding--none margin-left--sm"><li class="tag_QGVx"><a class="tag_zVej tagRegular_sFm0" href="/cardano-updates/tags/performance-tracing">performance-tracing</a></li></ul></div><div class="col margin-top--sm"><a href="https://github.com/input-output-hk/cardano-updates/tree/main/blog/2022-12-14-performance-and-tracing.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Blog post page navigation"><a class="pagination-nav__link pagination-nav__link--prev" href="/cardano-updates/2022-12-14-node-cli-api"><div class="pagination-nav__sublabel">Newer Post</div><div class="pagination-nav__label">Node API & CLI Team Update</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/cardano-updates/2022-12-12-network"><div class="pagination-nav__sublabel">Older Post</div><div class="pagination-nav__label">Network Team Update</div></a></nav></main><div class="col col--2"><div class="tableOfContents_bqdL thin-scrollbar"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#high-level-summary" class="table-of-contents__link toc-highlight">High level summary</a></li><li><a href="#performance" class="table-of-contents__link toc-highlight">Performance</a></li><li><a href="#tracing" class="table-of-contents__link toc-highlight">Tracing</a></li><li><a href="#infrastructure" class="table-of-contents__link toc-highlight">Infrastructure</a></li></ul></div></div></div></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Blog</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/cardano-updates/">Home</a></li><li class="footer__item"><a class="footer__link-item" href="/cardano-updates/archive">Archive</a></li><li class="footer__item"><a class="footer__link-item" href="/cardano-updates/tags">Tags</a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2023 Input Output Global, Inc. Built with Docusaurus.</div></div></div></footer></div>
<script src="/cardano-updates/assets/js/runtime~main.1282f806.js"></script>
<script src="/cardano-updates/assets/js/main.870ab849.js"></script>
</body>
</html>