{"id":233,"date":"2021-04-08T08:59:01","date_gmt":"2021-04-08T08:59:01","guid":{"rendered":"https:\/\/projects.algolysis.com\/erato-vr\/?page_id=233"},"modified":"2021-04-21T05:58:36","modified_gmt":"2021-04-21T05:58:36","slug":"results","status":"publish","type":"page","link":"https:\/\/projects.algolysis.com\/erato-vr\/results\/","title":{"rendered":"Results"},"content":{"rendered":"\n<h2 class=\"has-color-intro-overlay-background-mod-color has-text-color\">Experimental Evaluation Charts<\/h2>\n\n\n<div class=\"alignwide-wrap\" data-block=\"columns\">\n<div class=\"wp-block-columns alignwide\">\n<div class=\"wp-block-column\" style=\"flex-basis:100%\">\n<p>To evaluate the resulted PoC implementation, we devised and executed multiple scenarios where each was focused on one of the following four performance parameters:<\/p>\n\n\n\n<ul id=\"block-25a2bb38-885e-4787-bcac-1f6f2685dccc\"><li>The manipulation of the number of participants in order to test the scalability of the service;<\/li><li>The timing of the actions of the participants on the virtual objects in order to test the performance of the service in high or low concurrency;<\/li><li>The fault-tolerance of the service, by introducing crash-failures in the system and observing how they affect the performance of the overall deployment;<\/li><li>The network &amp; processing capabilities effect on the service, when manipulating the location and processing capabilities of each of the participating servers.<\/li><\/ul>\n\n\n\n<p>Our findings can be observed through the various charts shown in the dashboard bellow. The dashboard is interactive, thus, one can change various scenario parameters at a time (i.e., Topology, Servers, Leaders, Type etc.) to further investigate the results. Please notice that the combination of some parameters may not have been executed as scenarios from our side yet, thus, yield a &#8220;No Data&#8221; message on the chart(s).<\/p>\n<\/div>\n<\/div>\n<\/div>\n\n\n<div class=\"wp-block-columns\">\n<div class=\"wp-block-column\" style=\"flex-basis:100%\">\n<div class=\"wp-block-columns alignfull\">\n<div class=\"wp-block-column\" style=\"flex-basis:100%\">\n<iframe loading=\"lazy\" id=\"resultsFrame\" style=\"display:block; margin: auto; text-align:center;\" src=\"https:\/\/projects.algolysis.com\/grafana\/d\/ZCVaIf_Mk\/eratovr-experiments?orgId=1&amp;from=0&amp;to=120000&amp;var-topology=rpis&amp;var-type=stoch&amp;var-servers=3&amp;var-leaders=1&amp;var-followers=10&amp;var-dsmis=3&amp;var-min_interval=0.25&amp;var-max_interval=1.0&amp;var-fails=2&amp;var-op_type=read&amp;theme=light&amp;kiosk\" width=\"90%;\" height=\"1280px;\" frameborder=\"0\">\n<\/iframe>\n\n<script type=\"text\/javascript\">\nwindow.onload = function() {\nsetInterval(function () {\n\n  let frameElement = document.getElementById(\"resultsFrame\");\n  let doc = frameElement.contentDocument;\n  doc.body.innerHTML = doc.body.innerHTML + '<style>.submenu-controls{display:flex !important;}<\/style>';\n\n}, 7000);\n}\n\n<\/script>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<h2 class=\"has-color-intro-overlay-background-mod-color has-text-color\">NVE Interface Executions Videos<\/h2>\n\n\n<div class=\"alignwide-wrap\" data-block=\"media-text\">\n<div class=\"wp-block-media-text alignwide is-stacked-on-mobile\"><figure class=\"wp-block-media-text__media\"><video controls src=\"https:\/\/projects.algolysis.com\/erato-vr\/wp-content\/uploads\/2021\/04\/AWS_L5_F5.mov\"><\/video><\/figure><div class=\"wp-block-media-text__content\">\n<p class=\"has-large-font-size\">Demonstration of an Execution of the NVE<\/p>\n\n\n\n<p class=\"has-text-align-left\">What we see in the video is an execution of the NVE where the DSM service was deployed on <strong>three<\/strong> distinct nodes from Amazon Web Services (AWS). Using <strong>three<\/strong> nodes for the DSM, results in having in total three majority quorums with ids [q0,q1,q2]. In the scenario we have 5 Leader drones each one having 5 Follower drones resulting in total |L| + (|L|x|F|) =  5 + (5 x 5) = 30 participants in the service. The invocation scheme is <strong>stochastic<\/strong>, and read and write operations at each participant will be invoked at an interval generated randomly from the range [0.25&#8230;1]. The total execution time will be 120 seconds. <\/p>\n\n\n\n<p><strong>Follower Drone Coloring:<\/strong> Each time a follower drone completes a read operation, it changes its color to the color associated with the quorum it responded to it last.<\/p>\n\n\n\n<p><strong>Leader Drone Coloring:<\/strong> Initially a leaders color is black. Each time a leader drone invokes a write operation it colors itself with the blue color until the write operation terminates. Upon termination, it sets its color back to black until it invokes the next write operation. <\/p>\n<\/div><\/div>\n<\/div>\n\n<div class=\"alignwide-wrap\" data-block=\"media-text\">\n<div class=\"wp-block-media-text alignwide has-media-on-the-right is-stacked-on-mobile is-vertically-aligned-center\" style=\"grid-template-columns:auto 49%\"><figure class=\"wp-block-media-text__media\"><video controls src=\"https:\/\/projects.algolysis.com\/erato-vr\/wp-content\/uploads\/2021\/04\/RPIS_L1_F4_Fails2.mov\"><\/video><\/figure><div class=\"wp-block-media-text__content\">\n<p class=\"has-large-font-size\">Fault-Tolerance Demonstration<\/p>\n\n\n\n<p>This video shows an execution of the NVE where the DSM service was deployed on <strong>five<\/strong> distinct Raspberry Pi nodes hosted by the Algolysis LTD (HO). Using <strong>five<\/strong> nodes for the DSM, results in having in total <strong>ten<\/strong> majority quorums with ids [q0,q1&#8230;q9] and assigned coloring as shown in <strong>Table 1<\/strong>. In this scenario we have 1 Leader drone being followed by 5 Follower drones resulting in total 6 participants in the service. The invocation scheme is <strong>stochastic<\/strong>, and read and write operations at each participant will be invoked at an interval generated randomly from the range [0.25&#8230;1]. The total execution time will be 120 seconds.<\/p>\n\n\n\n<p>To visualize the fault tolerance guarantees of the underlying DSM service, in this particular execution, two replica crashes take place. In particular, right at time 0:45, replica <strong>serverA<\/strong> is killed. Replica <strong>serverA<\/strong> belongs to 6 quorums, with IDs<strong> [q0, q1, q2, q3, q4, q5]<\/strong>. Thus, right after the 0:45 minutes we can observe that no follower drone will color itself with the colors associated to quorums <strong>[q0, q1, q2, q3, q4, q5]<\/strong>.  At time 1:45, <strong>serverB<\/strong>, that belongs to quorums <strong>[q0, q1, q2, q6, q7, q8 ]<\/strong> is killed. We observe that right after time 1:45, all quorums are faulty <strong>except<\/strong> quorum <strong>q9<\/strong>, thus, from that time on until the end of the execution, all followers complete their read operations by receiving replies only from the non-faulty quorum, <strong>q9<\/strong>.<\/p>\n<\/div><\/div>\n<\/div>\n\n<div class=\"alignwide-wrap\" data-block=\"table\">\n<figure class=\"wp-block-table alignwide is-style-stripes\"><table class=\"has-subtle-light-gray-background-color has-background\"><thead><tr><th>Q_ID &amp; Color<\/th><th>Participants<\/th><th><strong>Q_ID &amp; Color<\/strong><\/th><th>Participants<\/th><\/tr><\/thead><tbody><tr><td><span style=\"color:#371d10\" class=\"has-inline-color\"><strong>q0<\/strong><\/span><\/td><td><strong><span style=\"color:#d30f05\" class=\"has-inline-color\">serverA<\/span><\/strong><span class=\"has-inline-color has-color-header-headings-mod-color\">, <\/span><strong><span style=\"color:#d30f05\" class=\"has-inline-color\">serverB<\/span><\/strong><span class=\"has-inline-color has-color-header-headings-mod-color\">, serverC<\/span><\/td><td><strong><span style=\"color:#cfc501\" class=\"has-inline-color\">q5<\/span><\/strong><\/td><td><strong><span style=\"color:#d30f05\" class=\"has-inline-color\">serverA<\/span><\/strong><span class=\"has-inline-color has-color-header-headings-mod-color\">, serverD, serverE<\/span><\/td><\/tr><tr><td><span style=\"color:#00a30f\" class=\"has-inline-color\"><strong>q1<\/strong><\/span><\/td><td><strong><span style=\"color:#d30f05\" class=\"has-inline-color\">serverA<\/span><\/strong><span class=\"has-inline-color has-color-header-headings-mod-color\">, <\/span><strong><span style=\"color:#d30f05\" class=\"has-inline-color\">serverB<\/span><\/strong><span class=\"has-inline-color has-color-header-headings-mod-color\">, serverD<\/span><\/td><td><span style=\"color:#d2691e\" class=\"has-inline-color\"><strong>q6<\/strong><\/span><\/td><td><strong><span style=\"color:#d30f05\" class=\"has-inline-color\">serverB<\/span><\/strong><span class=\"has-inline-color has-color-header-headings-mod-color\">, serverC, serverD<\/span><\/td><\/tr><tr><td><span style=\"color:#a200a3\" class=\"has-inline-color\"><strong>q2<\/strong><\/span><\/td><td><strong><span style=\"color:#d30f05\" class=\"has-inline-color\">serverA<\/span><\/strong><span class=\"has-inline-color has-color-header-headings-mod-color\">, <\/span><strong><span style=\"color:#d30f05\" class=\"has-inline-color\">serverB<\/span><\/strong><span class=\"has-inline-color has-color-header-headings-mod-color\">, serverE<\/span><\/td><td><strong><span style=\"color:#31073b\" class=\"has-inline-color\">q7<\/span><\/strong><\/td><td><strong><span style=\"color:#d30f05\" class=\"has-inline-color\">serverB<\/span><\/strong><span class=\"has-inline-color has-color-header-headings-mod-color\">, serverC, serverE<\/span><\/td><\/tr><tr><td><strong><span style=\"color:#00a39d\" class=\"has-inline-color\">q3<\/span><\/strong><\/td><td><strong><span style=\"color:#d30f05\" class=\"has-inline-color\">serverA<\/span><\/strong><span class=\"has-inline-color has-color-header-headings-mod-color\">, serverC, serverD<\/span><\/td><td><strong><span style=\"color:#d30f05\" class=\"has-inline-color\">q8<\/span><\/strong><\/td><td><strong><span style=\"color:#d30f05\" class=\"has-inline-color\">serverB<\/span><\/strong><span class=\"has-inline-color has-color-header-headings-mod-color\">, serverD, serverE<\/span><\/td><\/tr><tr><td><strong><span style=\"color:#0a2896\" class=\"has-inline-color\">q4<\/span><\/strong><\/td><td><strong><span style=\"color:#d30f05\" class=\"has-inline-color\">serverA<\/span><\/strong><span class=\"has-inline-color has-color-header-headings-mod-color\">, serverC, serverE<\/span><\/td><td><span style=\"color:#ff4270\" class=\"has-inline-color\"><strong>q9<\/strong><\/span><\/td><td><span class=\"has-inline-color has-color-header-headings-mod-color\">serverC, serverD, serverE<\/span><\/td><\/tr><\/tbody><\/table><figcaption>TABLE 1 &#8211; The 10 DIstinct Majority quorums created from 5 replica servers of the dsm service. their participation and their coloring. We color With red color  the replica servers of the service that will be crashed<\/figcaption><\/figure>\n<\/div>","protected":false},"excerpt":{"rendered":"<div class=\"entry-summary\">\n<div class=\"entry-summary\">\nExperimental Evaluation Charts To evaluate the resulted PoC implementation, we devised and executed multiple scenarios where each was focused on one of the following four performance parameters: The manipulation of the number of participants in order to test the scalability&hellip;\n<\/div>\n<div class=\"link-more\"><a href=\"https:\/\/projects.algolysis.com\/erato-vr\/results\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &ldquo;Results&rdquo;<\/span>&hellip;<\/a><\/div>\n<\/div>\n<div class=\"link-more\"><a href=\"https:\/\/projects.algolysis.com\/erato-vr\/results\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &ldquo;Results&rdquo;<\/span>&hellip;<\/a><\/div>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"spay_email":""},"jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/projects.algolysis.com\/erato-vr\/wp-json\/wp\/v2\/pages\/233"}],"collection":[{"href":"https:\/\/projects.algolysis.com\/erato-vr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/projects.algolysis.com\/erato-vr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/projects.algolysis.com\/erato-vr\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/projects.algolysis.com\/erato-vr\/wp-json\/wp\/v2\/comments?post=233"}],"version-history":[{"count":106,"href":"https:\/\/projects.algolysis.com\/erato-vr\/wp-json\/wp\/v2\/pages\/233\/revisions"}],"predecessor-version":[{"id":396,"href":"https:\/\/projects.algolysis.com\/erato-vr\/wp-json\/wp\/v2\/pages\/233\/revisions\/396"}],"wp:attachment":[{"href":"https:\/\/projects.algolysis.com\/erato-vr\/wp-json\/wp\/v2\/media?parent=233"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}