{"id":46545,"date":"2017-05-17T00:00:00","date_gmt":"2017-05-17T07:00:00","guid":{"rendered":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/blog\/autonomous-data-distribution-algorithm\/"},"modified":"2026-01-30T22:28:41","modified_gmt":"2026-01-31T06:28:41","slug":"autonomous-data-distribution-algorithm","status":"publish","type":"post","link":"https:\/\/www.griddb.net\/en\/blog\/autonomous-data-distribution-algorithm\/","title":{"rendered":"Autonomous Data Distribution Algorithm"},"content":{"rendered":"<p>The Autonomous Data Distribution Algorithm &#8212; or ADDA &#8212; is what makes GridDB both scalable and reliable. When a node fails or a user adds a new node to the cluster, ADDA transfers data between nodes ensuring nodes are balanced and that the configured number of data replicas are stored.<\/p>\n<h2>Node Failure<\/h2>\n<p>When a node fails, the cluster&#8217;s Master detects the failure and promotes all of the backup partitions to become partition owners. At this point, ADDA kicks in and instructs nodes to make replicas of partitions to ensure that the configured number of replicas are being stored.<\/p>\n<p class=\"ta-c\">\n  <img fetchpriority=\"high\" decoding=\"async\" class=\"aligncenter size-full wp-image-509\" src=\"https:\/\/griddb.net\/wp-content\/uploads\/2017\/05\/nodefailure.png\" alt=\"\" width=\"635\" height=\"469\" \/>\n<\/p>\n<h2>Adding a Node<\/h2>\n<p>When a new node is added, it enters the cluster as a catch up node for a certain partition. ADDA transfers data to it and it is promoted to backup node. Should the primary node holding that partition fail, it will be promoted again to the master node for a partition. With this mechanism, all the nodes in the cluster will have the same load allowing GridDB to be highly scalable.<\/p>\n<p class=\"ta-c\">\n  <img decoding=\"async\" class=\"aligncenter wp-image-508 size-full\" src=\"https:\/\/griddb.net\/wp-content\/uploads\/2017\/05\/longterm.png\" alt=\"\" width=\"683\" height=\"718\" \/>\n<\/p>\n<h2>Two Phase Data Transfer To efficiently transfer data between hosts and not lose updates to the data transferred, ADDA transfers in two stages. First a high speed block transfer and then it applies Redo Logs.<\/h2>\n<p class=\"ta-c\">\n  <img decoding=\"async\" class=\"aligncenter wp-image-510 size-full\" src=\"https:\/\/griddb.net\/wp-content\/uploads\/2017\/05\/twophase-1.png\" alt=\"\" width=\"707\" height=\"557\" \/>\n<\/p>\n<p>GridDB&#8217;s utilization of ADDA helps keep its large clusters operating reliably and help with on-the-fly scalability. If you would like to learn more about ADDA and the other features which maintain GridDB&#8217;s reliability, please take a look at our white paper linked below.  \u00a0<\/p>\n<div>\n<h2>\n    More Resources<br \/>\n  <\/h2>\n<p>    <img decoding=\"async\" src=\"\/common\/img\/icons\/icon_pdf_download.svg\" alt=\"PDF\" style=\"height:20px\" \/>The full report can be downloaded here:\u00a0<a href=\"\/en\/docs\/GridDB_Reliability_and_Robustness_1.0.7.pdf\">https:\/\/griddb.net\/en\/docs\/GridDB_Reliability_and_Robustness_1.0.7.pdf<\/a><\/p>\n<p>    <img decoding=\"async\" src=\"\/common\/img\/icons\/icon_rpm.svg\" alt=\"RPM\" style=\"height:20px\" \/>The GridDB Community Edition (v3.0.0) can be downloaded from <a href=\"https:\/\/github.com\/griddb\/griddb_nosql\/releases\/download\/v3.0.0\/griddb_nosql-3.0.0-1.linux.x86_64.rpm\">GitHub<\/a>.<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>The Autonomous Data Distribution Algorithm &#8212; or ADDA &#8212; is what makes GridDB both scalable and reliable. When a node fails or a user adds a new node to the cluster, ADDA transfers data between nodes ensuring nodes are balanced and that the configured number of data replicas are stored. Node Failure When a node [&hellip;]<\/p>\n","protected":false},"author":71,"featured_media":22030,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[121],"tags":[],"class_list":["post-46545","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Autonomous Data Distribution Algorithm | GridDB: Open Source Time Series Database for IoT<\/title>\n<meta name=\"description\" content=\"The Autonomous Data Distribution Algorithm -- or ADDA -- is what makes GridDB both scalable and reliable. When a node fails or a user adds a new node to\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/griddb.net\/en\/blog\/autonomous-data-distribution-algorithm\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Autonomous Data Distribution Algorithm | GridDB: Open Source Time Series Database for IoT\" \/>\n<meta property=\"og:description\" content=\"The Autonomous Data Distribution Algorithm -- or ADDA -- is what makes GridDB both scalable and reliable. When a node fails or a user adds a new node to\" \/>\n<meta property=\"og:url\" content=\"https:\/\/griddb.net\/en\/blog\/autonomous-data-distribution-algorithm\/\" \/>\n<meta property=\"og:site_name\" content=\"GridDB: Open Source Time Series Database for IoT\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/griddbcommunity\/\" \/>\n<meta property=\"article:published_time\" content=\"2017-05-17T07:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-01-31T06:28:41+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.griddb.net\/wp-content\/uploads\/2017\/05\/blog_title_10.png\" \/>\n\t<meta property=\"og:image:width\" content=\"870\" \/>\n\t<meta property=\"og:image:height\" content=\"490\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Owen\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@GridDBCommunity\" \/>\n<meta name=\"twitter:site\" content=\"@GridDBCommunity\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Owen\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/griddb.net\/en\/blog\/autonomous-data-distribution-algorithm\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/griddb.net\/en\/blog\/autonomous-data-distribution-algorithm\/\"},\"author\":{\"name\":\"Owen\",\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#\/schema\/person\/0f2f6d4b593adde8c43cf3ea5c794c66\"},\"headline\":\"Autonomous Data Distribution Algorithm\",\"datePublished\":\"2017-05-17T07:00:00+00:00\",\"dateModified\":\"2026-01-31T06:28:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/griddb.net\/en\/blog\/autonomous-data-distribution-algorithm\/\"},\"wordCount\":286,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#organization\"},\"image\":{\"@id\":\"https:\/\/griddb.net\/en\/blog\/autonomous-data-distribution-algorithm\/#primaryimage\"},\"thumbnailUrl\":\"\/wp-content\/uploads\/2017\/05\/blog_title_10.png\",\"articleSection\":[\"Blog\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/griddb.net\/en\/blog\/autonomous-data-distribution-algorithm\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/griddb.net\/en\/blog\/autonomous-data-distribution-algorithm\/\",\"url\":\"https:\/\/griddb.net\/en\/blog\/autonomous-data-distribution-algorithm\/\",\"name\":\"Autonomous Data Distribution Algorithm | GridDB: Open Source Time Series Database for IoT\",\"isPartOf\":{\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/griddb.net\/en\/blog\/autonomous-data-distribution-algorithm\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/griddb.net\/en\/blog\/autonomous-data-distribution-algorithm\/#primaryimage\"},\"thumbnailUrl\":\"\/wp-content\/uploads\/2017\/05\/blog_title_10.png\",\"datePublished\":\"2017-05-17T07:00:00+00:00\",\"dateModified\":\"2026-01-31T06:28:41+00:00\",\"description\":\"The Autonomous Data Distribution Algorithm -- or ADDA -- is what makes GridDB both scalable and reliable. When a node fails or a user adds a new node to\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/griddb.net\/en\/blog\/autonomous-data-distribution-algorithm\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/griddb.net\/en\/blog\/autonomous-data-distribution-algorithm\/#primaryimage\",\"url\":\"\/wp-content\/uploads\/2017\/05\/blog_title_10.png\",\"contentUrl\":\"\/wp-content\/uploads\/2017\/05\/blog_title_10.png\",\"width\":870,\"height\":490},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#website\",\"url\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/\",\"name\":\"GridDB: Open Source Time Series Database for IoT\",\"description\":\"GridDB is an open source time-series database with the performance of NoSQL and convenience of SQL\",\"publisher\":{\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#organization\",\"name\":\"Fixstars\",\"url\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/griddb.net\/wp-content\/uploads\/2019\/04\/fixstars_logo_web_tagline.png\",\"contentUrl\":\"https:\/\/griddb.net\/wp-content\/uploads\/2019\/04\/fixstars_logo_web_tagline.png\",\"width\":200,\"height\":83,\"caption\":\"Fixstars\"},\"image\":{\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/griddbcommunity\/\",\"https:\/\/x.com\/GridDBCommunity\",\"https:\/\/www.linkedin.com\/company\/griddb-by-toshiba\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#\/schema\/person\/0f2f6d4b593adde8c43cf3ea5c794c66\",\"name\":\"Owen\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/47438a5c81215c7a9043be1b427e0bbd8dc0f77bd536f147f8495575149e4325?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/47438a5c81215c7a9043be1b427e0bbd8dc0f77bd536f147f8495575149e4325?s=96&d=mm&r=g\",\"caption\":\"Owen\"},\"url\":\"https:\/\/www.griddb.net\/en\/author\/owen\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Autonomous Data Distribution Algorithm | GridDB: Open Source Time Series Database for IoT","description":"The Autonomous Data Distribution Algorithm -- or ADDA -- is what makes GridDB both scalable and reliable. When a node fails or a user adds a new node to","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/griddb.net\/en\/blog\/autonomous-data-distribution-algorithm\/","og_locale":"en_US","og_type":"article","og_title":"Autonomous Data Distribution Algorithm | GridDB: Open Source Time Series Database for IoT","og_description":"The Autonomous Data Distribution Algorithm -- or ADDA -- is what makes GridDB both scalable and reliable. When a node fails or a user adds a new node to","og_url":"https:\/\/griddb.net\/en\/blog\/autonomous-data-distribution-algorithm\/","og_site_name":"GridDB: Open Source Time Series Database for IoT","article_publisher":"https:\/\/www.facebook.com\/griddbcommunity\/","article_published_time":"2017-05-17T07:00:00+00:00","article_modified_time":"2026-01-31T06:28:41+00:00","og_image":[{"width":870,"height":490,"url":"https:\/\/www.griddb.net\/wp-content\/uploads\/2017\/05\/blog_title_10.png","type":"image\/png"}],"author":"Owen","twitter_card":"summary_large_image","twitter_creator":"@GridDBCommunity","twitter_site":"@GridDBCommunity","twitter_misc":{"Written by":"Owen","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/griddb.net\/en\/blog\/autonomous-data-distribution-algorithm\/#article","isPartOf":{"@id":"https:\/\/griddb.net\/en\/blog\/autonomous-data-distribution-algorithm\/"},"author":{"name":"Owen","@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#\/schema\/person\/0f2f6d4b593adde8c43cf3ea5c794c66"},"headline":"Autonomous Data Distribution Algorithm","datePublished":"2017-05-17T07:00:00+00:00","dateModified":"2026-01-31T06:28:41+00:00","mainEntityOfPage":{"@id":"https:\/\/griddb.net\/en\/blog\/autonomous-data-distribution-algorithm\/"},"wordCount":286,"commentCount":0,"publisher":{"@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#organization"},"image":{"@id":"https:\/\/griddb.net\/en\/blog\/autonomous-data-distribution-algorithm\/#primaryimage"},"thumbnailUrl":"\/wp-content\/uploads\/2017\/05\/blog_title_10.png","articleSection":["Blog"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/griddb.net\/en\/blog\/autonomous-data-distribution-algorithm\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/griddb.net\/en\/blog\/autonomous-data-distribution-algorithm\/","url":"https:\/\/griddb.net\/en\/blog\/autonomous-data-distribution-algorithm\/","name":"Autonomous Data Distribution Algorithm | GridDB: Open Source Time Series Database for IoT","isPartOf":{"@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/griddb.net\/en\/blog\/autonomous-data-distribution-algorithm\/#primaryimage"},"image":{"@id":"https:\/\/griddb.net\/en\/blog\/autonomous-data-distribution-algorithm\/#primaryimage"},"thumbnailUrl":"\/wp-content\/uploads\/2017\/05\/blog_title_10.png","datePublished":"2017-05-17T07:00:00+00:00","dateModified":"2026-01-31T06:28:41+00:00","description":"The Autonomous Data Distribution Algorithm -- or ADDA -- is what makes GridDB both scalable and reliable. When a node fails or a user adds a new node to","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/griddb.net\/en\/blog\/autonomous-data-distribution-algorithm\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/griddb.net\/en\/blog\/autonomous-data-distribution-algorithm\/#primaryimage","url":"\/wp-content\/uploads\/2017\/05\/blog_title_10.png","contentUrl":"\/wp-content\/uploads\/2017\/05\/blog_title_10.png","width":870,"height":490},{"@type":"WebSite","@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#website","url":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/","name":"GridDB: Open Source Time Series Database for IoT","description":"GridDB is an open source time-series database with the performance of NoSQL and convenience of SQL","publisher":{"@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#organization","name":"Fixstars","url":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#\/schema\/logo\/image\/","url":"https:\/\/griddb.net\/wp-content\/uploads\/2019\/04\/fixstars_logo_web_tagline.png","contentUrl":"https:\/\/griddb.net\/wp-content\/uploads\/2019\/04\/fixstars_logo_web_tagline.png","width":200,"height":83,"caption":"Fixstars"},"image":{"@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/griddbcommunity\/","https:\/\/x.com\/GridDBCommunity","https:\/\/www.linkedin.com\/company\/griddb-by-toshiba"]},{"@type":"Person","@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#\/schema\/person\/0f2f6d4b593adde8c43cf3ea5c794c66","name":"Owen","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/47438a5c81215c7a9043be1b427e0bbd8dc0f77bd536f147f8495575149e4325?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/47438a5c81215c7a9043be1b427e0bbd8dc0f77bd536f147f8495575149e4325?s=96&d=mm&r=g","caption":"Owen"},"url":"https:\/\/www.griddb.net\/en\/author\/owen\/"}]}},"_links":{"self":[{"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/posts\/46545","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/users\/71"}],"replies":[{"embeddable":true,"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/comments?post=46545"}],"version-history":[{"count":2,"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/posts\/46545\/revisions"}],"predecessor-version":[{"id":54982,"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/posts\/46545\/revisions\/54982"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/media\/22030"}],"wp:attachment":[{"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/media?parent=46545"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/categories?post=46545"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/tags?post=46545"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}