You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by gi...@apache.org on 2023/06/26 12:45:08 UTC

[arrow-site] branch asf-site updated: Updating built site (build e2b078bdd599b211e4adf60e9a2ffe855a103014)

This is an automated email from the ASF dual-hosted git repository.

github-bot pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/arrow-site.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new 585eabc761d Updating built site (build e2b078bdd599b211e4adf60e9a2ffe855a103014)
585eabc761d is described below

commit 585eabc761d0dc07a4b439ffa65eb0c960e63e91
Author: Laurent Quérel <l....@f5.com>
AuthorDate: Mon Jun 26 12:45:01 2023 +0000

    Updating built site (build e2b078bdd599b211e4adf60e9a2ffe855a103014)
---
 .../index.html                                     | 458 +++++++++++++++++++++
 blog/index.html                                    |  15 +
 docs/c_glib/index.html                             |   4 +-
 feed.xml                                           | 392 ++++++++----------
 .../adaptive-schema-architecture.svg               |   1 +
 .../compressed-message-size.png                    | Bin 0 -> 125781 bytes
 .../memory-usage-25k-traces.png                    | Bin 0 -> 94830 bytes
 img/journey-apache-arrow/metric-dp-data-model.png  | Bin 0 -> 173162 bytes
 .../recursive-def-otel-attributes.svg              |   1 +
 release/0.1.0.html                                 |   4 +-
 release/0.10.0.html                                |   4 +-
 release/0.11.0.html                                |   4 +-
 release/0.11.1.html                                |   4 +-
 release/0.12.0.html                                |   4 +-
 release/0.13.0.html                                |   4 +-
 release/0.14.0.html                                |   4 +-
 release/0.14.1.html                                |   4 +-
 release/0.15.0.html                                |   4 +-
 release/0.15.1.html                                |   4 +-
 release/0.16.0.html                                |   4 +-
 release/0.17.0.html                                |   4 +-
 release/0.17.1.html                                |   4 +-
 release/0.2.0.html                                 |   4 +-
 release/0.3.0.html                                 |   4 +-
 release/0.4.0.html                                 |   4 +-
 release/0.4.1.html                                 |   4 +-
 release/0.5.0.html                                 |   4 +-
 release/0.6.0.html                                 |   4 +-
 release/0.7.0.html                                 |   4 +-
 release/0.7.1.html                                 |   4 +-
 release/0.8.0.html                                 |   4 +-
 release/0.9.0.html                                 |   4 +-
 release/1.0.0.html                                 |   4 +-
 release/1.0.1.html                                 |   4 +-
 release/10.0.0.html                                |   4 +-
 release/10.0.1.html                                |   4 +-
 release/11.0.0.html                                |   4 +-
 release/12.0.0.html                                |   4 +-
 release/12.0.1.html                                |   4 +-
 release/2.0.0.html                                 |   4 +-
 release/3.0.0.html                                 |   4 +-
 release/4.0.0.html                                 |   4 +-
 release/4.0.1.html                                 |   4 +-
 release/5.0.0.html                                 |   4 +-
 release/6.0.0.html                                 |   4 +-
 release/6.0.1.html                                 |   4 +-
 release/7.0.0.html                                 |   4 +-
 release/8.0.0.html                                 |   4 +-
 release/9.0.0.html                                 |   4 +-
 release/index.html                                 |   4 +-
 50 files changed, 741 insertions(+), 294 deletions(-)

diff --git a/blog/2023/06/15/our-journey-at-f5-with-apache-arrow-part-2/index.html b/blog/2023/06/15/our-journey-at-f5-with-apache-arrow-part-2/index.html
new file mode 100644
index 00000000000..775f1ecc340
--- /dev/null
+++ b/blog/2023/06/15/our-journey-at-f5-with-apache-arrow-part-2/index.html
@@ -0,0 +1,458 @@
+<!DOCTYPE html>
+<html lang="en-US">
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <!-- The above meta tags *must* come first in the head; any other head content must come *after* these tags -->
+    
+    <title>Our journey at F5 with Apache Arrow (part 2): Adaptive Schemas and Sorting to Optimize Arrow Usage | Apache Arrow</title>
+    
+
+    <!-- Begin Jekyll SEO tag v2.8.0 -->
+<meta name="generator" content="Jekyll v4.2.0" />
+<meta property="og:title" content="Our journey at F5 with Apache Arrow (part 2): Adaptive Schemas and Sorting to Optimize Arrow Usage" />
+<meta name="author" content="Laurent Quérel" />
+<meta property="og:locale" content="en_US" />
+<meta name="description" content="In the previous article, we discussed our use of Apache Arrow within the context of the OpenTelemetry project. We investigated various techniques to maximize the efficiency of Apache Arrow, aiming to find the optimal balance between data compression ratio and queryability. The compression results speak for themselves, boasting improvements ranging from 1.5x to 5x better than the original OTLP protocol. In this article, we will delve into three techniques [...]
+<meta property="og:description" content="In the previous article, we discussed our use of Apache Arrow within the context of the OpenTelemetry project. We investigated various techniques to maximize the efficiency of Apache Arrow, aiming to find the optimal balance between data compression ratio and queryability. The compression results speak for themselves, boasting improvements ranging from 1.5x to 5x better than the original OTLP protocol. In this article, we will delve into three tec [...]
+<link rel="canonical" href="https://arrow.apache.org/blog/2023/06/15/our-journey-at-f5-with-apache-arrow-part-2/" />
+<meta property="og:url" content="https://arrow.apache.org/blog/2023/06/15/our-journey-at-f5-with-apache-arrow-part-2/" />
+<meta property="og:site_name" content="Apache Arrow" />
+<meta property="og:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
+<meta property="og:type" content="article" />
+<meta property="article:published_time" content="2023-06-15T00:00:00-04:00" />
+<meta name="twitter:card" content="summary_large_image" />
+<meta property="twitter:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
+<meta property="twitter:title" content="Our journey at F5 with Apache Arrow (part 2): Adaptive Schemas and Sorting to Optimize Arrow Usage" />
+<meta name="twitter:site" content="@ApacheArrow" />
+<meta name="twitter:creator" content="@Laurent Quérel" />
+<script type="application/ld+json">
+{"@context":"https://schema.org","@type":"BlogPosting","author":{"@type":"Person","name":"Laurent Quérel"},"dateModified":"2023-06-15T00:00:00-04:00","datePublished":"2023-06-15T00:00:00-04:00","description":"In the previous article, we discussed our use of Apache Arrow within the context of the OpenTelemetry project. We investigated various techniques to maximize the efficiency of Apache Arrow, aiming to find the optimal balance between data compression ratio and queryability. The compr [...]
+<!-- End Jekyll SEO tag -->
+
+
+    <!-- favicons -->
+    <link rel="icon" type="image/png" sizes="16x16" href="/img/favicon-16x16.png" id="light1">
+    <link rel="icon" type="image/png" sizes="32x32" href="/img/favicon-32x32.png" id="light2">
+    <link rel="apple-touch-icon" type="image/png" sizes="180x180" href="/img/apple-touch-icon.png" id="light3">
+    <link rel="apple-touch-icon" type="image/png" sizes="120x120" href="/img/apple-touch-icon-120x120.png" id="light4">
+    <link rel="apple-touch-icon" type="image/png" sizes="76x76" href="/img/apple-touch-icon-76x76.png" id="light5">
+    <link rel="apple-touch-icon" type="image/png" sizes="60x60" href="/img/apple-touch-icon-60x60.png" id="light6">
+    <!-- dark mode favicons -->
+    <link rel="icon" type="image/png" sizes="16x16" href="/img/favicon-16x16-dark.png" id="dark1">
+    <link rel="icon" type="image/png" sizes="32x32" href="/img/favicon-32x32-dark.png" id="dark2">
+    <link rel="apple-touch-icon" type="image/png" sizes="180x180" href="/img/apple-touch-icon-dark.png" id="dark3">
+    <link rel="apple-touch-icon" type="image/png" sizes="120x120" href="/img/apple-touch-icon-120x120-dark.png" id="dark4">
+    <link rel="apple-touch-icon" type="image/png" sizes="76x76" href="/img/apple-touch-icon-76x76-dark.png" id="dark5">
+    <link rel="apple-touch-icon" type="image/png" sizes="60x60" href="/img/apple-touch-icon-60x60-dark.png" id="dark6">
+
+    <script>
+      // Switch to the dark-mode favicons if prefers-color-scheme: dark
+      function onUpdate() {
+        light1 = document.querySelector('link#light1');
+        light2 = document.querySelector('link#light2');
+        light3 = document.querySelector('link#light3');
+        light4 = document.querySelector('link#light4');
+        light5 = document.querySelector('link#light5');
+        light6 = document.querySelector('link#light6');
+
+        dark1 = document.querySelector('link#dark1');
+        dark2 = document.querySelector('link#dark2');
+        dark3 = document.querySelector('link#dark3');
+        dark4 = document.querySelector('link#dark4');
+        dark5 = document.querySelector('link#dark5');
+        dark6 = document.querySelector('link#dark6');
+
+        if (matcher.matches) {
+          light1.remove();
+          light2.remove();
+          light3.remove();
+          light4.remove();
+          light5.remove();
+          light6.remove();
+          document.head.append(dark1);
+          document.head.append(dark2);
+          document.head.append(dark3);
+          document.head.append(dark4);
+          document.head.append(dark5);
+          document.head.append(dark6);
+        } else {
+          dark1.remove();
+          dark2.remove();
+          dark3.remove();
+          dark4.remove();
+          dark5.remove();
+          dark6.remove();
+          document.head.append(light1);
+          document.head.append(light2);
+          document.head.append(light3);
+          document.head.append(light4);
+          document.head.append(light5);
+          document.head.append(light6);
+        }
+      }
+      matcher = window.matchMedia('(prefers-color-scheme: dark)');
+      matcher.addListener(onUpdate);
+      onUpdate();
+    </script>
+
+    <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
+
+    <link href="/css/main.css" rel="stylesheet">
+    <link href="/css/syntax.css" rel="stylesheet">
+    <script src="/javascript/main.js"></script>
+    
+    <!-- Matomo -->
+<script>
+  var _paq = window._paq = window._paq || [];
+  /* tracker methods like "setCustomDimension" should be called before "trackPageView" */
+  /* We explicitly disable cookie tracking to avoid privacy issues */
+  _paq.push(['disableCookies']);
+  _paq.push(['trackPageView']);
+  _paq.push(['enableLinkTracking']);
+  (function() {
+    var u="https://analytics.apache.org/";
+    _paq.push(['setTrackerUrl', u+'matomo.php']);
+    _paq.push(['setSiteId', '20']);
+    var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
+    g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
+  })();
+</script>
+<!-- End Matomo Code -->
+
+    
+  </head>
+
+
+<body class="wrap">
+  <header>
+    <nav class="navbar navbar-expand-md navbar-dark bg-dark">
+  
+  <a class="navbar-brand no-padding" href="/"><img src="/img/arrow-inverse-300px.png" height="40px"/></a>
+  
+   <button class="navbar-toggler ml-auto" type="button" data-toggle="collapse" data-target="#arrow-navbar" aria-controls="arrow-navbar" aria-expanded="false" aria-label="Toggle navigation">
+    <span class="navbar-toggler-icon"></span>
+  </button>
+
+    <!-- Collect the nav links, forms, and other content for toggling -->
+    <div class="collapse navbar-collapse justify-content-end" id="arrow-navbar">
+      <ul class="nav navbar-nav">
+        <li class="nav-item"><a class="nav-link" href="/overview/" role="button" aria-haspopup="true" aria-expanded="false">Overview</a></li>
+        <li class="nav-item"><a class="nav-link" href="/faq/" role="button" aria-haspopup="true" aria-expanded="false">FAQ</a></li>
+        <li class="nav-item"><a class="nav-link" href="/blog" role="button" aria-haspopup="true" aria-expanded="false">Blog</a></li>
+        <li class="nav-item dropdown">
+          <a class="nav-link dropdown-toggle" href="#"
+             id="navbarDropdownGetArrow" role="button" data-toggle="dropdown"
+             aria-haspopup="true" aria-expanded="false">
+             Get Arrow
+          </a>
+          <div class="dropdown-menu" aria-labelledby="navbarDropdownGetArrow">
+            <a class="dropdown-item" href="/install/">Install</a>
+            <a class="dropdown-item" href="/release/">Releases</a>
+            <a class="dropdown-item" href="https://github.com/apache/arrow">Source Code</a>
+          </div>
+        </li>
+        <li class="nav-item dropdown">
+          <a class="nav-link dropdown-toggle" href="#"
+             id="navbarDropdownDocumentation" role="button" data-toggle="dropdown"
+             aria-haspopup="true" aria-expanded="false">
+             Documentation
+          </a>
+          <div class="dropdown-menu" aria-labelledby="navbarDropdownDocumentation">
+            <a class="dropdown-item" href="/docs">Project Docs</a>
+            <a class="dropdown-item" href="/docs/format/Columnar.html">Format</a>
+            <hr/>
+            <a class="dropdown-item" href="/docs/c_glib">C GLib</a>
+            <a class="dropdown-item" href="/docs/cpp">C++</a>
+            <a class="dropdown-item" href="https://github.com/apache/arrow/blob/main/csharp/README.md">C#</a>
+            <a class="dropdown-item" href="https://godoc.org/github.com/apache/arrow/go/arrow">Go</a>
+            <a class="dropdown-item" href="/docs/java">Java</a>
+            <a class="dropdown-item" href="/docs/js">JavaScript</a>
+            <a class="dropdown-item" href="/julia/">Julia</a>
+            <a class="dropdown-item" href="https://github.com/apache/arrow/blob/main/matlab/README.md">MATLAB</a>
+            <a class="dropdown-item" href="/docs/python">Python</a>
+            <a class="dropdown-item" href="/docs/r">R</a>
+            <a class="dropdown-item" href="https://github.com/apache/arrow/blob/main/ruby/README.md">Ruby</a>
+            <a class="dropdown-item" href="https://docs.rs/crate/arrow/">Rust</a>
+          </div>
+        </li>
+        <li class="nav-item dropdown">
+          <a class="nav-link dropdown-toggle" href="#"
+             id="navbarDropdownSubprojects" role="button" data-toggle="dropdown"
+             aria-haspopup="true" aria-expanded="false">
+             Subprojects
+          </a>
+          <div class="dropdown-menu" aria-labelledby="navbarDropdownSubprojects">
+            <a class="dropdown-item" href="/adbc">ADBC</a>
+            <a class="dropdown-item" href="/docs/format/Flight.html">Arrow Flight</a>
+            <a class="dropdown-item" href="/docs/format/FlightSql.html">Arrow Flight SQL</a>
+            <a class="dropdown-item" href="/datafusion">DataFusion</a>
+          </div>
+        </li>
+        <li class="nav-item dropdown">
+          <a class="nav-link dropdown-toggle" href="#"
+             id="navbarDropdownCommunity" role="button" data-toggle="dropdown"
+             aria-haspopup="true" aria-expanded="false">
+             Community
+          </a>
+          <div class="dropdown-menu" aria-labelledby="navbarDropdownCommunity">
+            <a class="dropdown-item" href="/community/">Communication</a>
+            <a class="dropdown-item" href="/docs/developers/contributing.html">Contributing</a>
+            <a class="dropdown-item" href="https://github.com/apache/arrow/issues">Issue Tracker</a>
+            <a class="dropdown-item" href="/committers/">Governance</a>
+            <a class="dropdown-item" href="/use_cases/">Use Cases</a>
+            <a class="dropdown-item" href="/powered_by/">Powered By</a>
+            <a class="dropdown-item" href="/visual_identity/">Visual Identity</a>
+            <a class="dropdown-item" href="/security/">Security</a>
+            <a class="dropdown-item" href="https://www.apache.org/foundation/policies/conduct.html">Code of Conduct</a>
+          </div>
+        </li>
+        <li class="nav-item dropdown">
+          <a class="nav-link dropdown-toggle" href="#"
+             id="navbarDropdownASF" role="button" data-toggle="dropdown"
+             aria-haspopup="true" aria-expanded="false">
+             ASF Links
+          </a>
+          <div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdownASF">
+            <a class="dropdown-item" href="https://www.apache.org/">ASF Website</a>
+            <a class="dropdown-item" href="https://www.apache.org/licenses/">License</a>
+            <a class="dropdown-item" href="https://www.apache.org/foundation/sponsorship.html">Donate</a>
+            <a class="dropdown-item" href="https://www.apache.org/foundation/thanks.html">Thanks</a>
+            <a class="dropdown-item" href="https://www.apache.org/security/">Security</a>
+          </div>
+        </li>
+      </ul>
+    </div><!-- /.navbar-collapse -->
+  </nav>
+
+  </header>
+
+  <div class="container p-4 pt-5">
+    <div class="col-md-8 mx-auto">
+      <main role="main" class="pb-5">
+        
+<h1>
+  Our journey at F5 with Apache Arrow (part 2): Adaptive Schemas and Sorting to Optimize Arrow Usage
+</h1>
+<hr class="mt-4 mb-3">
+
+
+
+<p class="mb-4 pb-1">
+  <span class="badge badge-secondary">Published</span>
+  <span class="published mr-3">
+    15 Jun 2023
+  </span>
+  <br />
+  <span class="badge badge-secondary">By</span>
+  
+    Laurent Quérel
+  
+
+  
+</p>
+
+
+        <!--
+
+-->
+
+<p>In the previous <a href="https://arrow.apache.org/blog/2023/04/11/our-journey-at-f5-with-apache-arrow-part-1/">article</a>, we discussed our use of Apache Arrow within the context of the OpenTelemetry project. We investigated various techniques to maximize the efficiency of Apache Arrow, aiming to find the optimal balance between data compression ratio and queryability. The compression results speak for themselves, boasting improvements ranging from 1.5x to 5x better than the original [...]
+
+<p>The first technique we’ll discuss aims to optimize schemas in terms of memory usage. As you’ll see, the gains can be substantial, potentially halving memory usage in certain cases. The second section will delve more deeply into the various approaches that can be used to handle recursive schema definitions. Lastly, we’ll emphasize that the design of your schema(s), coupled with the sorts you can apply at the record level, play a pivotal role in maximizing the benefits of Apache Arrow a [...]
+
+<h2 id="handling-dynamic-and-unknown-data-distributions">Handling dynamic and unknown data distributions</h2>
+
+<p>In certain contexts, the comprehensive definition of an Arrow schema can end up being overly broad and complex in order to cover all possible cases that you intend to represent in columnar form. However, as is often the case with complex schemas, only a subset of this schema will actually be utilized for a specific deployment. Similarly, it’s not always possible to determine the optimal dictionary encoding for one or more fields in advance. Employing a broad and very general schema th [...]
+
+<p>To illustrate this more concretely, let’s consider an OTel collector positioned at the output of a production environment, receiving a telemetry data stream produced by a large and dynamic set of servers. Invariably, the content of this telemetry stream will change in volume and nature over time. It’s challenging to predict the optimal schema in such a scenario, and it’s equally difficult to know in advance the distribution of a particular attribute of the telemetry data passing throu [...]
+
+<p>To optimize such scenarios, we have adopted an intermediary approach that we have named <strong>dynamic Arrow schema</strong>, aiming to gradually adapt the schema based on the observed data. The general principle is relatively simple. We start with a general schema defining the maximum envelope of what should be represented. Some fields of this schema will be declared optional, while other fields will be encoded with multiple possible options depending on the observed distribution. I [...]
+
+<p>The following Go Arrow schema definition provides an example of such a schema, instrumented with a collection of annotations. These annotations will be processed by an enhanced Record Builder, equipped with the ability to dynamically adapt the schema. The structure of this system is illustrated in Figure 1.</p>
+
+<div class="language-go highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">var</span> <span class="p">(</span>
+  <span class="c">// Arrow schema for the OTLP Arrow Traces record (without attributes, links, and events).</span>
+  <span class="n">TracesSchema</span> <span class="o">=</span> <span class="n">arrow</span><span class="o">.</span><span class="n">NewSchema</span><span class="p">([]</span><span class="n">arrow</span><span class="o">.</span><span class="n">Field</span><span class="p">{</span>
+      <span class="c">// Nullabe:true means the field is optional, in this case of 16 bit unsigned integers </span>
+      <span class="p">{</span><span class="n">Name</span><span class="o">:</span> <span class="n">constants</span><span class="o">.</span><span class="n">ID</span><span class="p">,</span> <span class="n">Type</span><span class="o">:</span> <span class="n">arrow</span><span class="o">.</span><span class="n">PrimitiveTypes</span><span class="o">.</span><span class="n">Uint16</span><span class="p">,</span> <span class="n">Nullable</span><span class="o">:</span> <span class="no">true</span>< [...]
+      <span class="p">{</span><span class="n">Name</span><span class="o">:</span> <span class="n">constants</span><span class="o">.</span><span class="n">Resource</span><span class="p">,</span> <span class="n">Type</span><span class="o">:</span> <span class="n">arrow</span><span class="o">.</span><span class="n">StructOf</span><span class="p">([]</span><span class="n">arrow</span><span class="o">.</span><span class="n">Field</span><span class="p">{</span>
+        <span class="p">{</span><span class="n">Name</span><span class="o">:</span> <span class="n">constants</span><span class="o">.</span><span class="n">ID</span><span class="p">,</span> <span class="n">Type</span><span class="o">:</span> <span class="n">arrow</span><span class="o">.</span><span class="n">PrimitiveTypes</span><span class="o">.</span><span class="n">Uint16</span><span class="p">,</span> <span class="n">Nullable</span><span class="o">:</span> <span class="no">true</span [...]
+        <span class="c">// --- Use dictionary with 8 bit integers initially ----</span>
+        <span class="p">{</span><span class="n">Name</span><span class="o">:</span> <span class="n">constants</span><span class="o">.</span><span class="n">SchemaUrl</span><span class="p">,</span><span class="n">Type</span><span class="o">:</span> <span class="n">arrow</span><span class="o">.</span><span class="n">BinaryTypes</span><span class="o">.</span><span class="n">String</span><span class="p">,</span><span class="n">Metadata</span><span class="o">:</span> <span class="n">schema</s [...]
+        <span class="p">{</span><span class="n">Name</span><span class="o">:</span> <span class="n">constants</span><span class="o">.</span><span class="n">DroppedAttributesCount</span><span class="p">,</span><span class="n">Type</span><span class="o">:</span> <span class="n">arrow</span><span class="o">.</span><span class="n">PrimitiveTypes</span><span class="o">.</span><span class="n">Uint32</span><span class="p">,</span><span class="n">Nullable</span><span class="o">:</span> <span cla [...]
+      <span class="p">}</span><span class="o">...</span><span class="p">),</span> <span class="n">Nullable</span><span class="o">:</span> <span class="no">true</span><span class="p">},</span>
+      <span class="p">{</span><span class="n">Name</span><span class="o">:</span> <span class="n">constants</span><span class="o">.</span><span class="n">Scope</span><span class="p">,</span> <span class="n">Type</span><span class="o">:</span> <span class="n">arrow</span><span class="o">.</span><span class="n">StructOf</span><span class="p">([]</span><span class="n">arrow</span><span class="o">.</span><span class="n">Field</span><span class="p">{</span>
+          <span class="p">{</span><span class="n">Name</span><span class="o">:</span> <span class="n">constants</span><span class="o">.</span><span class="n">ID</span><span class="p">,</span> <span class="n">Type</span><span class="o">:</span> <span class="n">arrow</span><span class="o">.</span><span class="n">PrimitiveTypes</span><span class="o">.</span><span class="n">Uint16</span><span class="p">,</span> <span class="n">Metadata</span><span class="o">:</span> <span class="n">acommon</ [...]
+          <span class="c">// --- Use dictionary with 8 bit integers initially ----</span>
+          <span class="p">{</span><span class="n">Name</span><span class="o">:</span> <span class="n">constants</span><span class="o">.</span><span class="n">Name</span><span class="p">,</span> <span class="n">Type</span><span class="o">:</span> <span class="n">arrow</span><span class="o">.</span><span class="n">BinaryTypes</span><span class="o">.</span><span class="n">String</span><span class="p">,</span> <span class="n">Metadata</span><span class="o">:</span> <span class="n">acommon</s [...]
+          <span class="p">{</span><span class="n">Name</span><span class="o">:</span> <span class="n">constants</span><span class="o">.</span><span class="n">Version</span><span class="p">,</span> <span class="n">Type</span><span class="o">:</span> <span class="n">arrow</span><span class="o">.</span><span class="n">BinaryTypes</span><span class="o">.</span><span class="n">String</span><span class="p">,</span> <span class="n">Metadata</span><span class="o">:</span> <span class="n">acommon [...]
+          <span class="p">{</span><span class="n">Name</span><span class="o">:</span> <span class="n">constants</span><span class="o">.</span><span class="n">DroppedAttributesCount</span><span class="p">,</span> <span class="n">Type</span><span class="o">:</span> <span class="n">arrow</span><span class="o">.</span><span class="n">PrimitiveTypes</span><span class="o">.</span><span class="n">Uint32</span><span class="p">,</span> <span class="n">Nullable</span><span class="o">:</span> <span [...]
+      <span class="p">}</span><span class="o">...</span><span class="p">),</span> <span class="n">Nullable</span><span class="o">:</span> <span class="no">true</span><span class="p">},</span>
+      <span class="p">{</span><span class="n">Name</span><span class="o">:</span> <span class="n">constants</span><span class="o">.</span><span class="n">SchemaUrl</span><span class="p">,</span> <span class="n">Type</span><span class="o">:</span> <span class="n">arrow</span><span class="o">.</span><span class="n">BinaryTypes</span><span class="o">.</span><span class="n">String</span><span class="p">,</span> <span class="n">Metadata</span><span class="o">:</span> <span class="n">schema</s [...]
+      <span class="p">{</span><span class="n">Name</span><span class="o">:</span> <span class="n">constants</span><span class="o">.</span><span class="n">StartTimeUnixNano</span><span class="p">,</span> <span class="n">Type</span><span class="o">:</span> <span class="n">arrow</span><span class="o">.</span><span class="n">FixedWidthTypes</span><span class="o">.</span><span class="n">Timestamp_ns</span><span class="p">},</span>
+      <span class="p">{</span><span class="n">Name</span><span class="o">:</span> <span class="n">constants</span><span class="o">.</span><span class="n">DurationTimeUnixNano</span><span class="p">,</span> <span class="n">Type</span><span class="o">:</span> <span class="n">arrow</span><span class="o">.</span><span class="n">FixedWidthTypes</span><span class="o">.</span><span class="n">Duration_ms</span><span class="p">,</span> <span class="n">Metadata</span><span class="o">:</span> <span [...]
+      <span class="p">{</span><span class="n">Name</span><span class="o">:</span> <span class="n">constants</span><span class="o">.</span><span class="n">TraceId</span><span class="p">,</span> <span class="n">Type</span><span class="o">:</span> <span class="o">&amp;</span><span class="n">arrow</span><span class="o">.</span><span class="n">FixedSizeBinaryType</span><span class="p">{</span><span class="n">ByteWidth</span><span class="o">:</span> <span class="m">16</span><span class="p">}},</span>
+      <span class="p">{</span><span class="n">Name</span><span class="o">:</span> <span class="n">constants</span><span class="o">.</span><span class="n">SpanId</span><span class="p">,</span> <span class="n">Type</span><span class="o">:</span> <span class="o">&amp;</span><span class="n">arrow</span><span class="o">.</span><span class="n">FixedSizeBinaryType</span><span class="p">{</span><span class="n">ByteWidth</span><span class="o">:</span> <span class="m">8</span><span class="p">}},</span>
+      <span class="p">{</span><span class="n">Name</span><span class="o">:</span> <span class="n">constants</span><span class="o">.</span><span class="n">TraceState</span><span class="p">,</span> <span class="n">Type</span><span class="o">:</span> <span class="n">arrow</span><span class="o">.</span><span class="n">BinaryTypes</span><span class="o">.</span><span class="n">String</span><span class="p">,</span> <span class="n">Metadata</span><span class="o">:</span> <span class="n">schema</ [...]
+      <span class="p">{</span><span class="n">Name</span><span class="o">:</span> <span class="n">constants</span><span class="o">.</span><span class="n">ParentSpanId</span><span class="p">,</span> <span class="n">Type</span><span class="o">:</span> <span class="o">&amp;</span><span class="n">arrow</span><span class="o">.</span><span class="n">FixedSizeBinaryType</span><span class="p">{</span><span class="n">ByteWidth</span><span class="o">:</span> <span class="m">8</span><span class="p" [...]
+      <span class="p">{</span><span class="n">Name</span><span class="o">:</span> <span class="n">constants</span><span class="o">.</span><span class="n">Name</span><span class="p">,</span> <span class="n">Type</span><span class="o">:</span> <span class="n">arrow</span><span class="o">.</span><span class="n">BinaryTypes</span><span class="o">.</span><span class="n">String</span><span class="p">,</span> <span class="n">Metadata</span><span class="o">:</span> <span class="n">schema</span>< [...]
+      <span class="p">{</span><span class="n">Name</span><span class="o">:</span> <span class="n">constants</span><span class="o">.</span><span class="n">KIND</span><span class="p">,</span> <span class="n">Type</span><span class="o">:</span> <span class="n">arrow</span><span class="o">.</span><span class="n">PrimitiveTypes</span><span class="o">.</span><span class="n">Int32</span><span class="p">,</span> <span class="n">Metadata</span><span class="o">:</span> <span class="n">schema</span [...]
+      <span class="p">{</span><span class="n">Name</span><span class="o">:</span> <span class="n">constants</span><span class="o">.</span><span class="n">DroppedAttributesCount</span><span class="p">,</span> <span class="n">Type</span><span class="o">:</span> <span class="n">arrow</span><span class="o">.</span><span class="n">PrimitiveTypes</span><span class="o">.</span><span class="n">Uint32</span><span class="p">,</span> <span class="n">Nullable</span><span class="o">:</span> <span cla [...]
+      <span class="p">{</span><span class="n">Name</span><span class="o">:</span> <span class="n">constants</span><span class="o">.</span><span class="n">DroppedEventsCount</span><span class="p">,</span> <span class="n">Type</span><span class="o">:</span> <span class="n">arrow</span><span class="o">.</span><span class="n">PrimitiveTypes</span><span class="o">.</span><span class="n">Uint32</span><span class="p">,</span> <span class="n">Nullable</span><span class="o">:</span> <span class=" [...]
+      <span class="p">{</span><span class="n">Name</span><span class="o">:</span> <span class="n">constants</span><span class="o">.</span><span class="n">DroppedLinksCount</span><span class="p">,</span> <span class="n">Type</span><span class="o">:</span> <span class="n">arrow</span><span class="o">.</span><span class="n">PrimitiveTypes</span><span class="o">.</span><span class="n">Uint32</span><span class="p">,</span> <span class="n">Nullable</span><span class="o">:</span> <span class="n [...]
+      <span class="p">{</span><span class="n">Name</span><span class="o">:</span> <span class="n">constants</span><span class="o">.</span><span class="n">Status</span><span class="p">,</span> <span class="n">Type</span><span class="o">:</span> <span class="n">arrow</span><span class="o">.</span><span class="n">StructOf</span><span class="p">([]</span><span class="n">arrow</span><span class="o">.</span><span class="n">Field</span><span class="p">{</span>
+        <span class="p">{</span><span class="n">Name</span><span class="o">:</span> <span class="n">constants</span><span class="o">.</span><span class="n">StatusCode</span><span class="p">,</span> <span class="n">Type</span><span class="o">:</span> <span class="n">arrow</span><span class="o">.</span><span class="n">PrimitiveTypes</span><span class="o">.</span><span class="n">Int32</span><span class="p">,</span> <span class="n">Metadata</span><span class="o">:</span> <span class="n">sche [...]
+        <span class="p">{</span><span class="n">Name</span><span class="o">:</span> <span class="n">constants</span><span class="o">.</span><span class="n">StatusMessage</span><span class="p">,</span> <span class="n">Type</span><span class="o">:</span> <span class="n">arrow</span><span class="o">.</span><span class="n">BinaryTypes</span><span class="o">.</span><span class="n">String</span><span class="p">,</span> <span class="n">Metadata</span><span class="o">:</span> <span class="n">sch [...]
+      <span class="p">}</span><span class="o">...</span><span class="p">),</span> <span class="n">Nullable</span><span class="o">:</span> <span class="no">true</span><span class="p">},</span>
+    <span class="p">},</span> <span class="no">nil</span><span class="p">)</span>
+  <span class="p">)</span>
+</code></pre></div></div>
+
+<p>In this example, Arrow field-level metadata are employed to designate when a field is optional (Nullable: true) or to specify the minimal dictionary encoding applicable to a particular field (Metadata Dictionary8/16/…). Now let’s imagine a scenario utilizing this schema in a straightforward scenario, wherein only a handful of fields are actually in use, and the cardinality of most dictionary-encoded fields is low (i.e., below 2^8). Ideally, we’d want a system capable of dynamically co [...]
+
+<div class="language-go highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">var</span> <span class="p">(</span>
+  <span class="c">// Simplified schema definition generated by the Arrow Record encoder based on </span>
+  <span class="c">// the data observed.</span>
+  <span class="n">TracesSchema</span> <span class="o">=</span> <span class="n">arrow</span><span class="o">.</span><span class="n">NewSchema</span><span class="p">([]</span><span class="n">arrow</span><span class="o">.</span><span class="n">Field</span><span class="p">{</span>
+    <span class="p">{</span><span class="n">Name</span><span class="o">:</span> <span class="n">constants</span><span class="o">.</span><span class="n">ID</span><span class="p">,</span> <span class="n">Type</span><span class="o">:</span> <span class="n">arrow</span><span class="o">.</span><span class="n">PrimitiveTypes</span><span class="o">.</span><span class="n">Uint16</span><span class="p">,</span> <span class="n">Nullable</span><span class="o">:</span> <span class="no">true</span><sp [...]
+    <span class="p">{</span><span class="n">Name</span><span class="o">:</span> <span class="n">constants</span><span class="o">.</span><span class="n">StartTimeUnixNano</span><span class="p">,</span> <span class="n">Type</span><span class="o">:</span> <span class="n">arrow</span><span class="o">.</span><span class="n">FixedWidthTypes</span><span class="o">.</span><span class="n">Timestamp_ns</span><span class="p">},</span>
+    <span class="p">{</span><span class="n">Name</span><span class="o">:</span> <span class="n">constants</span><span class="o">.</span><span class="n">TraceId</span><span class="p">,</span> <span class="n">Type</span><span class="o">:</span> <span class="o">&amp;</span><span class="n">arrow</span><span class="o">.</span><span class="n">FixedSizeBinaryType</span><span class="p">{</span><span class="n">ByteWidth</span><span class="o">:</span> <span class="m">16</span><span class="p">}},</span>
+    <span class="p">{</span><span class="n">Name</span><span class="o">:</span> <span class="n">constants</span><span class="o">.</span><span class="n">SpanId</span><span class="p">,</span> <span class="n">Type</span><span class="o">:</span> <span class="o">&amp;</span><span class="n">arrow</span><span class="o">.</span><span class="n">FixedSizeBinaryType</span><span class="p">{</span><span class="n">ByteWidth</span><span class="o">:</span> <span class="m">8</span><span class="p">}},</span>
+    <span class="p">{</span><span class="n">Name</span><span class="o">:</span> <span class="n">constants</span><span class="o">.</span><span class="n">Name</span><span class="p">,</span> <span class="n">Type</span><span class="o">:</span> <span class="o">&amp;</span><span class="n">arrow</span><span class="o">.</span><span class="n">DictionaryType</span> <span class="p">{</span>
+      <span class="n">IndexType</span><span class="o">:</span> <span class="n">arrow</span><span class="o">.</span><span class="n">PrimitiveTypes</span><span class="o">.</span><span class="n">Uint8</span><span class="p">,</span>
+      <span class="n">ValueType</span><span class="o">:</span> <span class="n">arrow</span><span class="o">.</span><span class="n">BinaryTypes</span><span class="o">.</span><span class="n">String</span><span class="p">}},</span>
+    <span class="p">{</span><span class="n">Name</span><span class="o">:</span> <span class="n">constants</span><span class="o">.</span><span class="n">KIND</span><span class="p">,</span> <span class="n">Type</span><span class="o">:</span> <span class="o">&amp;</span><span class="n">arrow</span><span class="o">.</span><span class="n">DictionaryType</span> <span class="p">{</span>
+      <span class="n">IndexType</span><span class="o">:</span> <span class="n">arrow</span><span class="o">.</span><span class="n">PrimitiveTypes</span><span class="o">.</span><span class="n">Uint8</span><span class="p">,</span>
+      <span class="n">ValueType</span><span class="o">:</span> <span class="n">arrow</span><span class="o">.</span><span class="n">PrimitiveTypes</span><span class="o">.</span><span class="n">Int32</span><span class="p">,</span>
+    <span class="p">},</span> <span class="n">Nullable</span><span class="o">:</span> <span class="no">true</span><span class="p">},</span>
+  <span class="p">},</span> <span class="no">nil</span><span class="p">)</span>
+<span class="p">)</span>
+</code></pre></div></div>
+
+<p>Additionally, we desire a system capable of automatically adapting the aforementioned schema if it encounters new fields or existing fields with a cardinality exceeding the size of the current dictionary definition in future batches. In extreme scenarios, if the cardinality of a specific field surpasses a certain threshold, we would prefer the system to automatically revert to the non-dictionary representation (mechanism of dictionary overflow). That is precisely what we will elaborat [...]
+
+<p>An overview of the different components and events used to implement this approach is depicted in figure 1.</p>
+
+<figure style="text-align: center;">
+  <img src="/img/journey-apache-arrow/adaptive-schema-architecture.svg" width="100%" class="img-responsive" alt="Fig 1: Adaptive Arrow schema architecture overview." />
+  <figcaption>Fig 1: Adaptive Arrow schema architecture overview.</figcaption>
+</figure>
+
+<p>The overall Adaptive Arrow schema component takes a data stream segmented into batches and produces one or multiple streams of Arrow Records (one schema per stream). Each of these records is defined with an Arrow schema, which is based both on the annotated Arrow schema and the shape of fields observed in the incoming data.</p>
+
+<p>More specifically, the process of the Adaptive Arrow schema component consists of four main phases</p>
+
+<p><strong>Initialization phase</strong></p>
+
+<p>During the initialization phase, the Arrow Record Encoder reads the annotated Arrow schema (i.e. the reference schema) and generates a collection of transformations. When these transformations are applied to the reference schema, they yield the first minimal Arrow schema that adheres to the constraints depicted by these annotations. In this initial iteration, all optional fields are eliminated, and all dictionary-encoded fields are configured to utilize the smallest encoding as define [...]
+
+<p><strong>Feeding phase</strong></p>
+
+<p>Following the initialization is the feeding phase. Here, the Arrow Record Encoder scans the batch and attempts to store all the fields in an Arrow Record Builder, which is defined by the schema created in the prior step. If a field exists in the data but is not included in the schema, the encoder will trigger a <code class="language-plaintext highlighter-rouge">missing field</code> event. This process continues until the current batch is completely processed. An additional internal ch [...]
+
+<p><strong>Corrective phase</strong></p>
+
+<p>If at least one event has been generated, a corrective phase will be initiated to fix the schema. This optional stage considers all the events generated in the previous stage and adjusts the transformation tree accordingly to align with the observed data. A <code class="language-plaintext highlighter-rouge">missing field</code> event will remove a NoField transformation for the corresponding field. A <code class="language-plaintext highlighter-rouge">dictionary overflow</code> event w [...]
+
+<p><strong>Routing phase</strong></p>
+
+<p>Once a Record Builder has been properly fed, an Arrow Record is created, and the system transitions into the routing phase. The router component calculates a schema signature of the record and utilizes this signature to route the record to an existing Arrow stream compatible with the signature, or it initiates a new stream if there is no match.</p>
+
+<p>This four-phase process should gradually adapt and stabilize the schema to a structure and definition that is optimized for a specific data stream. Unused fields will never unnecessarily consume memory. Dictionary-encoded fields will be defined with the most optimal index size based on the observed data cardinality, and fields with a cardinality exceeding a certain threshold (defined by configuration) will automatically revert to their non-dictionary-encoded versions.</p>
+
+<p>To effectively execute this approach, you must ensure that there is a sufficient level of flexibility on the receiver side. It’s crucial that your downstream pipeline remains functional even when some fields are missing in the schema or when various dictionary index configurations are employed. While this may not always be feasible without implementing additional transformations upon reception, it proves worthwhile in certain scenarios.</p>
+
+<p>The following results highlight the significant memory usage reduction achieved through the application of various optimization techniques. These results were gathered using a schema akin to the one previously presented. The considerable memory efficiency underscores the effectiveness of this approach.</p>
+
+<figure style="text-align: center;">
+  <img src="/img/journey-apache-arrow/memory-usage-25k-traces.png" width="100%" class="img-responsive" alt="Fig 2: Comparative analysis of memory usage for different schema optimizations." />
+  <figcaption>Fig 2: Comparative analysis of memory usage for different schema optimizations.</figcaption>
+</figure>
+
+<p>The concept of a transformation tree enables a generalized approach to perform various types of schema optimizations based on the knowledge acquired from the data. This architecture is highly flexible; the current implementation allows for the removal of unused fields, the application of the most specific dictionary encoding, and the optimization of union type variants. In the future, there is potential for introducing additional optimizations that can be expressed as transformations  [...]
+
+<h2 id="handling-recursive-schema-definition">Handling recursive schema definition</h2>
+
+<p>Apache Arrow does not support recursive schema definitions, implying that data structures with variable depth cannot be directly represented. Figure 3 exemplifies such a recursive definition where the value of an attribute can either be a simple data type, a list of values, or a map of values. The depth of this definition cannot be predetermined.</p>
+
+<figure style="text-align: center;">
+  <img src="/img/journey-apache-arrow/recursive-def-otel-attributes.svg" width="100%" class="img-responsive" alt="Fig 3: Recursive definition of OTel attributes." />
+  <figcaption>Fig 3: Recursive definition of OTel attributes.</figcaption>
+</figure>
+
+<p>Several strategies can be employed to circumvent this limitation. Technically, the dynamic schema concept we’ve presented could be expanded to dynamically update the schema to include any missing level of recursion. However, for this use case, this method is complex and has the notable downside of not offering any assurance on the maximum size of the schema. This lack of constraint can pose security issues; hence, this approach isn’t elaborated upon.</p>
+
+<p>The second approach consists of breaking the recursion by employing a serialization format that supports the definition of a recursive schema. The result of this serialization can then be integrated into the Arrow record as a binary type column, effectively halting the recursion at a specific level. To fully leverage the advantages of columnar representation, it is crucial to apply this ad-hoc serialization as deeply within the data structure as feasible. In the context of OpenTelemet [...]
+
+<p>A variety of serialization formats, such as protobuf or CBOR, can be employed to encode recursive data. Without particular treatment, these binary columns may not be easily queryable by the existing Arrow query engines. Therefore, it’s crucial to thoughtfully ascertain when and where to apply such a technique. While I’m not aware of any attempts to address this limitation within the Arrow system, it doesn’t seem insurmountable and would constitute a valuable extension. This would help [...]
+
+<h2 id="importance-of-sorting">Importance of sorting</h2>
+
+<p>In our preceding <a href="https://arrow.apache.org/blog/2023/04/11/our-journey-at-f5-with-apache-arrow-part-1/">article</a>, we explored a variety of strategies to represent hierarchical data models, including nested structures based on struct/list/map/union, denormalization and flattening representations, as well as a multi-record approach. Each method presents its unique advantages and disadvantages. However, in this last section, we’ll delve deeper into the multi-record approach, f [...]
+
+<p>In the OTel Arrow protocol, we leverage the multi-record approach to represent metrics, logs, and traces. The following entity-relationship diagram offers a simplified version of various record schemas and illustrates their relationships, specifically those used to represent gauges and sums. A comprehensive description of the Arrow data model employed in OpenTelemetry can be accessed <a href="https://github.com/f5/otel-arrow-adapter/blob/main/docs/data_model.md">here</a>.</p>
+
+<p>These Arrow records, also referred to as tables, form a hierarchy with <code class="language-plaintext highlighter-rouge">METRICS</code> acting as the primary entry point. Each table can be independently sorted according to one or more columns. This sorting strategy facilitates the grouping of duplicated data, thereby improving the compression ratio.</p>
+
+<figure style="text-align: center;">
+  <img src="/img/journey-apache-arrow/metric-dp-data-model.png" width="100%" class="img-responsive" alt="Fig 4: A simplified entity-relationship diagram representing OTel sum &amp; gauge metrics." />
+  <figcaption>Fig 4: A simplified entity-relationship diagram representing OTel sum &amp; gauge metrics.</figcaption>
+</figure>
+
+<p>The relationship between the primary <code class="language-plaintext highlighter-rouge">METRICS</code> table and the secondary <code class="language-plaintext highlighter-rouge">RESOURCE_ATTRS</code>, <code class="language-plaintext highlighter-rouge">SCOPE_ATTRS</code>, and <code class="language-plaintext highlighter-rouge">NUMBER_DATA_POINTS</code> tables is established through a unique <code class="language-plaintext highlighter-rouge">id</code> in the main table and a <code class= [...]
+
+<p>To achieve this, the ordering process for the different tables adheres to the hierarchy, starting from the main table down to the leaf. The main table is sorted (by one or multiple columns), and then an incremental id is assigned to each row. This numerical id is stored using delta-encoding, which is implemented on top of Arrow.</p>
+
+<p>The secondary tables directly connected to the main table are sorted using the same principle, but the <code class="language-plaintext highlighter-rouge">parent_id</code> column is consistently utilized as the last column in the sort statement. Including the <code class="language-plaintext highlighter-rouge">parent_id</code> column in the sort statement enables the use of a variation of delta encoding. The efficiency of this approach is summarized in the chart below.</p>
+
+<figure style="text-align: center;">
+  <img src="/img/journey-apache-arrow/compressed-message-size.png" width="100%" class="img-responsive" alt="Fig 5: Comparative analysis of compression ratios - OTLP Protocol vs. Two variations of the OTel Arrow Protocol with multivariate metrics stream. (lower percentage is better)" />
+  <figcaption>Fig 5: Comparative analysis of compression ratios - OTLP Protocol vs. Two variations of the OTel Arrow Protocol with multivariate metrics stream. (lower percentage is better)</figcaption>
+</figure>
+
+<p>The second column presents the average size of the OTLP batch both pre- and post-ZSTD compression for batches of varying sizes. This column serves as a reference point for the ensuing two columns. The third column displays results for the OTel Arrow protocol without any sorting applied, while the final column showcases results for the OTel Arrow protocol with sorting enabled.</p>
+
+<p>Before compression, the average batch sizes for the two OTel Arrow configurations are predictably similar. However, post-compression, the benefits of sorting each individual table on the compression ratio become immediately apparent. Without sorting, the OTel Arrow protocol exhibits a compression ratio that’s 1.40 to 1.67 times better than the reference. When sorting is enabled, the OTel Arrow protocol outperforms the reference by a factor ranging from 4.94 to 7.21 times!</p>
+
+<p>The gains in terms of compression obviously depend on your data and the redundancy of information present in your data batches. According to our observations, the choice of a good sort generally improves the compression ratio by a factor of 1.5 to 8.</p>
+
+<p>Decomposing a complex schema into multiple simpler schemas to enhance sorting capabilities, coupled with a targeted approach to efficiently encode the identifiers representing the relationships, emerges as an effective strategy for enhancing overall data compression. This method also eliminates complex Arrow data types, such as lists, maps, and unions. Consequently, it not only improves but also simplifies data query-ability. This simplification proves beneficial for existing query en [...]
+
+<h2 id="conclusion-and-next-steps">Conclusion and next steps</h2>
+
+<p>This article concludes our two-part series on Apache Arrow, wherein we have explored various strategies to maximize the utility of Apache Arrow within specific contexts. The adaptive schema architecture presented in the second part of this series paves the way for future optimization possibilities. We look forward to seeing what the community can add based on this contribution.</p>
+
+<p>Apache Arrow is an exceptional project, continually enhanced by a thriving ecosystem. However, throughout our exploration, we have noticed certain gaps or points of friction that, if addressed, could significantly enrich the overall experience.</p>
+<ul>
+  <li>Designing an efficient Arrow schema can, in some cases, prove to be a challenging task. Having the <strong>ability to collect statistics</strong> at the record level could facilitate this design phase (data distribution per field, dictionary stats, Arrow array sizes before/after compression, and so on). These statistics would also assist in identifying the most effective columns on which to base the record sorting.</li>
+  <li><strong>Native support for recursive schemas</strong> would also increase adoption by simplifying the use of Arrow in complex scenarios. While I’m not aware of any attempts to address this limitation within the Arrow system, it doesn’t seem insurmountable and would constitute a valuable extension. This would help reduce the complexity of integrating Arrow with other systems that rely on such recursive definitions.</li>
+  <li><strong>Harmonizing the support for data types as well as IPC stream capabilities</strong> would also be a major benefit. Predominant client libraries support nested and hierarchical schemas, but their use is limited due to a lack of full support across the rest of the ecosystem. For example, list and/or union types are not well supported by query engines or Parquet bridges. Also, the advanced dictionary support within IPC streams is not consistent across different implementations  [...]
+  <li><strong>Optimizing the support of complex schemas</strong> in terms of memory consumption and compression rate could be improved by natively integrating the concept of the dynamic schema presented in this article.</li>
+  <li><strong>Detecting dictionary overflows</strong> (index level) is not something that is easy to test on the fly. The API could be improved to indicate this overflow as soon as an insertion occurs.</li>
+</ul>
+
+<p>Our effort to utilize Apache Arrow in conjunction with OpenTelemetry has produced encouraging results. While this has necessitated considerable investment in terms of development, exploration, and benchmarking, we hope that these articles will aid in accelerating your journey with Apache Arrow. Looking ahead, we envision an end-to-end integration with Apache Arrow and plan to significantly extend our use of the Arrow ecosystem. This extension involves providing a bridge with Parquet a [...]
+
+      </main>
+    </div>
+
+    <hr/>
+<footer class="footer">
+  <div class="row">
+    <div class="col-md-9">
+      <p>Apache Arrow, Arrow, Apache, the Apache feather logo, and the Apache Arrow project logo are either registered trademarks or trademarks of The Apache Software Foundation in the United States and other countries.</p>
+      <p>&copy; 2016-2023 The Apache Software Foundation</p>
+    </div>
+    <div class="col-md-3">
+      <a class="d-sm-none d-md-inline pr-2" href="https://www.apache.org/events/current-event.html">
+        <img src="https://www.apache.org/events/current-event-234x60.png"/>
+      </a>
+    </div>
+  </div>
+</footer>
+
+  </div>
+</body>
+</html>
diff --git a/blog/index.html b/blog/index.html
index 7becfec9319..a255f050b59 100644
--- a/blog/index.html
+++ b/blog/index.html
@@ -281,6 +281,21 @@
   
 
   
+  <p>
+    <h3>
+      <a href="/blog/2023/06/15/our-journey-at-f5-with-apache-arrow-part-2/">Our journey at F5 with Apache Arrow (part 2): Adaptive Schemas and Sorting to Optimize Arrow Usage</a>
+    </h3>
+    
+    <p>
+    <span class="blog-list-date">
+      15 June 2023
+    </span>
+    </p>
+    In the previous article, we discussed our use of Apache Arrow within the context of the OpenTelemetry project. We investigated various techniques to maximize the efficiency of Apache Arrow, aiming to find the optimal balance between data compression ratio and queryability. The compression results speak for themselves, boasting improvements ranging...
+  </p>
+  
+
+  
   <p>
     <h3>
       <a href="/blog/2023/06/13/12.0.1-release/">Apache Arrow 12.0.1 Release</a>
diff --git a/docs/c_glib/index.html b/docs/c_glib/index.html
index ece5c5ad1d6..04a1e3b5989 100644
--- a/docs/c_glib/index.html
+++ b/docs/c_glib/index.html
@@ -20,13 +20,13 @@
 <meta property="og:site_name" content="Apache Arrow" />
 <meta property="og:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="og:type" content="article" />
-<meta property="article:published_time" content="2023-06-25T06:12:40-04:00" />
+<meta property="article:published_time" content="2023-06-26T08:40:23-04:00" />
 <meta name="twitter:card" content="summary_large_image" />
 <meta property="twitter:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="twitter:title" content="Apache Arrow GLib (C)" />
 <meta name="twitter:site" content="@ApacheArrow" />
 <script type="application/ld+json">
-{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-25T06:12:40-04:00","datePublished":"2023-06-25T06:12:40-04:00","description":"Apache Arrow GLib (C) Apache Arrow GLib is a wrapper library for Apache Arrow C++. Apache Arrow GLib provides C API. Apache Arrow GLib supports GObject Introspection. It means that you can create language bindings at runtime or compile time automatically. API reference manuals Apache Arrow GLib Apache Parquet GLib Gandiva GLib Plasma [...]
+{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-26T08:40:23-04:00","datePublished":"2023-06-26T08:40:23-04:00","description":"Apache Arrow GLib (C) Apache Arrow GLib is a wrapper library for Apache Arrow C++. Apache Arrow GLib provides C API. Apache Arrow GLib supports GObject Introspection. It means that you can create language bindings at runtime or compile time automatically. API reference manuals Apache Arrow GLib Apache Parquet GLib Gandiva GLib Plasma [...]
 <!-- End Jekyll SEO tag -->
 
 
diff --git a/feed.xml b/feed.xml
index 877acff9af4..79d1f2a7afd 100644
--- a/feed.xml
+++ b/feed.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.2.0">Jekyll</generator><link href="https://arrow.apache.org/feed.xml" rel="self" type="application/atom+xml" /><link href="https://arrow.apache.org/" rel="alternate" type="text/html" /><updated>2023-06-25T06:12:40-04:00</updated><id>https://arrow.apache.org/feed.xml</id><title type="html">Apache Arrow</title><subtitle>Apache Arrow is a cross-language developm [...]
+<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.2.0">Jekyll</generator><link href="https://arrow.apache.org/feed.xml" rel="self" type="application/atom+xml" /><link href="https://arrow.apache.org/" rel="alternate" type="text/html" /><updated>2023-06-26T08:40:23-04:00</updated><id>https://arrow.apache.org/feed.xml</id><title type="html">Apache Arrow</title><subtitle>Apache Arrow is a cross-language developm [...]
 
 -->
 
@@ -416,7 +416,186 @@ been made: we refer you to the <a href="https://github.com/apache/arrow-adbc/blo
 
 <p>We welcome questions and contributions from all interested.  Issues
 can be filed on <a href="https://github.com/apache/arrow-adbc/issues">GitHub</a>, and questions can be directed to GitHub
-or the <a href="/community/">Arrow mailing lists</a>.</p>]]></content><author><name>pmc</name></author><category term="release" /><summary type="html"><![CDATA[The Apache Arrow team is pleased to announce the 0.5.0 release of the Apache Arrow ADBC libraries. This covers includes 37 resolved issues from 12 distinct contributors. This is a release of the libraries, which are at version 0.5.0. The API specification is versioned separately and is at version 1.0.0. The release notes below are [...]
+or the <a href="/community/">Arrow mailing lists</a>.</p>]]></content><author><name>pmc</name></author><category term="release" /><summary type="html"><![CDATA[The Apache Arrow team is pleased to announce the 0.5.0 release of the Apache Arrow ADBC libraries. This covers includes 37 resolved issues from 12 distinct contributors. This is a release of the libraries, which are at version 0.5.0. The API specification is versioned separately and is at version 1.0.0. The release notes below are [...]
+
+-->
+
+<p>In the previous <a href="https://arrow.apache.org/blog/2023/04/11/our-journey-at-f5-with-apache-arrow-part-1/">article</a>, we discussed our use of Apache Arrow within the context of the OpenTelemetry project. We investigated various techniques to maximize the efficiency of Apache Arrow, aiming to find the optimal balance between data compression ratio and queryability. The compression results speak for themselves, boasting improvements ranging from 1.5x to 5x better than the original [...]
+
+<p>The first technique we’ll discuss aims to optimize schemas in terms of memory usage. As you’ll see, the gains can be substantial, potentially halving memory usage in certain cases. The second section will delve more deeply into the various approaches that can be used to handle recursive schema definitions. Lastly, we’ll emphasize that the design of your schema(s), coupled with the sorts you can apply at the record level, play a pivotal role in maximizing the benefits of Apache Arrow a [...]
+
+<h2 id="handling-dynamic-and-unknown-data-distributions">Handling dynamic and unknown data distributions</h2>
+
+<p>In certain contexts, the comprehensive definition of an Arrow schema can end up being overly broad and complex in order to cover all possible cases that you intend to represent in columnar form. However, as is often the case with complex schemas, only a subset of this schema will actually be utilized for a specific deployment. Similarly, it’s not always possible to determine the optimal dictionary encoding for one or more fields in advance. Employing a broad and very general schema th [...]
+
+<p>To illustrate this more concretely, let’s consider an OTel collector positioned at the output of a production environment, receiving a telemetry data stream produced by a large and dynamic set of servers. Invariably, the content of this telemetry stream will change in volume and nature over time. It’s challenging to predict the optimal schema in such a scenario, and it’s equally difficult to know in advance the distribution of a particular attribute of the telemetry data passing throu [...]
+
+<p>To optimize such scenarios, we have adopted an intermediary approach that we have named <strong>dynamic Arrow schema</strong>, aiming to gradually adapt the schema based on the observed data. The general principle is relatively simple. We start with a general schema defining the maximum envelope of what should be represented. Some fields of this schema will be declared optional, while other fields will be encoded with multiple possible options depending on the observed distribution. I [...]
+
+<p>The following Go Arrow schema definition provides an example of such a schema, instrumented with a collection of annotations. These annotations will be processed by an enhanced Record Builder, equipped with the ability to dynamically adapt the schema. The structure of this system is illustrated in Figure 1.</p>
+
+<div class="language-go highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">var</span> <span class="p">(</span>
+  <span class="c">// Arrow schema for the OTLP Arrow Traces record (without attributes, links, and events).</span>
+  <span class="n">TracesSchema</span> <span class="o">=</span> <span class="n">arrow</span><span class="o">.</span><span class="n">NewSchema</span><span class="p">([]</span><span class="n">arrow</span><span class="o">.</span><span class="n">Field</span><span class="p">{</span>
+      <span class="c">// Nullabe:true means the field is optional, in this case of 16 bit unsigned integers </span>
+      <span class="p">{</span><span class="n">Name</span><span class="o">:</span> <span class="n">constants</span><span class="o">.</span><span class="n">ID</span><span class="p">,</span> <span class="n">Type</span><span class="o">:</span> <span class="n">arrow</span><span class="o">.</span><span class="n">PrimitiveTypes</span><span class="o">.</span><span class="n">Uint16</span><span class="p">,</span> <span class="n">Nullable</span><span class="o">:</span> <span class="no">true</span>< [...]
+      <span class="p">{</span><span class="n">Name</span><span class="o">:</span> <span class="n">constants</span><span class="o">.</span><span class="n">Resource</span><span class="p">,</span> <span class="n">Type</span><span class="o">:</span> <span class="n">arrow</span><span class="o">.</span><span class="n">StructOf</span><span class="p">([]</span><span class="n">arrow</span><span class="o">.</span><span class="n">Field</span><span class="p">{</span>
+        <span class="p">{</span><span class="n">Name</span><span class="o">:</span> <span class="n">constants</span><span class="o">.</span><span class="n">ID</span><span class="p">,</span> <span class="n">Type</span><span class="o">:</span> <span class="n">arrow</span><span class="o">.</span><span class="n">PrimitiveTypes</span><span class="o">.</span><span class="n">Uint16</span><span class="p">,</span> <span class="n">Nullable</span><span class="o">:</span> <span class="no">true</span [...]
+        <span class="c">// --- Use dictionary with 8 bit integers initially ----</span>
+        <span class="p">{</span><span class="n">Name</span><span class="o">:</span> <span class="n">constants</span><span class="o">.</span><span class="n">SchemaUrl</span><span class="p">,</span><span class="n">Type</span><span class="o">:</span> <span class="n">arrow</span><span class="o">.</span><span class="n">BinaryTypes</span><span class="o">.</span><span class="n">String</span><span class="p">,</span><span class="n">Metadata</span><span class="o">:</span> <span class="n">schema</s [...]
+        <span class="p">{</span><span class="n">Name</span><span class="o">:</span> <span class="n">constants</span><span class="o">.</span><span class="n">DroppedAttributesCount</span><span class="p">,</span><span class="n">Type</span><span class="o">:</span> <span class="n">arrow</span><span class="o">.</span><span class="n">PrimitiveTypes</span><span class="o">.</span><span class="n">Uint32</span><span class="p">,</span><span class="n">Nullable</span><span class="o">:</span> <span cla [...]
+      <span class="p">}</span><span class="o">...</span><span class="p">),</span> <span class="n">Nullable</span><span class="o">:</span> <span class="no">true</span><span class="p">},</span>
+      <span class="p">{</span><span class="n">Name</span><span class="o">:</span> <span class="n">constants</span><span class="o">.</span><span class="n">Scope</span><span class="p">,</span> <span class="n">Type</span><span class="o">:</span> <span class="n">arrow</span><span class="o">.</span><span class="n">StructOf</span><span class="p">([]</span><span class="n">arrow</span><span class="o">.</span><span class="n">Field</span><span class="p">{</span>
+          <span class="p">{</span><span class="n">Name</span><span class="o">:</span> <span class="n">constants</span><span class="o">.</span><span class="n">ID</span><span class="p">,</span> <span class="n">Type</span><span class="o">:</span> <span class="n">arrow</span><span class="o">.</span><span class="n">PrimitiveTypes</span><span class="o">.</span><span class="n">Uint16</span><span class="p">,</span> <span class="n">Metadata</span><span class="o">:</span> <span class="n">acommon</ [...]
+          <span class="c">// --- Use dictionary with 8 bit integers initially ----</span>
+          <span class="p">{</span><span class="n">Name</span><span class="o">:</span> <span class="n">constants</span><span class="o">.</span><span class="n">Name</span><span class="p">,</span> <span class="n">Type</span><span class="o">:</span> <span class="n">arrow</span><span class="o">.</span><span class="n">BinaryTypes</span><span class="o">.</span><span class="n">String</span><span class="p">,</span> <span class="n">Metadata</span><span class="o">:</span> <span class="n">acommon</s [...]
+          <span class="p">{</span><span class="n">Name</span><span class="o">:</span> <span class="n">constants</span><span class="o">.</span><span class="n">Version</span><span class="p">,</span> <span class="n">Type</span><span class="o">:</span> <span class="n">arrow</span><span class="o">.</span><span class="n">BinaryTypes</span><span class="o">.</span><span class="n">String</span><span class="p">,</span> <span class="n">Metadata</span><span class="o">:</span> <span class="n">acommon [...]
+          <span class="p">{</span><span class="n">Name</span><span class="o">:</span> <span class="n">constants</span><span class="o">.</span><span class="n">DroppedAttributesCount</span><span class="p">,</span> <span class="n">Type</span><span class="o">:</span> <span class="n">arrow</span><span class="o">.</span><span class="n">PrimitiveTypes</span><span class="o">.</span><span class="n">Uint32</span><span class="p">,</span> <span class="n">Nullable</span><span class="o">:</span> <span [...]
+      <span class="p">}</span><span class="o">...</span><span class="p">),</span> <span class="n">Nullable</span><span class="o">:</span> <span class="no">true</span><span class="p">},</span>
+      <span class="p">{</span><span class="n">Name</span><span class="o">:</span> <span class="n">constants</span><span class="o">.</span><span class="n">SchemaUrl</span><span class="p">,</span> <span class="n">Type</span><span class="o">:</span> <span class="n">arrow</span><span class="o">.</span><span class="n">BinaryTypes</span><span class="o">.</span><span class="n">String</span><span class="p">,</span> <span class="n">Metadata</span><span class="o">:</span> <span class="n">schema</s [...]
+      <span class="p">{</span><span class="n">Name</span><span class="o">:</span> <span class="n">constants</span><span class="o">.</span><span class="n">StartTimeUnixNano</span><span class="p">,</span> <span class="n">Type</span><span class="o">:</span> <span class="n">arrow</span><span class="o">.</span><span class="n">FixedWidthTypes</span><span class="o">.</span><span class="n">Timestamp_ns</span><span class="p">},</span>
+      <span class="p">{</span><span class="n">Name</span><span class="o">:</span> <span class="n">constants</span><span class="o">.</span><span class="n">DurationTimeUnixNano</span><span class="p">,</span> <span class="n">Type</span><span class="o">:</span> <span class="n">arrow</span><span class="o">.</span><span class="n">FixedWidthTypes</span><span class="o">.</span><span class="n">Duration_ms</span><span class="p">,</span> <span class="n">Metadata</span><span class="o">:</span> <span [...]
+      <span class="p">{</span><span class="n">Name</span><span class="o">:</span> <span class="n">constants</span><span class="o">.</span><span class="n">TraceId</span><span class="p">,</span> <span class="n">Type</span><span class="o">:</span> <span class="o">&amp;</span><span class="n">arrow</span><span class="o">.</span><span class="n">FixedSizeBinaryType</span><span class="p">{</span><span class="n">ByteWidth</span><span class="o">:</span> <span class="m">16</span><span class="p">}},</span>
+      <span class="p">{</span><span class="n">Name</span><span class="o">:</span> <span class="n">constants</span><span class="o">.</span><span class="n">SpanId</span><span class="p">,</span> <span class="n">Type</span><span class="o">:</span> <span class="o">&amp;</span><span class="n">arrow</span><span class="o">.</span><span class="n">FixedSizeBinaryType</span><span class="p">{</span><span class="n">ByteWidth</span><span class="o">:</span> <span class="m">8</span><span class="p">}},</span>
+      <span class="p">{</span><span class="n">Name</span><span class="o">:</span> <span class="n">constants</span><span class="o">.</span><span class="n">TraceState</span><span class="p">,</span> <span class="n">Type</span><span class="o">:</span> <span class="n">arrow</span><span class="o">.</span><span class="n">BinaryTypes</span><span class="o">.</span><span class="n">String</span><span class="p">,</span> <span class="n">Metadata</span><span class="o">:</span> <span class="n">schema</ [...]
+      <span class="p">{</span><span class="n">Name</span><span class="o">:</span> <span class="n">constants</span><span class="o">.</span><span class="n">ParentSpanId</span><span class="p">,</span> <span class="n">Type</span><span class="o">:</span> <span class="o">&amp;</span><span class="n">arrow</span><span class="o">.</span><span class="n">FixedSizeBinaryType</span><span class="p">{</span><span class="n">ByteWidth</span><span class="o">:</span> <span class="m">8</span><span class="p" [...]
+      <span class="p">{</span><span class="n">Name</span><span class="o">:</span> <span class="n">constants</span><span class="o">.</span><span class="n">Name</span><span class="p">,</span> <span class="n">Type</span><span class="o">:</span> <span class="n">arrow</span><span class="o">.</span><span class="n">BinaryTypes</span><span class="o">.</span><span class="n">String</span><span class="p">,</span> <span class="n">Metadata</span><span class="o">:</span> <span class="n">schema</span>< [...]
+      <span class="p">{</span><span class="n">Name</span><span class="o">:</span> <span class="n">constants</span><span class="o">.</span><span class="n">KIND</span><span class="p">,</span> <span class="n">Type</span><span class="o">:</span> <span class="n">arrow</span><span class="o">.</span><span class="n">PrimitiveTypes</span><span class="o">.</span><span class="n">Int32</span><span class="p">,</span> <span class="n">Metadata</span><span class="o">:</span> <span class="n">schema</span [...]
+      <span class="p">{</span><span class="n">Name</span><span class="o">:</span> <span class="n">constants</span><span class="o">.</span><span class="n">DroppedAttributesCount</span><span class="p">,</span> <span class="n">Type</span><span class="o">:</span> <span class="n">arrow</span><span class="o">.</span><span class="n">PrimitiveTypes</span><span class="o">.</span><span class="n">Uint32</span><span class="p">,</span> <span class="n">Nullable</span><span class="o">:</span> <span cla [...]
+      <span class="p">{</span><span class="n">Name</span><span class="o">:</span> <span class="n">constants</span><span class="o">.</span><span class="n">DroppedEventsCount</span><span class="p">,</span> <span class="n">Type</span><span class="o">:</span> <span class="n">arrow</span><span class="o">.</span><span class="n">PrimitiveTypes</span><span class="o">.</span><span class="n">Uint32</span><span class="p">,</span> <span class="n">Nullable</span><span class="o">:</span> <span class=" [...]
+      <span class="p">{</span><span class="n">Name</span><span class="o">:</span> <span class="n">constants</span><span class="o">.</span><span class="n">DroppedLinksCount</span><span class="p">,</span> <span class="n">Type</span><span class="o">:</span> <span class="n">arrow</span><span class="o">.</span><span class="n">PrimitiveTypes</span><span class="o">.</span><span class="n">Uint32</span><span class="p">,</span> <span class="n">Nullable</span><span class="o">:</span> <span class="n [...]
+      <span class="p">{</span><span class="n">Name</span><span class="o">:</span> <span class="n">constants</span><span class="o">.</span><span class="n">Status</span><span class="p">,</span> <span class="n">Type</span><span class="o">:</span> <span class="n">arrow</span><span class="o">.</span><span class="n">StructOf</span><span class="p">([]</span><span class="n">arrow</span><span class="o">.</span><span class="n">Field</span><span class="p">{</span>
+        <span class="p">{</span><span class="n">Name</span><span class="o">:</span> <span class="n">constants</span><span class="o">.</span><span class="n">StatusCode</span><span class="p">,</span> <span class="n">Type</span><span class="o">:</span> <span class="n">arrow</span><span class="o">.</span><span class="n">PrimitiveTypes</span><span class="o">.</span><span class="n">Int32</span><span class="p">,</span> <span class="n">Metadata</span><span class="o">:</span> <span class="n">sche [...]
+        <span class="p">{</span><span class="n">Name</span><span class="o">:</span> <span class="n">constants</span><span class="o">.</span><span class="n">StatusMessage</span><span class="p">,</span> <span class="n">Type</span><span class="o">:</span> <span class="n">arrow</span><span class="o">.</span><span class="n">BinaryTypes</span><span class="o">.</span><span class="n">String</span><span class="p">,</span> <span class="n">Metadata</span><span class="o">:</span> <span class="n">sch [...]
+      <span class="p">}</span><span class="o">...</span><span class="p">),</span> <span class="n">Nullable</span><span class="o">:</span> <span class="no">true</span><span class="p">},</span>
+    <span class="p">},</span> <span class="no">nil</span><span class="p">)</span>
+  <span class="p">)</span>
+</code></pre></div></div>
+
+<p>In this example, Arrow field-level metadata are employed to designate when a field is optional (Nullable: true) or to specify the minimal dictionary encoding applicable to a particular field (Metadata Dictionary8/16/…). Now let’s imagine a scenario utilizing this schema in a straightforward scenario, wherein only a handful of fields are actually in use, and the cardinality of most dictionary-encoded fields is low (i.e., below 2^8). Ideally, we’d want a system capable of dynamically co [...]
+
+<div class="language-go highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">var</span> <span class="p">(</span>
+  <span class="c">// Simplified schema definition generated by the Arrow Record encoder based on </span>
+  <span class="c">// the data observed.</span>
+  <span class="n">TracesSchema</span> <span class="o">=</span> <span class="n">arrow</span><span class="o">.</span><span class="n">NewSchema</span><span class="p">([]</span><span class="n">arrow</span><span class="o">.</span><span class="n">Field</span><span class="p">{</span>
+    <span class="p">{</span><span class="n">Name</span><span class="o">:</span> <span class="n">constants</span><span class="o">.</span><span class="n">ID</span><span class="p">,</span> <span class="n">Type</span><span class="o">:</span> <span class="n">arrow</span><span class="o">.</span><span class="n">PrimitiveTypes</span><span class="o">.</span><span class="n">Uint16</span><span class="p">,</span> <span class="n">Nullable</span><span class="o">:</span> <span class="no">true</span><sp [...]
+    <span class="p">{</span><span class="n">Name</span><span class="o">:</span> <span class="n">constants</span><span class="o">.</span><span class="n">StartTimeUnixNano</span><span class="p">,</span> <span class="n">Type</span><span class="o">:</span> <span class="n">arrow</span><span class="o">.</span><span class="n">FixedWidthTypes</span><span class="o">.</span><span class="n">Timestamp_ns</span><span class="p">},</span>
+    <span class="p">{</span><span class="n">Name</span><span class="o">:</span> <span class="n">constants</span><span class="o">.</span><span class="n">TraceId</span><span class="p">,</span> <span class="n">Type</span><span class="o">:</span> <span class="o">&amp;</span><span class="n">arrow</span><span class="o">.</span><span class="n">FixedSizeBinaryType</span><span class="p">{</span><span class="n">ByteWidth</span><span class="o">:</span> <span class="m">16</span><span class="p">}},</span>
+    <span class="p">{</span><span class="n">Name</span><span class="o">:</span> <span class="n">constants</span><span class="o">.</span><span class="n">SpanId</span><span class="p">,</span> <span class="n">Type</span><span class="o">:</span> <span class="o">&amp;</span><span class="n">arrow</span><span class="o">.</span><span class="n">FixedSizeBinaryType</span><span class="p">{</span><span class="n">ByteWidth</span><span class="o">:</span> <span class="m">8</span><span class="p">}},</span>
+    <span class="p">{</span><span class="n">Name</span><span class="o">:</span> <span class="n">constants</span><span class="o">.</span><span class="n">Name</span><span class="p">,</span> <span class="n">Type</span><span class="o">:</span> <span class="o">&amp;</span><span class="n">arrow</span><span class="o">.</span><span class="n">DictionaryType</span> <span class="p">{</span>
+      <span class="n">IndexType</span><span class="o">:</span> <span class="n">arrow</span><span class="o">.</span><span class="n">PrimitiveTypes</span><span class="o">.</span><span class="n">Uint8</span><span class="p">,</span>
+      <span class="n">ValueType</span><span class="o">:</span> <span class="n">arrow</span><span class="o">.</span><span class="n">BinaryTypes</span><span class="o">.</span><span class="n">String</span><span class="p">}},</span>
+    <span class="p">{</span><span class="n">Name</span><span class="o">:</span> <span class="n">constants</span><span class="o">.</span><span class="n">KIND</span><span class="p">,</span> <span class="n">Type</span><span class="o">:</span> <span class="o">&amp;</span><span class="n">arrow</span><span class="o">.</span><span class="n">DictionaryType</span> <span class="p">{</span>
+      <span class="n">IndexType</span><span class="o">:</span> <span class="n">arrow</span><span class="o">.</span><span class="n">PrimitiveTypes</span><span class="o">.</span><span class="n">Uint8</span><span class="p">,</span>
+      <span class="n">ValueType</span><span class="o">:</span> <span class="n">arrow</span><span class="o">.</span><span class="n">PrimitiveTypes</span><span class="o">.</span><span class="n">Int32</span><span class="p">,</span>
+    <span class="p">},</span> <span class="n">Nullable</span><span class="o">:</span> <span class="no">true</span><span class="p">},</span>
+  <span class="p">},</span> <span class="no">nil</span><span class="p">)</span>
+<span class="p">)</span>
+</code></pre></div></div>
+
+<p>Additionally, we desire a system capable of automatically adapting the aforementioned schema if it encounters new fields or existing fields with a cardinality exceeding the size of the current dictionary definition in future batches. In extreme scenarios, if the cardinality of a specific field surpasses a certain threshold, we would prefer the system to automatically revert to the non-dictionary representation (mechanism of dictionary overflow). That is precisely what we will elaborat [...]
+
+<p>An overview of the different components and events used to implement this approach is depicted in figure 1.</p>
+
+<figure style="text-align: center;">
+  <img src="/img/journey-apache-arrow/adaptive-schema-architecture.svg" width="100%" class="img-responsive" alt="Fig 1: Adaptive Arrow schema architecture overview." />
+  <figcaption>Fig 1: Adaptive Arrow schema architecture overview.</figcaption>
+</figure>
+
+<p>The overall Adaptive Arrow schema component takes a data stream segmented into batches and produces one or multiple streams of Arrow Records (one schema per stream). Each of these records is defined with an Arrow schema, which is based both on the annotated Arrow schema and the shape of fields observed in the incoming data.</p>
+
+<p>More specifically, the process of the Adaptive Arrow schema component consists of four main phases</p>
+
+<p><strong>Initialization phase</strong></p>
+
+<p>During the initialization phase, the Arrow Record Encoder reads the annotated Arrow schema (i.e. the reference schema) and generates a collection of transformations. When these transformations are applied to the reference schema, they yield the first minimal Arrow schema that adheres to the constraints depicted by these annotations. In this initial iteration, all optional fields are eliminated, and all dictionary-encoded fields are configured to utilize the smallest encoding as define [...]
+
+<p><strong>Feeding phase</strong></p>
+
+<p>Following the initialization is the feeding phase. Here, the Arrow Record Encoder scans the batch and attempts to store all the fields in an Arrow Record Builder, which is defined by the schema created in the prior step. If a field exists in the data but is not included in the schema, the encoder will trigger a <code class="language-plaintext highlighter-rouge">missing field</code> event. This process continues until the current batch is completely processed. An additional internal ch [...]
+
+<p><strong>Corrective phase</strong></p>
+
+<p>If at least one event has been generated, a corrective phase will be initiated to fix the schema. This optional stage considers all the events generated in the previous stage and adjusts the transformation tree accordingly to align with the observed data. A <code class="language-plaintext highlighter-rouge">missing field</code> event will remove a NoField transformation for the corresponding field. A <code class="language-plaintext highlighter-rouge">dictionary overflow</code> event w [...]
+
+<p><strong>Routing phase</strong></p>
+
+<p>Once a Record Builder has been properly fed, an Arrow Record is created, and the system transitions into the routing phase. The router component calculates a schema signature of the record and utilizes this signature to route the record to an existing Arrow stream compatible with the signature, or it initiates a new stream if there is no match.</p>
+
+<p>This four-phase process should gradually adapt and stabilize the schema to a structure and definition that is optimized for a specific data stream. Unused fields will never unnecessarily consume memory. Dictionary-encoded fields will be defined with the most optimal index size based on the observed data cardinality, and fields with a cardinality exceeding a certain threshold (defined by configuration) will automatically revert to their non-dictionary-encoded versions.</p>
+
+<p>To effectively execute this approach, you must ensure that there is a sufficient level of flexibility on the receiver side. It’s crucial that your downstream pipeline remains functional even when some fields are missing in the schema or when various dictionary index configurations are employed. While this may not always be feasible without implementing additional transformations upon reception, it proves worthwhile in certain scenarios.</p>
+
+<p>The following results highlight the significant memory usage reduction achieved through the application of various optimization techniques. These results were gathered using a schema akin to the one previously presented. The considerable memory efficiency underscores the effectiveness of this approach.</p>
+
+<figure style="text-align: center;">
+  <img src="/img/journey-apache-arrow/memory-usage-25k-traces.png" width="100%" class="img-responsive" alt="Fig 2: Comparative analysis of memory usage for different schema optimizations." />
+  <figcaption>Fig 2: Comparative analysis of memory usage for different schema optimizations.</figcaption>
+</figure>
+
+<p>The concept of a transformation tree enables a generalized approach to perform various types of schema optimizations based on the knowledge acquired from the data. This architecture is highly flexible; the current implementation allows for the removal of unused fields, the application of the most specific dictionary encoding, and the optimization of union type variants. In the future, there is potential for introducing additional optimizations that can be expressed as transformations  [...]
+
+<h2 id="handling-recursive-schema-definition">Handling recursive schema definition</h2>
+
+<p>Apache Arrow does not support recursive schema definitions, implying that data structures with variable depth cannot be directly represented. Figure 3 exemplifies such a recursive definition where the value of an attribute can either be a simple data type, a list of values, or a map of values. The depth of this definition cannot be predetermined.</p>
+
+<figure style="text-align: center;">
+  <img src="/img/journey-apache-arrow/recursive-def-otel-attributes.svg" width="100%" class="img-responsive" alt="Fig 3: Recursive definition of OTel attributes." />
+  <figcaption>Fig 3: Recursive definition of OTel attributes.</figcaption>
+</figure>
+
+<p>Several strategies can be employed to circumvent this limitation. Technically, the dynamic schema concept we’ve presented could be expanded to dynamically update the schema to include any missing level of recursion. However, for this use case, this method is complex and has the notable downside of not offering any assurance on the maximum size of the schema. This lack of constraint can pose security issues; hence, this approach isn’t elaborated upon.</p>
+
+<p>The second approach consists of breaking the recursion by employing a serialization format that supports the definition of a recursive schema. The result of this serialization can then be integrated into the Arrow record as a binary type column, effectively halting the recursion at a specific level. To fully leverage the advantages of columnar representation, it is crucial to apply this ad-hoc serialization as deeply within the data structure as feasible. In the context of OpenTelemet [...]
+
+<p>A variety of serialization formats, such as protobuf or CBOR, can be employed to encode recursive data. Without particular treatment, these binary columns may not be easily queryable by the existing Arrow query engines. Therefore, it’s crucial to thoughtfully ascertain when and where to apply such a technique. While I’m not aware of any attempts to address this limitation within the Arrow system, it doesn’t seem insurmountable and would constitute a valuable extension. This would help [...]
+
+<h2 id="importance-of-sorting">Importance of sorting</h2>
+
+<p>In our preceding <a href="https://arrow.apache.org/blog/2023/04/11/our-journey-at-f5-with-apache-arrow-part-1/">article</a>, we explored a variety of strategies to represent hierarchical data models, including nested structures based on struct/list/map/union, denormalization and flattening representations, as well as a multi-record approach. Each method presents its unique advantages and disadvantages. However, in this last section, we’ll delve deeper into the multi-record approach, f [...]
+
+<p>In the OTel Arrow protocol, we leverage the multi-record approach to represent metrics, logs, and traces. The following entity-relationship diagram offers a simplified version of various record schemas and illustrates their relationships, specifically those used to represent gauges and sums. A comprehensive description of the Arrow data model employed in OpenTelemetry can be accessed <a href="https://github.com/f5/otel-arrow-adapter/blob/main/docs/data_model.md">here</a>.</p>
+
+<p>These Arrow records, also referred to as tables, form a hierarchy with <code class="language-plaintext highlighter-rouge">METRICS</code> acting as the primary entry point. Each table can be independently sorted according to one or more columns. This sorting strategy facilitates the grouping of duplicated data, thereby improving the compression ratio.</p>
+
+<figure style="text-align: center;">
+  <img src="/img/journey-apache-arrow/metric-dp-data-model.png" width="100%" class="img-responsive" alt="Fig 4: A simplified entity-relationship diagram representing OTel sum &amp; gauge metrics." />
+  <figcaption>Fig 4: A simplified entity-relationship diagram representing OTel sum &amp; gauge metrics.</figcaption>
+</figure>
+
+<p>The relationship between the primary <code class="language-plaintext highlighter-rouge">METRICS</code> table and the secondary <code class="language-plaintext highlighter-rouge">RESOURCE_ATTRS</code>, <code class="language-plaintext highlighter-rouge">SCOPE_ATTRS</code>, and <code class="language-plaintext highlighter-rouge">NUMBER_DATA_POINTS</code> tables is established through a unique <code class="language-plaintext highlighter-rouge">id</code> in the main table and a <code class= [...]
+
+<p>To achieve this, the ordering process for the different tables adheres to the hierarchy, starting from the main table down to the leaf. The main table is sorted (by one or multiple columns), and then an incremental id is assigned to each row. This numerical id is stored using delta-encoding, which is implemented on top of Arrow.</p>
+
+<p>The secondary tables directly connected to the main table are sorted using the same principle, but the <code class="language-plaintext highlighter-rouge">parent_id</code> column is consistently utilized as the last column in the sort statement. Including the <code class="language-plaintext highlighter-rouge">parent_id</code> column in the sort statement enables the use of a variation of delta encoding. The efficiency of this approach is summarized in the chart below.</p>
+
+<figure style="text-align: center;">
+  <img src="/img/journey-apache-arrow/compressed-message-size.png" width="100%" class="img-responsive" alt="Fig 5: Comparative analysis of compression ratios - OTLP Protocol vs. Two variations of the OTel Arrow Protocol with multivariate metrics stream. (lower percentage is better)" />
+  <figcaption>Fig 5: Comparative analysis of compression ratios - OTLP Protocol vs. Two variations of the OTel Arrow Protocol with multivariate metrics stream. (lower percentage is better)</figcaption>
+</figure>
+
+<p>The second column presents the average size of the OTLP batch both pre- and post-ZSTD compression for batches of varying sizes. This column serves as a reference point for the ensuing two columns. The third column displays results for the OTel Arrow protocol without any sorting applied, while the final column showcases results for the OTel Arrow protocol with sorting enabled.</p>
+
+<p>Before compression, the average batch sizes for the two OTel Arrow configurations are predictably similar. However, post-compression, the benefits of sorting each individual table on the compression ratio become immediately apparent. Without sorting, the OTel Arrow protocol exhibits a compression ratio that’s 1.40 to 1.67 times better than the reference. When sorting is enabled, the OTel Arrow protocol outperforms the reference by a factor ranging from 4.94 to 7.21 times!</p>
+
+<p>The gains in terms of compression obviously depend on your data and the redundancy of information present in your data batches. According to our observations, the choice of a good sort generally improves the compression ratio by a factor of 1.5 to 8.</p>
+
+<p>Decomposing a complex schema into multiple simpler schemas to enhance sorting capabilities, coupled with a targeted approach to efficiently encode the identifiers representing the relationships, emerges as an effective strategy for enhancing overall data compression. This method also eliminates complex Arrow data types, such as lists, maps, and unions. Consequently, it not only improves but also simplifies data query-ability. This simplification proves beneficial for existing query en [...]
+
+<h2 id="conclusion-and-next-steps">Conclusion and next steps</h2>
+
+<p>This article concludes our two-part series on Apache Arrow, wherein we have explored various strategies to maximize the utility of Apache Arrow within specific contexts. The adaptive schema architecture presented in the second part of this series paves the way for future optimization possibilities. We look forward to seeing what the community can add based on this contribution.</p>
+
+<p>Apache Arrow is an exceptional project, continually enhanced by a thriving ecosystem. However, throughout our exploration, we have noticed certain gaps or points of friction that, if addressed, could significantly enrich the overall experience.</p>
+<ul>
+  <li>Designing an efficient Arrow schema can, in some cases, prove to be a challenging task. Having the <strong>ability to collect statistics</strong> at the record level could facilitate this design phase (data distribution per field, dictionary stats, Arrow array sizes before/after compression, and so on). These statistics would also assist in identifying the most effective columns on which to base the record sorting.</li>
+  <li><strong>Native support for recursive schemas</strong> would also increase adoption by simplifying the use of Arrow in complex scenarios. While I’m not aware of any attempts to address this limitation within the Arrow system, it doesn’t seem insurmountable and would constitute a valuable extension. This would help reduce the complexity of integrating Arrow with other systems that rely on such recursive definitions.</li>
+  <li><strong>Harmonizing the support for data types as well as IPC stream capabilities</strong> would also be a major benefit. Predominant client libraries support nested and hierarchical schemas, but their use is limited due to a lack of full support across the rest of the ecosystem. For example, list and/or union types are not well supported by query engines or Parquet bridges. Also, the advanced dictionary support within IPC streams is not consistent across different implementations  [...]
+  <li><strong>Optimizing the support of complex schemas</strong> in terms of memory consumption and compression rate could be improved by natively integrating the concept of the dynamic schema presented in this article.</li>
+  <li><strong>Detecting dictionary overflows</strong> (index level) is not something that is easy to test on the fly. The API could be improved to indicate this overflow as soon as an insertion occurs.</li>
+</ul>
+
+<p>Our effort to utilize Apache Arrow in conjunction with OpenTelemetry has produced encouraging results. While this has necessitated considerable investment in terms of development, exploration, and benchmarking, we hope that these articles will aid in accelerating your journey with Apache Arrow. Looking ahead, we envision an end-to-end integration with Apache Arrow and plan to significantly extend our use of the Arrow ecosystem. This extension involves providing a bridge with Parquet a [...]
 
 -->
 
@@ -1265,211 +1444,4 @@ For details, see the <a href="https://lists.apache.org/thread/247z3t06mf132nocng
 
 <p>We welcome questions and contributions from all interested.  Issues
 can be filed on <a href="https://github.com/apache/arrow-adbc/issues">GitHub</a>, and questions can be directed to GitHub
-or the <a href="/community/">Arrow mailing lists</a>.</p>]]></content><author><name>pmc</name></author><category term="release" /><summary type="html"><![CDATA[The Apache Arrow team is pleased to announce the 0.3.0 release of the Apache Arrow ADBC libraries. This covers includes 24 resolved issues from 7 distinct contributors. This is a release of the libraries, which are at version 0.3.0. The API specification is versioned separately and is at version 1.0.0. The release notes below are  [...]
-
--->
-
-<p>The Apache Arrow team is pleased to announce the 0.1.0 release of
-Apache Arrow nanoarrow. This initial release covers 31 resolved issues from
-6 contributors.</p>
-
-<h2 id="release-highlights">Release Highlights</h2>
-
-<p>This initial release includes the following:</p>
-
-<ul>
-  <li>A <a href="#using-nanoarrow-in-c">C library</a> bundled as two files (nanoarrow.c
-and nanoarrow.h).</li>
-  <li>An <a href="#using-nanoarrow-in-c-r-and-python">R package</a> providing bindings for users
-of the R programming language.</li>
-</ul>
-
-<p>See the
-<a href="https://github.com/apache/arrow-nanoarrow/blob/apache-arrow-nanoarrow-0.1.0/CHANGELOG.md">Changelog</a>
-for a detailed list of contributions leading up to the initial release.</p>
-
-<h2 id="why-nanoarrow">Why nanoarrow?</h2>
-
-<p>The adoption of the
-<a href="https://arrow.apache.org/docs/format/CDataInterface.html">Arrow C Data Interface</a>
-and the <a href="https://arrow.apache.org/docs/format/CStreamInterface.html">Arrow C Stream Interface</a>
-since their
-<a href="https://arrow.apache.org/blog/2020/05/03/introducing-arrow-c-data-interface/">introduction</a>
-have been impressive and enthusiastic: not only have Arrow language bindings
-adopted the standard to pass data among themselves, a growing number of
-high-profile libraries like
-<a href="https://gdal.org/development/rfc/rfc86_column_oriented_api.html">GDAL</a> and
-<a href="https://duckdb.org/2021/12/03/duck-arrow.html">DuckDB</a> use the standard to
-improve performance and provide an ABI-stable interface to tabular input and output.</p>
-
-<p>GDAL and DuckDB are fortunate to have hard-working and forward-thinking maintainers
-that were motivated to provide support for the Arrow C Data and Stream interfaces
-even though the code to do so required an intimate knowledge of both the interface
-and the columnar specification on which it is based.</p>
-
-<p>The vision of <a href="https://github.com/apache/arrow-nanoarrow">nanoarrow</a>
-is that it should be trivial for a library or application to implement an Arrow-based
-interface: if a library consumes or produces tabular data, Arrow should be the
-first place developers look. Developers shouldn’t have to be familiar with the
-details of the columnar specification—nor should they have to take on any
-build-time dependencies—to get started.</p>
-
-<p>The <a href="https://arrow.apache.org/docs/format/ADBC.html">Arrow Database Connectivity (ADBC)</a>
-specification is a good example of such a project, and provided a strong
-motivator for the development of nanoarrow: at the heart of ADBC is the
-idea of a core “driver manager” and database-specific drivers that are distributed
-as independent C/C++/Python/R/Java/Go projects. At least in R and Python,
-embedding an existing Arrow implementation (e.g., Arrow C++) is challenging
-in the context of multiple packages intended to be loaded into the same process.
-As of this writing, ADBC includes nanoarrow-based SQLite and PostgreSQL drivers
-and a nanoarrow-based validation suite for drivers.</p>
-
-<h2 id="using-nanoarrow-in-c">Using nanoarrow in C</h2>
-
-<p>The nanoarrow C library is distributed as
-<a href="https://github.com/apache/arrow-nanoarrow/tree/main/dist">two files (nanoarrow.h and nanoarrow.c)</a>
-that can be copied and vendored into an existing code base. This results in
-a static library of about 50  KB and builds in less than a second. Some features
-that nanoarrow provides are:</p>
-
-<ul>
-  <li><a href="https://apache.github.io/arrow-nanoarrow/dev/c.html#creating-schemas">Helpers to create types, schemas, and metadata</a></li>
-  <li><a href="https://apache.github.io/arrow-nanoarrow/dev/c.html#owning-growable-buffers">Growable buffers</a>,
-including the option for custom allocators/deallocators.</li>
-  <li><a href="https://apache.github.io/arrow-nanoarrow/dev/c.html#bitmap-utilities">Bitmap (i.e., bitpacked boolean) utilities</a></li>
-  <li>An <a href="https://apache.github.io/arrow-nanoarrow/dev/c.html#creating-arrays">API for building arrays from buffers</a></li>
-  <li>An <a href="https://apache.github.io/arrow-nanoarrow/dev/c.html#creating-arrays">API for building arrays element-wise</a></li>
-  <li>An <a href="https://apache.github.io/arrow-nanoarrow/dev/c.html#reading-arrays">API to extract elements element-wise</a>
-from an existing array.</li>
-</ul>
-
-<p>For example, one can build an integer array element-wise:</p>
-
-<div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="cp">#include</span> <span class="cpf">"nanoarrow.h"</span><span class="cp">
-</span>
-<span class="kt">int</span> <span class="nf">make_simple_array</span><span class="p">(</span><span class="k">struct</span> <span class="n">ArrowArray</span><span class="o">*</span> <span class="n">array_out</span><span class="p">,</span> <span class="k">struct</span> <span class="n">ArrowSchema</span><span class="o">*</span> <span class="n">schema_out</span><span class="p">)</span> <span class="p">{</span>
-  <span class="k">struct</span> <span class="n">ArrowError</span> <span class="n">error</span><span class="p">;</span>
-  <span class="n">array_out</span><span class="o">-&gt;</span><span class="n">release</span> <span class="o">=</span> <span class="nb">NULL</span><span class="p">;</span>
-  <span class="n">schema_out</span><span class="o">-&gt;</span><span class="n">release</span> <span class="o">=</span> <span class="nb">NULL</span><span class="p">;</span>
-
-  <span class="n">NANOARROW_RETURN_NOT_OK</span><span class="p">(</span><span class="n">ArrowArrayInitFromType</span><span class="p">(</span><span class="n">array_out</span><span class="p">,</span> <span class="n">NANOARROW_TYPE_INT32</span><span class="p">));</span>
-
-  <span class="n">NANOARROW_RETURN_NOT_OK</span><span class="p">(</span><span class="n">ArrowArrayStartAppending</span><span class="p">(</span><span class="n">array_out</span><span class="p">));</span>
-  <span class="n">NANOARROW_RETURN_NOT_OK</span><span class="p">(</span><span class="n">ArrowArrayAppendInt</span><span class="p">(</span><span class="n">array_out</span><span class="p">,</span> <span class="mi">1</span><span class="p">));</span>
-  <span class="n">NANOARROW_RETURN_NOT_OK</span><span class="p">(</span><span class="n">ArrowArrayAppendInt</span><span class="p">(</span><span class="n">array_out</span><span class="p">,</span> <span class="mi">2</span><span class="p">));</span>
-  <span class="n">NANOARROW_RETURN_NOT_OK</span><span class="p">(</span><span class="n">ArrowArrayAppendInt</span><span class="p">(</span><span class="n">array_out</span><span class="p">,</span> <span class="mi">3</span><span class="p">));</span>
-  <span class="n">NANOARROW_RETURN_NOT_OK</span><span class="p">(</span><span class="n">ArrowArrayFinishBuilding</span><span class="p">(</span><span class="n">array_out</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">error</span><span class="p">));</span>
-
-  <span class="n">NANOARROW_RETURN_NOT_OK</span><span class="p">(</span><span class="n">ArrowSchemaInitFromType</span><span class="p">(</span><span class="n">schema_out</span><span class="p">,</span> <span class="n">NANOARROW_TYPE_INT32</span><span class="p">));</span>
-
-  <span class="k">return</span> <span class="n">NANOARROW_OK</span><span class="p">;</span>
-<span class="p">}</span>
-</code></pre></div></div>
-
-<p>Similarly, one can extract elements from an array:</p>
-
-<div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="cp">#include</span> <span class="cpf">&lt;stdio.h&gt;</span><span class="cp">
-#include</span> <span class="cpf">"nanoarrow.h"</span><span class="cp">
-</span>
-<span class="kt">int</span> <span class="nf">print_simple_array</span><span class="p">(</span><span class="k">struct</span> <span class="n">ArrowArray</span><span class="o">*</span> <span class="n">array</span><span class="p">,</span> <span class="k">struct</span> <span class="n">ArrowSchema</span><span class="o">*</span> <span class="n">schema</span><span class="p">)</span> <span class="p">{</span>
-  <span class="k">struct</span> <span class="n">ArrowError</span> <span class="n">error</span><span class="p">;</span>
-  <span class="k">struct</span> <span class="n">ArrowArrayView</span> <span class="n">array_view</span><span class="p">;</span>
-  <span class="n">NANOARROW_RETURN_NOT_OK</span><span class="p">(</span><span class="n">ArrowArrayViewInitFromSchema</span><span class="p">(</span><span class="o">&amp;</span><span class="n">array_view</span><span class="p">,</span> <span class="n">schema</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">error</span><span class="p">));</span>
-
-  <span class="k">if</span> <span class="p">(</span><span class="n">array_view</span><span class="p">.</span><span class="n">storage_type</span> <span class="o">!=</span> <span class="n">NANOARROW_TYPE_INT32</span><span class="p">)</span> <span class="p">{</span>
-    <span class="n">printf</span><span class="p">(</span><span class="s">"Array has storage that is not int32</span><span class="se">\n</span><span class="s">"</span><span class="p">);</span>
-  <span class="p">}</span>
-
-  <span class="kt">int</span> <span class="n">result</span> <span class="o">=</span> <span class="n">ArrowArrayViewSetArray</span><span class="p">(</span><span class="o">&amp;</span><span class="n">array_view</span><span class="p">,</span> <span class="n">array</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">error</span><span class="p">);</span>
-  <span class="k">if</span> <span class="p">(</span><span class="n">result</span> <span class="o">!=</span> <span class="n">NANOARROW_OK</span><span class="p">)</span> <span class="p">{</span>
-    <span class="n">ArrowArrayViewReset</span><span class="p">(</span><span class="o">&amp;</span><span class="n">array_view</span><span class="p">);</span>
-    <span class="k">return</span> <span class="n">result</span><span class="p">;</span>
-  <span class="p">}</span>
-
-  <span class="k">for</span> <span class="p">(</span><span class="kt">int64_t</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">array</span><span class="o">-&gt;</span><span class="n">length</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
-    <span class="n">printf</span><span class="p">(</span><span class="s">"%d</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span> <span class="p">(</span><span class="kt">int</span><span class="p">)</span><span class="n">ArrowArrayViewGetIntUnsafe</span><span class="p">(</span><span class="o">&amp;</span><span class="n">array_view</span><span class="p">,</span> <span class="n">i</span><span class="p">));</span>
-  <span class="p">}</span>
-
-  <span class="n">ArrowArrayViewReset</span><span class="p">(</span><span class="o">&amp;</span><span class="n">array_view</span><span class="p">);</span>
-  <span class="k">return</span> <span class="n">NANOARROW_OK</span><span class="p">;</span>
-<span class="p">}</span>
-</code></pre></div></div>
-
-<h2 id="using-nanoarrow-in-c-r-and-python">Using nanoarrow in C++, R, and Python</h2>
-
-<p>Recognizing that many projects for which nanoarrow may be useful will have
-access a higher-level runtime than C, there are experiments to provide
-these users with a minimal set of useful tools.</p>
-
-<p>For C++ projects, an experimental
-<a href="https://apache.github.io/arrow-nanoarrow/dev/cpp.html">“nanoarrow.hpp”</a>
-interface provides <code class="language-plaintext highlighter-rouge">unique_ptr</code>-like wrappers for nanoarrow C objects to
-reduce the verbosity of using the nanoarrow API. For example, the previous
-<code class="language-plaintext highlighter-rouge">print_simple_array()</code> implementation would collapse to:</p>
-
-<div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="cp">#include</span> <span class="cpf">&lt;stdio.h&gt;</span><span class="cp">
-#include</span> <span class="cpf">"nanoarrow.hpp"</span><span class="cp">
-</span>
-<span class="kt">int</span> <span class="nf">print_simple_array2</span><span class="p">(</span><span class="k">struct</span> <span class="nc">ArrowArray</span><span class="o">*</span> <span class="n">array</span><span class="p">,</span> <span class="k">struct</span> <span class="nc">ArrowSchema</span><span class="o">*</span> <span class="n">schema</span><span class="p">)</span> <span class="p">{</span>
-  <span class="k">struct</span> <span class="nc">ArrowError</span> <span class="n">error</span><span class="p">;</span>
-  <span class="n">nanoarrow</span><span class="o">::</span><span class="n">UniqueArrayView</span> <span class="n">array_view</span><span class="p">;</span>
-  <span class="n">NANOARROW_RETURN_NOT_OK</span><span class="p">(</span><span class="n">ArrowArrayViewInitFromSchema</span><span class="p">(</span><span class="n">array_view</span><span class="p">.</span><span class="n">get</span><span class="p">(),</span> <span class="n">schema</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">error</span><span class="p">));</span>
-  <span class="n">NANOARROW_RETURN_NOT_OK</span><span class="p">(</span><span class="n">ArrowArrayViewSetArray</span><span class="p">(</span><span class="n">array_view</span><span class="p">.</span><span class="n">get</span><span class="p">(),</span> <span class="n">array</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">error</span><span class="p">));</span>
-  <span class="k">for</span> <span class="p">(</span><span class="kt">int64_t</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">array</span><span class="o">-&gt;</span><span class="n">length</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
-    <span class="n">printf</span><span class="p">(</span><span class="s">"%d</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span> <span class="p">(</span><span class="kt">int</span><span class="p">)</span><span class="n">ArrowArrayViewGetIntUnsafe</span><span class="p">(</span><span class="n">array_view</span><span class="p">.</span><span class="n">get</span><span class="p">(),</span> <span class="n">i</span><span class="p">));</span>
-  <span class="p">}</span>
-  <span class="k">return</span> <span class="n">NANOARROW_OK</span><span class="p">;</span>
-<span class="p">}</span>
-</code></pre></div></div>
-
-<p>For R packages, experimental
-<a href="https://apache.github.io/arrow-nanoarrow/dev/r/index.html">R bindings</a> provide
-a limited set of conversions between R vectors and Arrow arrays such that
-R bindings for a library with an Arrow-based interface do not need to provide
-this behaviour themselves. Additional features include printing and validating
-the content of the C structures at the heart of the C Data and C Stream
-interfaces to facilitate the development of bindings to Arrow-based libraries.</p>
-
-<div class="language-r highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1"># install.packages("remotes")</span><span class="w">
-</span><span class="n">remotes</span><span class="o">::</span><span class="n">install_github</span><span class="p">(</span><span class="s2">"apache/arrow-nanoarrow/r"</span><span class="p">,</span><span class="w"> </span><span class="n">build</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">FALSE</span><span class="p">)</span><span class="w">
-</span><span class="n">library</span><span class="p">(</span><span class="n">nanoarrow</span><span class="p">)</span><span class="w">
-
-</span><span class="n">as_nanoarrow_array</span><span class="p">(</span><span class="m">1</span><span class="o">:</span><span class="m">5</span><span class="p">)</span><span class="w">
-</span><span class="c1">#&gt; &lt;nanoarrow_array int32[5]&gt;</span><span class="w">
-</span><span class="c1">#&gt;  $ length    : int 5</span><span class="w">
-</span><span class="c1">#&gt;  $ null_count: int 0</span><span class="w">
-</span><span class="c1">#&gt;  $ offset    : int 0</span><span class="w">
-</span><span class="c1">#&gt;  $ buffers   :List of 2</span><span class="w">
-</span><span class="c1">#&gt;   ..$ :&lt;nanoarrow_buffer_validity[0 b] at 0x0&gt;</span><span class="w">
-</span><span class="c1">#&gt;   ..$ :&lt;nanoarrow_buffer_data_int32[20 b] at 0x135d13c28&gt;</span><span class="w">
-</span><span class="c1">#&gt;  $ dictionary: NULL</span><span class="w">
-</span><span class="c1">#&gt;  $ children  : list()</span><span class="w">
-</span></code></pre></div></div>
-
-<p>A <a href="https://github.com/apache/arrow-nanoarrow/tree/main/python">Python package skeleton</a>
-exists in the nanoarrow repository and further functionality may be added once
-the C library interface has stabilized.</p>
-
-<h2 id="try-nanoarrow">Try nanoarrow</h2>
-
-<p>For any interested in giving nanoarrow a try, the easiest way to get started is to clone the
-<a href="https://github.com/apache/arrow-nanoarrow/tree/apache-arrow-nanoarrow-0.1.0">nanoarrow repository from GitHub</a>
-and build/modify the
-<a href="https://github.com/apache/arrow-nanoarrow/tree/apache-arrow-nanoarrow-0.1.0/examples/cmake-minimal">minimal CMake build example</a>.
-For applied usage, one can refer to the
-<a href="https://github.com/apache/arrow-adbc/tree/main/c/driver/sqlite">ADBC SQLite driver</a>
-and the <a href="https://github.com/apache/arrow-adbc/tree/main/c/driver/postgresql">ADBC PostgreSQL driver</a>.</p>
-
-<h2 id="contributors">Contributors</h2>
-
-<p>This initial release consists of contributions from 6 contributors in addition
-to the invaluable advice and support of the Apache Arrow developer mailing list.</p>
-
-<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ git shortlog -sn 8339114637919b661c1c8fae6764ceed532c935e..apache-arrow-nanoarrow-0.1.0 | grep -v "GitHub Actions"
-   100  Dewey Dunnington
-     7  David Li
-     2  Dirk Eddelbuettel
-     1  Dane Pitkin
-     1  Jonathan Keane
-     1  Joris Van den Bossche
-</code></pre></div></div>]]></content><author><name>pmc</name></author><category term="release" /><summary type="html"><![CDATA[The Apache Arrow team is pleased to announce the 0.1.0 release of Apache Arrow nanoarrow. This initial release covers 31 resolved issues from 6 contributors. Release Highlights This initial release includes the following: A C library bundled as two files (nanoarrow.c and nanoarrow.h). An R package providing bindings for users of the R programming language. See t [...]
\ No newline at end of file
+or the <a href="/community/">Arrow mailing lists</a>.</p>]]></content><author><name>pmc</name></author><category term="release" /><summary type="html"><![CDATA[The Apache Arrow team is pleased to announce the 0.3.0 release of the Apache Arrow ADBC libraries. This covers includes 24 resolved issues from 7 distinct contributors. This is a release of the libraries, which are at version 0.3.0. The API specification is versioned separately and is at version 1.0.0. The release notes below are  [...]
\ No newline at end of file
diff --git a/img/journey-apache-arrow/adaptive-schema-architecture.svg b/img/journey-apache-arrow/adaptive-schema-architecture.svg
new file mode 100644
index 00000000000..7f9253d5ec4
--- /dev/null
+++ b/img/journey-apache-arrow/adaptive-schema-architecture.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:lucid="lucid" width="906" height="980.51"><g transform="translate(19.333333333333485 16.666666666666554)" lucid:page-tab-id="Xq06Evr.tA62"><path d="M0 0h1760v1360H0z" fill="#fff"/><path d="M317.24 356.98h-32.4v-5h32.4zm170.24 0H452.2v-5h35.28z" stroke="#fcce14" stroke-width=".05" fill="#fcce14"/><path d="M504.24 354.48l-14.26 4.63v-9.26z" fill="#fcce14"/><path d="M512.33 354.48l-24.85 8.07V346.4zm-19 [...]
\ No newline at end of file
diff --git a/img/journey-apache-arrow/compressed-message-size.png b/img/journey-apache-arrow/compressed-message-size.png
new file mode 100644
index 00000000000..961974b3897
Binary files /dev/null and b/img/journey-apache-arrow/compressed-message-size.png differ
diff --git a/img/journey-apache-arrow/memory-usage-25k-traces.png b/img/journey-apache-arrow/memory-usage-25k-traces.png
new file mode 100644
index 00000000000..d93568fe6ac
Binary files /dev/null and b/img/journey-apache-arrow/memory-usage-25k-traces.png differ
diff --git a/img/journey-apache-arrow/metric-dp-data-model.png b/img/journey-apache-arrow/metric-dp-data-model.png
new file mode 100644
index 00000000000..cbbcd51cd60
Binary files /dev/null and b/img/journey-apache-arrow/metric-dp-data-model.png differ
diff --git a/img/journey-apache-arrow/recursive-def-otel-attributes.svg b/img/journey-apache-arrow/recursive-def-otel-attributes.svg
new file mode 100644
index 00000000000..e693b51bffe
--- /dev/null
+++ b/img/journey-apache-arrow/recursive-def-otel-attributes.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:lucid="lucid" width="711.99" height="738.1"><g transform="translate(-1.6898411744204793 -5.066421414074625)" lucid:page-tab-id="a2hJ.unsrgIQ"><path d="M0 0h1760v1360H0z" fill="#fff"/><path d="M21.7 489.12a6 6 0 0 1 6-6H430.7a6 6 0 0 1 6 6v225.84a6 6 0 0 1-6 6H27.7a6 6 0 0 1-6-6z" fill="#fff"/><path d="M45.47 483.12h11.85m11.86 0h11.85m11.86 0h11.84m11.85 0h11.85m11.85 0h11.85m11.86 0h11.86m11.86 0h11 [...]
\ No newline at end of file
diff --git a/release/0.1.0.html b/release/0.1.0.html
index ef3193aa3e4..5300833bf4e 100644
--- a/release/0.1.0.html
+++ b/release/0.1.0.html
@@ -20,13 +20,13 @@
 <meta property="og:site_name" content="Apache Arrow" />
 <meta property="og:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="og:type" content="article" />
-<meta property="article:published_time" content="2023-06-25T06:12:40-04:00" />
+<meta property="article:published_time" content="2023-06-26T08:40:23-04:00" />
 <meta name="twitter:card" content="summary_large_image" />
 <meta property="twitter:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="twitter:title" content="0.1.0 Release" />
 <meta name="twitter:site" content="@ApacheArrow" />
 <script type="application/ld+json">
-{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-25T06:12:40-04:00","datePublished":"2023-06-25T06:12:40-04:00","description":"Apache Arrow 0.1.0 (10 October 2016) Download Source Release: [apache-arrow-0.1.0.tar.gz][6] Verification: [md5][3], [asc][7] Changelog Contributors $ git shortlog -sn d5aa7c46..apache-arrow-0.1.0 49 Wes McKinney 27 Uwe L. Korn 25 Julien Le Dem 13 Micah Kornfield 11 Steven Phillips 6 Jihoon Son 5 Laurent Goujon 5 adeneche 4 Dan Robin [...]
+{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-26T08:40:23-04:00","datePublished":"2023-06-26T08:40:23-04:00","description":"Apache Arrow 0.1.0 (10 October 2016) Download Source Release: [apache-arrow-0.1.0.tar.gz][6] Verification: [md5][3], [asc][7] Changelog Contributors $ git shortlog -sn d5aa7c46..apache-arrow-0.1.0 49 Wes McKinney 27 Uwe L. Korn 25 Julien Le Dem 13 Micah Kornfield 11 Steven Phillips 6 Jihoon Son 5 Laurent Goujon 5 adeneche 4 Dan Robin [...]
 <!-- End Jekyll SEO tag -->
 
 
diff --git a/release/0.10.0.html b/release/0.10.0.html
index 8804b54a6f7..d3d69268ea0 100644
--- a/release/0.10.0.html
+++ b/release/0.10.0.html
@@ -20,13 +20,13 @@
 <meta property="og:site_name" content="Apache Arrow" />
 <meta property="og:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="og:type" content="article" />
-<meta property="article:published_time" content="2023-06-25T06:12:40-04:00" />
+<meta property="article:published_time" content="2023-06-26T08:40:23-04:00" />
 <meta name="twitter:card" content="summary_large_image" />
 <meta property="twitter:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="twitter:title" content="Apache Arrow 0.10.0 Release" />
 <meta name="twitter:site" content="@ApacheArrow" />
 <script type="application/ld+json">
-{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-25T06:12:40-04:00","datePublished":"2023-06-25T06:12:40-04:00","description":"Apache Arrow 0.10.0 (6 August 2018) This is a major release. Download Source Artifacts Binary Artifacts Git tag Contributors $ git shortlog -sn apache-arrow-0.9.0..apache-arrow-0.10.0 70 Antoine Pitrou 49 Kouhei Sutou 40 Korn, Uwe 37 Wes McKinney 32 Krisztián Szűcs 30 Andy Grove 20 Philipp Moritz 13 Phillip Cloud 11 Bryan Cutler 11 y [...]
+{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-26T08:40:23-04:00","datePublished":"2023-06-26T08:40:23-04:00","description":"Apache Arrow 0.10.0 (6 August 2018) This is a major release. Download Source Artifacts Binary Artifacts Git tag Contributors $ git shortlog -sn apache-arrow-0.9.0..apache-arrow-0.10.0 70 Antoine Pitrou 49 Kouhei Sutou 40 Korn, Uwe 37 Wes McKinney 32 Krisztián Szűcs 30 Andy Grove 20 Philipp Moritz 13 Phillip Cloud 11 Bryan Cutler 11 y [...]
 <!-- End Jekyll SEO tag -->
 
 
diff --git a/release/0.11.0.html b/release/0.11.0.html
index 66ddde6fa37..3258ce7d054 100644
--- a/release/0.11.0.html
+++ b/release/0.11.0.html
@@ -20,13 +20,13 @@
 <meta property="og:site_name" content="Apache Arrow" />
 <meta property="og:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="og:type" content="article" />
-<meta property="article:published_time" content="2023-06-25T06:12:40-04:00" />
+<meta property="article:published_time" content="2023-06-26T08:40:23-04:00" />
 <meta name="twitter:card" content="summary_large_image" />
 <meta property="twitter:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="twitter:title" content="Apache Arrow 0.11.0 Release" />
 <meta name="twitter:site" content="@ApacheArrow" />
 <script type="application/ld+json">
-{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-25T06:12:40-04:00","datePublished":"2023-06-25T06:12:40-04:00","description":"Apache Arrow 0.11.0 (8 October 2018) This is a major release. Download Source Artifacts Binary Artifacts Git tag Contributors This includes patches from Apache Parquet that were merged. $ git shortlog -sn apache-arrow-0.10.0..apache-arrow-0.11.0 166 Wes McKinney 59 Uwe L. Korn 57 Deepak Majeti 54 Kouhei Sutou 50 Krisztián Szűcs 48 An [...]
+{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-26T08:40:23-04:00","datePublished":"2023-06-26T08:40:23-04:00","description":"Apache Arrow 0.11.0 (8 October 2018) This is a major release. Download Source Artifacts Binary Artifacts Git tag Contributors This includes patches from Apache Parquet that were merged. $ git shortlog -sn apache-arrow-0.10.0..apache-arrow-0.11.0 166 Wes McKinney 59 Uwe L. Korn 57 Deepak Majeti 54 Kouhei Sutou 50 Krisztián Szűcs 48 An [...]
 <!-- End Jekyll SEO tag -->
 
 
diff --git a/release/0.11.1.html b/release/0.11.1.html
index acab6dc7e33..0c646b81d73 100644
--- a/release/0.11.1.html
+++ b/release/0.11.1.html
@@ -20,13 +20,13 @@
 <meta property="og:site_name" content="Apache Arrow" />
 <meta property="og:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="og:type" content="article" />
-<meta property="article:published_time" content="2023-06-25T06:12:40-04:00" />
+<meta property="article:published_time" content="2023-06-26T08:40:23-04:00" />
 <meta name="twitter:card" content="summary_large_image" />
 <meta property="twitter:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="twitter:title" content="Apache Arrow 0.11.1 Release" />
 <meta name="twitter:site" content="@ApacheArrow" />
 <script type="application/ld+json">
-{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-25T06:12:40-04:00","datePublished":"2023-06-25T06:12:40-04:00","description":"Apache Arrow 0.11.1 (19 October 2018) This is a bugfix release to address a Python packaging issue with zlib that resulted in bug ARROW-3514. Download Source Artifacts Binary Artifacts Git tag Changelog New Features and Improvements ARROW-3353 - [Packaging] Build python 3.7 wheels ARROW-3534 - [Python] Update zlib library in manylinu [...]
+{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-26T08:40:23-04:00","datePublished":"2023-06-26T08:40:23-04:00","description":"Apache Arrow 0.11.1 (19 October 2018) This is a bugfix release to address a Python packaging issue with zlib that resulted in bug ARROW-3514. Download Source Artifacts Binary Artifacts Git tag Changelog New Features and Improvements ARROW-3353 - [Packaging] Build python 3.7 wheels ARROW-3534 - [Python] Update zlib library in manylinu [...]
 <!-- End Jekyll SEO tag -->
 
 
diff --git a/release/0.12.0.html b/release/0.12.0.html
index 0f114ca18f7..8fdc419c98a 100644
--- a/release/0.12.0.html
+++ b/release/0.12.0.html
@@ -20,13 +20,13 @@
 <meta property="og:site_name" content="Apache Arrow" />
 <meta property="og:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="og:type" content="article" />
-<meta property="article:published_time" content="2023-06-25T06:12:40-04:00" />
+<meta property="article:published_time" content="2023-06-26T08:40:23-04:00" />
 <meta name="twitter:card" content="summary_large_image" />
 <meta property="twitter:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="twitter:title" content="Apache Arrow 0.12.0 Release" />
 <meta name="twitter:site" content="@ApacheArrow" />
 <script type="application/ld+json">
-{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-25T06:12:40-04:00","datePublished":"2023-06-25T06:12:40-04:00","description":"Apache Arrow 0.12.0 (20 January 2019) This is a major release covering more than 3 months of development. Download Source Artifacts Binary Artifacts Git tag 8ca41384b5324bfd0ef3d3ed3f728e1d10ed73f0 Contributors This release includes 601 commits from 77 distinct contributors. $ git shortlog -sn apache-arrow-0.11.0..apache-arrow-0.12.0 [...]
+{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-26T08:40:23-04:00","datePublished":"2023-06-26T08:40:23-04:00","description":"Apache Arrow 0.12.0 (20 January 2019) This is a major release covering more than 3 months of development. Download Source Artifacts Binary Artifacts Git tag 8ca41384b5324bfd0ef3d3ed3f728e1d10ed73f0 Contributors This release includes 601 commits from 77 distinct contributors. $ git shortlog -sn apache-arrow-0.11.0..apache-arrow-0.12.0 [...]
 <!-- End Jekyll SEO tag -->
 
 
diff --git a/release/0.13.0.html b/release/0.13.0.html
index e6ae0c5e15c..ed9aae76b5e 100644
--- a/release/0.13.0.html
+++ b/release/0.13.0.html
@@ -20,13 +20,13 @@
 <meta property="og:site_name" content="Apache Arrow" />
 <meta property="og:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="og:type" content="article" />
-<meta property="article:published_time" content="2023-06-25T06:12:40-04:00" />
+<meta property="article:published_time" content="2023-06-26T08:40:23-04:00" />
 <meta name="twitter:card" content="summary_large_image" />
 <meta property="twitter:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="twitter:title" content="Apache Arrow 0.13.0 Release" />
 <meta name="twitter:site" content="@ApacheArrow" />
 <script type="application/ld+json">
-{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-25T06:12:40-04:00","datePublished":"2023-06-25T06:12:40-04:00","description":"Apache Arrow 0.13.0 (1 April 2019) This is a major release covering more than 2 months of development. Download Source Artifacts Binary Artifacts For CentOS For Debian For Python For Ubuntu Git tag Contributors This release includes 550 commits from 81 distinct contributors. $ git shortlog -sn apache-arrow-0.12.0..apache-arrow-0.13.0 [...]
+{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-26T08:40:23-04:00","datePublished":"2023-06-26T08:40:23-04:00","description":"Apache Arrow 0.13.0 (1 April 2019) This is a major release covering more than 2 months of development. Download Source Artifacts Binary Artifacts For CentOS For Debian For Python For Ubuntu Git tag Contributors This release includes 550 commits from 81 distinct contributors. $ git shortlog -sn apache-arrow-0.12.0..apache-arrow-0.13.0 [...]
 <!-- End Jekyll SEO tag -->
 
 
diff --git a/release/0.14.0.html b/release/0.14.0.html
index 30cc1aa3029..9c2dec7f7d1 100644
--- a/release/0.14.0.html
+++ b/release/0.14.0.html
@@ -20,13 +20,13 @@
 <meta property="og:site_name" content="Apache Arrow" />
 <meta property="og:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="og:type" content="article" />
-<meta property="article:published_time" content="2023-06-25T06:12:40-04:00" />
+<meta property="article:published_time" content="2023-06-26T08:40:23-04:00" />
 <meta name="twitter:card" content="summary_large_image" />
 <meta property="twitter:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="twitter:title" content="Apache Arrow 0.14.0 Release" />
 <meta name="twitter:site" content="@ApacheArrow" />
 <script type="application/ld+json">
-{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-25T06:12:40-04:00","datePublished":"2023-06-25T06:12:40-04:00","description":"Apache Arrow 0.14.0 (4 July 2019) This is a major release covering more than 3 months of development. Download Source Artifacts Binary Artifacts For CentOS For Debian For Python For Ubuntu Git tag Contributors This release includes 570 commits from 78 distinct contributors. $ git shortlog -sn apache-arrow-0.13.0..apache-arrow-0.14.0  [...]
+{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-26T08:40:23-04:00","datePublished":"2023-06-26T08:40:23-04:00","description":"Apache Arrow 0.14.0 (4 July 2019) This is a major release covering more than 3 months of development. Download Source Artifacts Binary Artifacts For CentOS For Debian For Python For Ubuntu Git tag Contributors This release includes 570 commits from 78 distinct contributors. $ git shortlog -sn apache-arrow-0.13.0..apache-arrow-0.14.0  [...]
 <!-- End Jekyll SEO tag -->
 
 
diff --git a/release/0.14.1.html b/release/0.14.1.html
index 0742954e785..d349364bc34 100644
--- a/release/0.14.1.html
+++ b/release/0.14.1.html
@@ -20,13 +20,13 @@
 <meta property="og:site_name" content="Apache Arrow" />
 <meta property="og:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="og:type" content="article" />
-<meta property="article:published_time" content="2023-06-25T06:12:40-04:00" />
+<meta property="article:published_time" content="2023-06-26T08:40:23-04:00" />
 <meta name="twitter:card" content="summary_large_image" />
 <meta property="twitter:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="twitter:title" content="Apache Arrow 0.14.1 Release" />
 <meta name="twitter:site" content="@ApacheArrow" />
 <script type="application/ld+json">
-{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-25T06:12:40-04:00","datePublished":"2023-06-25T06:12:40-04:00","description":"Apache Arrow 0.14.1 (22 July 2019) This is a bugfix release to address a Python wheel packaging issues and Parquet forward compatibility problems. Download Source Artifacts Binary Artifacts For CentOS For Debian For Python For Ubuntu Git tag Contributors This release includes 52 commits from 16 distinct contributors. $ git shortlog - [...]
+{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-26T08:40:23-04:00","datePublished":"2023-06-26T08:40:23-04:00","description":"Apache Arrow 0.14.1 (22 July 2019) This is a bugfix release to address a Python wheel packaging issues and Parquet forward compatibility problems. Download Source Artifacts Binary Artifacts For CentOS For Debian For Python For Ubuntu Git tag Contributors This release includes 52 commits from 16 distinct contributors. $ git shortlog - [...]
 <!-- End Jekyll SEO tag -->
 
 
diff --git a/release/0.15.0.html b/release/0.15.0.html
index 6ac545069ec..97c13fb1527 100644
--- a/release/0.15.0.html
+++ b/release/0.15.0.html
@@ -20,13 +20,13 @@
 <meta property="og:site_name" content="Apache Arrow" />
 <meta property="og:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="og:type" content="article" />
-<meta property="article:published_time" content="2023-06-25T06:12:40-04:00" />
+<meta property="article:published_time" content="2023-06-26T08:40:23-04:00" />
 <meta name="twitter:card" content="summary_large_image" />
 <meta property="twitter:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="twitter:title" content="Apache Arrow 0.15.0 Release" />
 <meta name="twitter:site" content="@ApacheArrow" />
 <script type="application/ld+json">
-{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-25T06:12:40-04:00","datePublished":"2023-06-25T06:12:40-04:00","description":"Apache Arrow 0.15.0 (5 October 2019) This is a major release covering more than 3 months of development. Download Source Artifacts Binary Artifacts For CentOS For Debian For Python For Ubuntu Git tag Contributors This release includes 672 commits from 80 distinct contributors. $ git shortlog -sn apache-arrow-0.14.0..apache-arrow-0.15 [...]
+{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-26T08:40:23-04:00","datePublished":"2023-06-26T08:40:23-04:00","description":"Apache Arrow 0.15.0 (5 October 2019) This is a major release covering more than 3 months of development. Download Source Artifacts Binary Artifacts For CentOS For Debian For Python For Ubuntu Git tag Contributors This release includes 672 commits from 80 distinct contributors. $ git shortlog -sn apache-arrow-0.14.0..apache-arrow-0.15 [...]
 <!-- End Jekyll SEO tag -->
 
 
diff --git a/release/0.15.1.html b/release/0.15.1.html
index 1b3c9f16b87..a873f8c7627 100644
--- a/release/0.15.1.html
+++ b/release/0.15.1.html
@@ -20,13 +20,13 @@
 <meta property="og:site_name" content="Apache Arrow" />
 <meta property="og:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="og:type" content="article" />
-<meta property="article:published_time" content="2023-06-25T06:12:40-04:00" />
+<meta property="article:published_time" content="2023-06-26T08:40:23-04:00" />
 <meta name="twitter:card" content="summary_large_image" />
 <meta property="twitter:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="twitter:title" content="Apache Arrow 0.15.1 Release" />
 <meta name="twitter:site" content="@ApacheArrow" />
 <script type="application/ld+json">
-{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-25T06:12:40-04:00","datePublished":"2023-06-25T06:12:40-04:00","description":"Apache Arrow 0.15.1 (1 November 2019) This is a major release covering more than 1 months of development. Download Source Artifacts Binary Artifacts For CentOS For Debian For Python For Ubuntu Git tag Contributors This release includes 41 commits from 13 distinct contributors. $ git shortlog -sn apache-arrow-0.15.0..apache-arrow-0.15 [...]
+{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-26T08:40:23-04:00","datePublished":"2023-06-26T08:40:23-04:00","description":"Apache Arrow 0.15.1 (1 November 2019) This is a major release covering more than 1 months of development. Download Source Artifacts Binary Artifacts For CentOS For Debian For Python For Ubuntu Git tag Contributors This release includes 41 commits from 13 distinct contributors. $ git shortlog -sn apache-arrow-0.15.0..apache-arrow-0.15 [...]
 <!-- End Jekyll SEO tag -->
 
 
diff --git a/release/0.16.0.html b/release/0.16.0.html
index 1d27234bb50..a00090ad74f 100644
--- a/release/0.16.0.html
+++ b/release/0.16.0.html
@@ -20,13 +20,13 @@
 <meta property="og:site_name" content="Apache Arrow" />
 <meta property="og:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="og:type" content="article" />
-<meta property="article:published_time" content="2023-06-25T06:12:40-04:00" />
+<meta property="article:published_time" content="2023-06-26T08:40:23-04:00" />
 <meta name="twitter:card" content="summary_large_image" />
 <meta property="twitter:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="twitter:title" content="Apache Arrow 0.16.0 Release" />
 <meta name="twitter:site" content="@ApacheArrow" />
 <script type="application/ld+json">
-{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-25T06:12:40-04:00","datePublished":"2023-06-25T06:12:40-04:00","description":"Apache Arrow 0.16.0 (7 February 2020) This is a major release covering more than 3 months of development. Download Source Artifacts Binary Artifacts For CentOS For Debian For Python For Ubuntu Git tag Contributors This release includes 709 commits from 99 distinct contributors. $ git shortlog -sn apache-arrow-0.15.1..apache-arrow-0.1 [...]
+{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-26T08:40:23-04:00","datePublished":"2023-06-26T08:40:23-04:00","description":"Apache Arrow 0.16.0 (7 February 2020) This is a major release covering more than 3 months of development. Download Source Artifacts Binary Artifacts For CentOS For Debian For Python For Ubuntu Git tag Contributors This release includes 709 commits from 99 distinct contributors. $ git shortlog -sn apache-arrow-0.15.1..apache-arrow-0.1 [...]
 <!-- End Jekyll SEO tag -->
 
 
diff --git a/release/0.17.0.html b/release/0.17.0.html
index 4e7c9401d56..557101f06c2 100644
--- a/release/0.17.0.html
+++ b/release/0.17.0.html
@@ -20,13 +20,13 @@
 <meta property="og:site_name" content="Apache Arrow" />
 <meta property="og:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="og:type" content="article" />
-<meta property="article:published_time" content="2023-06-25T06:12:40-04:00" />
+<meta property="article:published_time" content="2023-06-26T08:40:23-04:00" />
 <meta name="twitter:card" content="summary_large_image" />
 <meta property="twitter:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="twitter:title" content="Apache Arrow 0.17.0 Release" />
 <meta name="twitter:site" content="@ApacheArrow" />
 <script type="application/ld+json">
-{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-25T06:12:40-04:00","datePublished":"2023-06-25T06:12:40-04:00","description":"Apache Arrow 0.17.0 (20 April 2020) This is a major release covering more than 2 months of development. Download Source Artifacts Binary Artifacts For CentOS For Debian For Python For Ubuntu Git tag Contributors This release includes 569 commits from 79 distinct contributors. $ git shortlog -sn apache-arrow-0.16.0..apache-arrow-0.17. [...]
+{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-26T08:40:23-04:00","datePublished":"2023-06-26T08:40:23-04:00","description":"Apache Arrow 0.17.0 (20 April 2020) This is a major release covering more than 2 months of development. Download Source Artifacts Binary Artifacts For CentOS For Debian For Python For Ubuntu Git tag Contributors This release includes 569 commits from 79 distinct contributors. $ git shortlog -sn apache-arrow-0.16.0..apache-arrow-0.17. [...]
 <!-- End Jekyll SEO tag -->
 
 
diff --git a/release/0.17.1.html b/release/0.17.1.html
index b8e8493db23..d4fc34ffd74 100644
--- a/release/0.17.1.html
+++ b/release/0.17.1.html
@@ -20,13 +20,13 @@
 <meta property="og:site_name" content="Apache Arrow" />
 <meta property="og:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="og:type" content="article" />
-<meta property="article:published_time" content="2023-06-25T06:12:40-04:00" />
+<meta property="article:published_time" content="2023-06-26T08:40:23-04:00" />
 <meta name="twitter:card" content="summary_large_image" />
 <meta property="twitter:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="twitter:title" content="Apache Arrow 0.17.1 Release" />
 <meta name="twitter:site" content="@ApacheArrow" />
 <script type="application/ld+json">
-{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-25T06:12:40-04:00","datePublished":"2023-06-25T06:12:40-04:00","description":"Apache Arrow 0.17.1 (18 May 2020) This is a patch release fixing bugs and regressions listed in the changelog below. Download Source Artifacts Binary Artifacts For CentOS For Debian For Python For Ubuntu Git tag Contributors This release includes 27 commits from 11 distinct contributors. $ git shortlog -sn apache-arrow-0.17.0..apache [...]
+{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-26T08:40:23-04:00","datePublished":"2023-06-26T08:40:23-04:00","description":"Apache Arrow 0.17.1 (18 May 2020) This is a patch release fixing bugs and regressions listed in the changelog below. Download Source Artifacts Binary Artifacts For CentOS For Debian For Python For Ubuntu Git tag Contributors This release includes 27 commits from 11 distinct contributors. $ git shortlog -sn apache-arrow-0.17.0..apache [...]
 <!-- End Jekyll SEO tag -->
 
 
diff --git a/release/0.2.0.html b/release/0.2.0.html
index d0a7ed9d996..763a3f8e123 100644
--- a/release/0.2.0.html
+++ b/release/0.2.0.html
@@ -20,13 +20,13 @@
 <meta property="og:site_name" content="Apache Arrow" />
 <meta property="og:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="og:type" content="article" />
-<meta property="article:published_time" content="2023-06-25T06:12:40-04:00" />
+<meta property="article:published_time" content="2023-06-26T08:40:23-04:00" />
 <meta name="twitter:card" content="summary_large_image" />
 <meta property="twitter:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="twitter:title" content="0.2.0 Release" />
 <meta name="twitter:site" content="@ApacheArrow" />
 <script type="application/ld+json">
-{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-25T06:12:40-04:00","datePublished":"2023-06-25T06:12:40-04:00","description":"Apache Arrow 0.2.0 (18 February 2017) Download Source Artifacts Git tag Changelog Contributors $ git shortlog -sn apache-arrow-0.1.0..apache-arrow-0.2.0 73 Wes McKinney 55 Uwe L. Korn 16 Julien Le Dem 4 Bryan Cutler 4 Nong Li 2 Christopher C. Aycock 2 Jingyuan Wang 2 Kouhei Sutou 2 Laurent Goujon 2 Leif Walsh 1 Emilio Lahr-Vivaz 1 Ho [...]
+{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-26T08:40:23-04:00","datePublished":"2023-06-26T08:40:23-04:00","description":"Apache Arrow 0.2.0 (18 February 2017) Download Source Artifacts Git tag Changelog Contributors $ git shortlog -sn apache-arrow-0.1.0..apache-arrow-0.2.0 73 Wes McKinney 55 Uwe L. Korn 16 Julien Le Dem 4 Bryan Cutler 4 Nong Li 2 Christopher C. Aycock 2 Jingyuan Wang 2 Kouhei Sutou 2 Laurent Goujon 2 Leif Walsh 1 Emilio Lahr-Vivaz 1 Ho [...]
 <!-- End Jekyll SEO tag -->
 
 
diff --git a/release/0.3.0.html b/release/0.3.0.html
index 451ac8801e2..1ad8864ba7d 100644
--- a/release/0.3.0.html
+++ b/release/0.3.0.html
@@ -20,13 +20,13 @@
 <meta property="og:site_name" content="Apache Arrow" />
 <meta property="og:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="og:type" content="article" />
-<meta property="article:published_time" content="2023-06-25T06:12:40-04:00" />
+<meta property="article:published_time" content="2023-06-26T08:40:23-04:00" />
 <meta name="twitter:card" content="summary_large_image" />
 <meta property="twitter:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="twitter:title" content="0.3.0 Release" />
 <meta name="twitter:site" content="@ApacheArrow" />
 <script type="application/ld+json">
-{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-25T06:12:40-04:00","datePublished":"2023-06-25T06:12:40-04:00","description":"Apache Arrow 0.3.0 (5 May 2017) Read more in the release blog post Download Source Artifacts Git tag d8db8f8 Changelog Contributors $ git shortlog -sn apache-arrow-0.2.0..apache-arrow-0.3.0 119 Wes McKinney 55 Kouhei Sutou 18 Uwe L. Korn 17 Julien Le Dem 9 Phillip Cloud 6 Bryan Cutler 5 Emilio Lahr-Vivaz 5 Philipp Moritz 4 Jeff Knupp [...]
+{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-26T08:40:23-04:00","datePublished":"2023-06-26T08:40:23-04:00","description":"Apache Arrow 0.3.0 (5 May 2017) Read more in the release blog post Download Source Artifacts Git tag d8db8f8 Changelog Contributors $ git shortlog -sn apache-arrow-0.2.0..apache-arrow-0.3.0 119 Wes McKinney 55 Kouhei Sutou 18 Uwe L. Korn 17 Julien Le Dem 9 Phillip Cloud 6 Bryan Cutler 5 Emilio Lahr-Vivaz 5 Philipp Moritz 4 Jeff Knupp [...]
 <!-- End Jekyll SEO tag -->
 
 
diff --git a/release/0.4.0.html b/release/0.4.0.html
index 4514e19d7c8..5419c8a4a6b 100644
--- a/release/0.4.0.html
+++ b/release/0.4.0.html
@@ -20,13 +20,13 @@
 <meta property="og:site_name" content="Apache Arrow" />
 <meta property="og:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="og:type" content="article" />
-<meta property="article:published_time" content="2023-06-25T06:12:40-04:00" />
+<meta property="article:published_time" content="2023-06-26T08:40:23-04:00" />
 <meta name="twitter:card" content="summary_large_image" />
 <meta property="twitter:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="twitter:title" content="0.4.0 Release" />
 <meta name="twitter:site" content="@ApacheArrow" />
 <script type="application/ld+json">
-{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-25T06:12:40-04:00","datePublished":"2023-06-25T06:12:40-04:00","description":"Apache Arrow 0.4.0 (22 May 2017) Read more in the release blog post Download Source Artifacts Git tag a8f8ba0 Changelog Contributors $ git shortlog -sn apache-arrow-0.3.0..apache-arrow-0.4.0 28 Wes McKinney 18 Kouhei Sutou 9 Uwe L. Korn 3 Brian Hulette 3 Emilio Lahr-Vivaz 3 Philipp Moritz 3 Phillip Cloud 2 Julien Le Dem 1 Bryan Cutle [...]
+{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-26T08:40:23-04:00","datePublished":"2023-06-26T08:40:23-04:00","description":"Apache Arrow 0.4.0 (22 May 2017) Read more in the release blog post Download Source Artifacts Git tag a8f8ba0 Changelog Contributors $ git shortlog -sn apache-arrow-0.3.0..apache-arrow-0.4.0 28 Wes McKinney 18 Kouhei Sutou 9 Uwe L. Korn 3 Brian Hulette 3 Emilio Lahr-Vivaz 3 Philipp Moritz 3 Phillip Cloud 2 Julien Le Dem 1 Bryan Cutle [...]
 <!-- End Jekyll SEO tag -->
 
 
diff --git a/release/0.4.1.html b/release/0.4.1.html
index dd87df2c7dd..07c9a919284 100644
--- a/release/0.4.1.html
+++ b/release/0.4.1.html
@@ -20,13 +20,13 @@
 <meta property="og:site_name" content="Apache Arrow" />
 <meta property="og:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="og:type" content="article" />
-<meta property="article:published_time" content="2023-06-25T06:12:40-04:00" />
+<meta property="article:published_time" content="2023-06-26T08:40:23-04:00" />
 <meta name="twitter:card" content="summary_large_image" />
 <meta property="twitter:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="twitter:title" content="0.4.1 Release" />
 <meta name="twitter:site" content="@ApacheArrow" />
 <script type="application/ld+json">
-{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-25T06:12:40-04:00","datePublished":"2023-06-25T06:12:40-04:00","description":"Apache Arrow 0.4.1 (9 June 2017) This is primarily a bug fix release, but also includes some packaging and documentation improvements. Read more in the release blog post. Download Source Artifacts Git tag 46315431 Changelog New Features and Improvements ARROW-1020 - [Format] Add additional language to Schema.fbs to clarify naive vs.  [...]
+{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-26T08:40:23-04:00","datePublished":"2023-06-26T08:40:23-04:00","description":"Apache Arrow 0.4.1 (9 June 2017) This is primarily a bug fix release, but also includes some packaging and documentation improvements. Read more in the release blog post. Download Source Artifacts Git tag 46315431 Changelog New Features and Improvements ARROW-1020 - [Format] Add additional language to Schema.fbs to clarify naive vs.  [...]
 <!-- End Jekyll SEO tag -->
 
 
diff --git a/release/0.5.0.html b/release/0.5.0.html
index ff79f385af4..42197ab90a5 100644
--- a/release/0.5.0.html
+++ b/release/0.5.0.html
@@ -20,13 +20,13 @@
 <meta property="og:site_name" content="Apache Arrow" />
 <meta property="og:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="og:type" content="article" />
-<meta property="article:published_time" content="2023-06-25T06:12:40-04:00" />
+<meta property="article:published_time" content="2023-06-26T08:40:23-04:00" />
 <meta name="twitter:card" content="summary_large_image" />
 <meta property="twitter:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="twitter:title" content="Apache Arrow 0.5.0 Release" />
 <meta name="twitter:site" content="@ApacheArrow" />
 <script type="application/ld+json">
-{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-25T06:12:40-04:00","datePublished":"2023-06-25T06:12:40-04:00","description":"Apache Arrow 0.5.0 (23 July 2017) This is a major release, with expanded features in the supported languages and additional integration test coverage between Java and C++. Read more in the release blog post. Download Source Artifacts Git tag Contributors $ git shortlog -sn apache-arrow-0.4.1..apache-arrow-0.5.0 42 Wes McKinney 22 Uwe [...]
+{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-26T08:40:23-04:00","datePublished":"2023-06-26T08:40:23-04:00","description":"Apache Arrow 0.5.0 (23 July 2017) This is a major release, with expanded features in the supported languages and additional integration test coverage between Java and C++. Read more in the release blog post. Download Source Artifacts Git tag Contributors $ git shortlog -sn apache-arrow-0.4.1..apache-arrow-0.5.0 42 Wes McKinney 22 Uwe [...]
 <!-- End Jekyll SEO tag -->
 
 
diff --git a/release/0.6.0.html b/release/0.6.0.html
index 4d1462c4a11..b7bf2f0b55a 100644
--- a/release/0.6.0.html
+++ b/release/0.6.0.html
@@ -20,13 +20,13 @@
 <meta property="og:site_name" content="Apache Arrow" />
 <meta property="og:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="og:type" content="article" />
-<meta property="article:published_time" content="2023-06-25T06:12:40-04:00" />
+<meta property="article:published_time" content="2023-06-26T08:40:23-04:00" />
 <meta name="twitter:card" content="summary_large_image" />
 <meta property="twitter:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="twitter:title" content="Apache Arrow 0.6.0 Release" />
 <meta name="twitter:site" content="@ApacheArrow" />
 <script type="application/ld+json">
-{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-25T06:12:40-04:00","datePublished":"2023-06-25T06:12:40-04:00","description":"Apache Arrow 0.6.0 (14 August 2017) This is a major release. Read more in the release blog post. Download Source Artifacts Git tag Contributors $ git shortlog -sn apache-arrow-0.5.0..apache-arrow-0.6.0 48 Wes McKinney 7 siddharth 5 Matt Darwin 5 Max Risuhin 5 Philipp Moritz 4 Kouhei Sutou 3 Bryan Cutler 2 Emilio Lahr-Vivaz 2 Li Jin 2 [...]
+{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-26T08:40:23-04:00","datePublished":"2023-06-26T08:40:23-04:00","description":"Apache Arrow 0.6.0 (14 August 2017) This is a major release. Read more in the release blog post. Download Source Artifacts Git tag Contributors $ git shortlog -sn apache-arrow-0.5.0..apache-arrow-0.6.0 48 Wes McKinney 7 siddharth 5 Matt Darwin 5 Max Risuhin 5 Philipp Moritz 4 Kouhei Sutou 3 Bryan Cutler 2 Emilio Lahr-Vivaz 2 Li Jin 2 [...]
 <!-- End Jekyll SEO tag -->
 
 
diff --git a/release/0.7.0.html b/release/0.7.0.html
index 13b22639c8b..51cf928295a 100644
--- a/release/0.7.0.html
+++ b/release/0.7.0.html
@@ -20,13 +20,13 @@
 <meta property="og:site_name" content="Apache Arrow" />
 <meta property="og:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="og:type" content="article" />
-<meta property="article:published_time" content="2023-06-25T06:12:40-04:00" />
+<meta property="article:published_time" content="2023-06-26T08:40:23-04:00" />
 <meta name="twitter:card" content="summary_large_image" />
 <meta property="twitter:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="twitter:title" content="Apache Arrow 0.7.0 Release" />
 <meta name="twitter:site" content="@ApacheArrow" />
 <script type="application/ld+json">
-{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-25T06:12:40-04:00","datePublished":"2023-06-25T06:12:40-04:00","description":"Apache Arrow 0.7.0 (17 September 2017) This is a major release. Read more in the release blog post. Download Source Artifacts Git tag Contributors $ git shortlog -sn apache-arrow-0.6.0..apache-arrow-0.7.0 58 Wes McKinney 14 Kouhei Sutou 11 Philipp Moritz 7 Phillip Cloud 6 siddharth 5 Uwe L. Korn 2 Bryan Cutler 2 HorimotoYasuhiro 2 La [...]
+{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-26T08:40:23-04:00","datePublished":"2023-06-26T08:40:23-04:00","description":"Apache Arrow 0.7.0 (17 September 2017) This is a major release. Read more in the release blog post. Download Source Artifacts Git tag Contributors $ git shortlog -sn apache-arrow-0.6.0..apache-arrow-0.7.0 58 Wes McKinney 14 Kouhei Sutou 11 Philipp Moritz 7 Phillip Cloud 6 siddharth 5 Uwe L. Korn 2 Bryan Cutler 2 HorimotoYasuhiro 2 La [...]
 <!-- End Jekyll SEO tag -->
 
 
diff --git a/release/0.7.1.html b/release/0.7.1.html
index 0fbb71cb5cf..7ad751b3530 100644
--- a/release/0.7.1.html
+++ b/release/0.7.1.html
@@ -20,13 +20,13 @@
 <meta property="og:site_name" content="Apache Arrow" />
 <meta property="og:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="og:type" content="article" />
-<meta property="article:published_time" content="2023-06-25T06:12:40-04:00" />
+<meta property="article:published_time" content="2023-06-26T08:40:23-04:00" />
 <meta name="twitter:card" content="summary_large_image" />
 <meta property="twitter:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="twitter:title" content="Apache Arrow 0.7.1 Release" />
 <meta name="twitter:site" content="@ApacheArrow" />
 <script type="application/ld+json">
-{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-25T06:12:40-04:00","datePublished":"2023-06-25T06:12:40-04:00","description":"Apache Arrow 0.7.1 (1 October 2017) This is a minor bug release. It was motivated by ARROW-1601, but see the complete changelog. Download Source Artifacts Git tag Contributors $ git shortlog -sn apache-arrow-0.7.0..apache-arrow-0.7.1 14 Wes McKinney 6 Kouhei Sutou 3 siddharth 2 Paul Taylor 2 Uwe L. Korn 1 Amir Malekpour 1 Bryan Cutle [...]
+{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-26T08:40:23-04:00","datePublished":"2023-06-26T08:40:23-04:00","description":"Apache Arrow 0.7.1 (1 October 2017) This is a minor bug release. It was motivated by ARROW-1601, but see the complete changelog. Download Source Artifacts Git tag Contributors $ git shortlog -sn apache-arrow-0.7.0..apache-arrow-0.7.1 14 Wes McKinney 6 Kouhei Sutou 3 siddharth 2 Paul Taylor 2 Uwe L. Korn 1 Amir Malekpour 1 Bryan Cutle [...]
 <!-- End Jekyll SEO tag -->
 
 
diff --git a/release/0.8.0.html b/release/0.8.0.html
index ec91ce15f1a..34d4994b542 100644
--- a/release/0.8.0.html
+++ b/release/0.8.0.html
@@ -20,13 +20,13 @@
 <meta property="og:site_name" content="Apache Arrow" />
 <meta property="og:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="og:type" content="article" />
-<meta property="article:published_time" content="2023-06-25T06:12:40-04:00" />
+<meta property="article:published_time" content="2023-06-26T08:40:23-04:00" />
 <meta name="twitter:card" content="summary_large_image" />
 <meta property="twitter:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="twitter:title" content="Apache Arrow 0.8.0 Release" />
 <meta name="twitter:site" content="@ApacheArrow" />
 <script type="application/ld+json">
-{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-25T06:12:40-04:00","datePublished":"2023-06-25T06:12:40-04:00","description":"Apache Arrow 0.8.0 (18 December 2017) This is a major release. Download Source Artifacts Git tag Contributors $ git shortlog -sn apache-arrow-0.7.1..apache-arrow-0.8.0 90 Wes McKinney 23 Phillip Cloud 21 Kouhei Sutou 13 Licht-T 12 Korn, Uwe 12 Philipp Moritz 12 Uwe L. Korn 10 Bryan Cutler 5 Li Jin 5 Robert Nishihara 4 Paul Taylor 4 s [...]
+{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-26T08:40:23-04:00","datePublished":"2023-06-26T08:40:23-04:00","description":"Apache Arrow 0.8.0 (18 December 2017) This is a major release. Download Source Artifacts Git tag Contributors $ git shortlog -sn apache-arrow-0.7.1..apache-arrow-0.8.0 90 Wes McKinney 23 Phillip Cloud 21 Kouhei Sutou 13 Licht-T 12 Korn, Uwe 12 Philipp Moritz 12 Uwe L. Korn 10 Bryan Cutler 5 Li Jin 5 Robert Nishihara 4 Paul Taylor 4 s [...]
 <!-- End Jekyll SEO tag -->
 
 
diff --git a/release/0.9.0.html b/release/0.9.0.html
index 6e61071cc34..4770e2c33eb 100644
--- a/release/0.9.0.html
+++ b/release/0.9.0.html
@@ -20,13 +20,13 @@
 <meta property="og:site_name" content="Apache Arrow" />
 <meta property="og:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="og:type" content="article" />
-<meta property="article:published_time" content="2023-06-25T06:12:40-04:00" />
+<meta property="article:published_time" content="2023-06-26T08:40:23-04:00" />
 <meta name="twitter:card" content="summary_large_image" />
 <meta property="twitter:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="twitter:title" content="Apache Arrow 0.9.0 Release" />
 <meta name="twitter:site" content="@ApacheArrow" />
 <script type="application/ld+json">
-{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-25T06:12:40-04:00","datePublished":"2023-06-25T06:12:40-04:00","description":"Apache Arrow 0.9.0 (21 March 2018) This is a major release. Download Source Artifacts Git tag Contributors $ git shortlog -sn apache-arrow-0.8.0..apache-arrow-0.9.0 52 Wes McKinney 52 Antoine Pitrou 25 Uwe L. Korn 14 Paul Taylor 13 Kouhei Sutou 13 Phillip Cloud 9 Robert Nishihara 9 Korn, Uwe 9 Jim Crist 8 Brian Hulette 7 Philipp Mori [...]
+{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-26T08:40:23-04:00","datePublished":"2023-06-26T08:40:23-04:00","description":"Apache Arrow 0.9.0 (21 March 2018) This is a major release. Download Source Artifacts Git tag Contributors $ git shortlog -sn apache-arrow-0.8.0..apache-arrow-0.9.0 52 Wes McKinney 52 Antoine Pitrou 25 Uwe L. Korn 14 Paul Taylor 13 Kouhei Sutou 13 Phillip Cloud 9 Robert Nishihara 9 Korn, Uwe 9 Jim Crist 8 Brian Hulette 7 Philipp Mori [...]
 <!-- End Jekyll SEO tag -->
 
 
diff --git a/release/1.0.0.html b/release/1.0.0.html
index 120bbe804a9..d5a70f18636 100644
--- a/release/1.0.0.html
+++ b/release/1.0.0.html
@@ -20,13 +20,13 @@
 <meta property="og:site_name" content="Apache Arrow" />
 <meta property="og:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="og:type" content="article" />
-<meta property="article:published_time" content="2023-06-25T06:12:40-04:00" />
+<meta property="article:published_time" content="2023-06-26T08:40:23-04:00" />
 <meta name="twitter:card" content="summary_large_image" />
 <meta property="twitter:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="twitter:title" content="Apache Arrow 1.0.0 Release" />
 <meta name="twitter:site" content="@ApacheArrow" />
 <script type="application/ld+json">
-{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-25T06:12:40-04:00","datePublished":"2023-06-25T06:12:40-04:00","description":"Apache Arrow 1.0.0 (24 July 2020) This is a major release covering more than 3 months of development. Download Source Artifacts Binary Artifacts For CentOS For Debian For Python For Ubuntu Git tag Contributors This release includes 771 commits from 100 distinct contributors. $ git shortlog -sn apache-arrow-0.17.0..apache-arrow-1.0.0  [...]
+{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-26T08:40:23-04:00","datePublished":"2023-06-26T08:40:23-04:00","description":"Apache Arrow 1.0.0 (24 July 2020) This is a major release covering more than 3 months of development. Download Source Artifacts Binary Artifacts For CentOS For Debian For Python For Ubuntu Git tag Contributors This release includes 771 commits from 100 distinct contributors. $ git shortlog -sn apache-arrow-0.17.0..apache-arrow-1.0.0  [...]
 <!-- End Jekyll SEO tag -->
 
 
diff --git a/release/1.0.1.html b/release/1.0.1.html
index 8fb02cb791a..14b7d89a26f 100644
--- a/release/1.0.1.html
+++ b/release/1.0.1.html
@@ -20,13 +20,13 @@
 <meta property="og:site_name" content="Apache Arrow" />
 <meta property="og:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="og:type" content="article" />
-<meta property="article:published_time" content="2023-06-25T06:12:40-04:00" />
+<meta property="article:published_time" content="2023-06-26T08:40:23-04:00" />
 <meta name="twitter:card" content="summary_large_image" />
 <meta property="twitter:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="twitter:title" content="Apache Arrow 1.0.1 Release" />
 <meta name="twitter:site" content="@ApacheArrow" />
 <script type="application/ld+json">
-{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-25T06:12:40-04:00","datePublished":"2023-06-25T06:12:40-04:00","description":"Apache Arrow 1.0.1 (21 August 2020) This is a patch release addressing bugs in the 1.0.0 release. Download Source Artifacts Binary Artifacts For CentOS For Debian For Python For Ubuntu Git tag Contributors This release includes 39 commits from 15 distinct contributors. $ git shortlog -sn apache-arrow-1.0.0..apache-arrow-1.0.1 9 Krisz [...]
+{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-26T08:40:23-04:00","datePublished":"2023-06-26T08:40:23-04:00","description":"Apache Arrow 1.0.1 (21 August 2020) This is a patch release addressing bugs in the 1.0.0 release. Download Source Artifacts Binary Artifacts For CentOS For Debian For Python For Ubuntu Git tag Contributors This release includes 39 commits from 15 distinct contributors. $ git shortlog -sn apache-arrow-1.0.0..apache-arrow-1.0.1 9 Krisz [...]
 <!-- End Jekyll SEO tag -->
 
 
diff --git a/release/10.0.0.html b/release/10.0.0.html
index 761c6453bf7..25dc6411d32 100644
--- a/release/10.0.0.html
+++ b/release/10.0.0.html
@@ -20,13 +20,13 @@
 <meta property="og:site_name" content="Apache Arrow" />
 <meta property="og:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="og:type" content="article" />
-<meta property="article:published_time" content="2023-06-25T06:12:40-04:00" />
+<meta property="article:published_time" content="2023-06-26T08:40:23-04:00" />
 <meta name="twitter:card" content="summary_large_image" />
 <meta property="twitter:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="twitter:title" content="Apache Arrow 10.0.0 Release" />
 <meta name="twitter:site" content="@ApacheArrow" />
 <script type="application/ld+json">
-{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-25T06:12:40-04:00","datePublished":"2023-06-25T06:12:40-04:00","description":"Apache Arrow 10.0.0 (26 October 2022) This is a major release covering more than 2 months of development. Download Source Artifacts Binary Artifacts For AlmaLinux For Amazon Linux For CentOS For C# For Debian For Python For Ubuntu Git tag Contributors This release includes 536 commits from 100 distinct contributors. $ git shortlog -s [...]
+{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-26T08:40:23-04:00","datePublished":"2023-06-26T08:40:23-04:00","description":"Apache Arrow 10.0.0 (26 October 2022) This is a major release covering more than 2 months of development. Download Source Artifacts Binary Artifacts For AlmaLinux For Amazon Linux For CentOS For C# For Debian For Python For Ubuntu Git tag Contributors This release includes 536 commits from 100 distinct contributors. $ git shortlog -s [...]
 <!-- End Jekyll SEO tag -->
 
 
diff --git a/release/10.0.1.html b/release/10.0.1.html
index 788006e4422..7460278b221 100644
--- a/release/10.0.1.html
+++ b/release/10.0.1.html
@@ -20,13 +20,13 @@
 <meta property="og:site_name" content="Apache Arrow" />
 <meta property="og:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="og:type" content="article" />
-<meta property="article:published_time" content="2023-06-25T06:12:40-04:00" />
+<meta property="article:published_time" content="2023-06-26T08:40:23-04:00" />
 <meta name="twitter:card" content="summary_large_image" />
 <meta property="twitter:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="twitter:title" content="Apache Arrow 10.0.1 Release" />
 <meta name="twitter:site" content="@ApacheArrow" />
 <script type="application/ld+json">
-{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-25T06:12:40-04:00","datePublished":"2023-06-25T06:12:40-04:00","description":"Apache Arrow 10.0.1 (22 November 2022) This is a patch release covering more than 1 months of development. Download Source Artifacts Binary Artifacts For AlmaLinux For Amazon Linux For CentOS For C# For Debian For Python For Ubuntu Git tag Contributors This release includes 34 commits from 15 distinct contributors. $ git shortlog -sn [...]
+{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-26T08:40:23-04:00","datePublished":"2023-06-26T08:40:23-04:00","description":"Apache Arrow 10.0.1 (22 November 2022) This is a patch release covering more than 1 months of development. Download Source Artifacts Binary Artifacts For AlmaLinux For Amazon Linux For CentOS For C# For Debian For Python For Ubuntu Git tag Contributors This release includes 34 commits from 15 distinct contributors. $ git shortlog -sn [...]
 <!-- End Jekyll SEO tag -->
 
 
diff --git a/release/11.0.0.html b/release/11.0.0.html
index 6986d4b40d2..cfa7b6740ca 100644
--- a/release/11.0.0.html
+++ b/release/11.0.0.html
@@ -20,13 +20,13 @@
 <meta property="og:site_name" content="Apache Arrow" />
 <meta property="og:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="og:type" content="article" />
-<meta property="article:published_time" content="2023-06-25T06:12:40-04:00" />
+<meta property="article:published_time" content="2023-06-26T08:40:23-04:00" />
 <meta name="twitter:card" content="summary_large_image" />
 <meta property="twitter:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="twitter:title" content="Apache Arrow 11.0.0 Release" />
 <meta name="twitter:site" content="@ApacheArrow" />
 <script type="application/ld+json">
-{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-25T06:12:40-04:00","datePublished":"2023-06-25T06:12:40-04:00","description":"Apache Arrow 11.0.0 (26 January 2023) This is a major release covering more than 3 months of development. Download Source Artifacts Binary Artifacts For AlmaLinux For Amazon Linux For CentOS For C# For Debian For Python For Ubuntu Git tag Contributors This release includes 516 commits from 95 distinct contributors. $ git shortlog -sn [...]
+{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-26T08:40:23-04:00","datePublished":"2023-06-26T08:40:23-04:00","description":"Apache Arrow 11.0.0 (26 January 2023) This is a major release covering more than 3 months of development. Download Source Artifacts Binary Artifacts For AlmaLinux For Amazon Linux For CentOS For C# For Debian For Python For Ubuntu Git tag Contributors This release includes 516 commits from 95 distinct contributors. $ git shortlog -sn [...]
 <!-- End Jekyll SEO tag -->
 
 
diff --git a/release/12.0.0.html b/release/12.0.0.html
index dfd8d494141..5f82c475b93 100644
--- a/release/12.0.0.html
+++ b/release/12.0.0.html
@@ -20,13 +20,13 @@
 <meta property="og:site_name" content="Apache Arrow" />
 <meta property="og:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="og:type" content="article" />
-<meta property="article:published_time" content="2023-06-25T06:12:40-04:00" />
+<meta property="article:published_time" content="2023-06-26T08:40:23-04:00" />
 <meta name="twitter:card" content="summary_large_image" />
 <meta property="twitter:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="twitter:title" content="Apache Arrow 12.0.0 Release" />
 <meta name="twitter:site" content="@ApacheArrow" />
 <script type="application/ld+json">
-{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-25T06:12:40-04:00","datePublished":"2023-06-25T06:12:40-04:00","description":"Apache Arrow 12.0.0 (2 May 2023) This is a major release covering more than 3 months of development. Download Source Artifacts Binary Artifacts For AlmaLinux For Amazon Linux For CentOS For C# For Debian For Python For Ubuntu Git tag Contributors This release includes 531 commits from 97 distinct contributors. $ git shortlog -sn apac [...]
+{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-26T08:40:23-04:00","datePublished":"2023-06-26T08:40:23-04:00","description":"Apache Arrow 12.0.0 (2 May 2023) This is a major release covering more than 3 months of development. Download Source Artifacts Binary Artifacts For AlmaLinux For Amazon Linux For CentOS For C# For Debian For Python For Ubuntu Git tag Contributors This release includes 531 commits from 97 distinct contributors. $ git shortlog -sn apac [...]
 <!-- End Jekyll SEO tag -->
 
 
diff --git a/release/12.0.1.html b/release/12.0.1.html
index 2683d427c89..e6a810f495f 100644
--- a/release/12.0.1.html
+++ b/release/12.0.1.html
@@ -20,13 +20,13 @@
 <meta property="og:site_name" content="Apache Arrow" />
 <meta property="og:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="og:type" content="article" />
-<meta property="article:published_time" content="2023-06-25T06:12:40-04:00" />
+<meta property="article:published_time" content="2023-06-26T08:40:23-04:00" />
 <meta name="twitter:card" content="summary_large_image" />
 <meta property="twitter:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="twitter:title" content="Apache Arrow 12.0.1 Release" />
 <meta name="twitter:site" content="@ApacheArrow" />
 <script type="application/ld+json">
-{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-25T06:12:40-04:00","datePublished":"2023-06-25T06:12:40-04:00","description":"Apache Arrow 12.0.1 (13 June 2023) This is a patch release covering more than 1 months of development. Download Source Artifacts Binary Artifacts For AlmaLinux For Amazon Linux For CentOS For C# For Debian For Python For Ubuntu Git tag Contributors This release includes 32 commits from 12 distinct contributors. $ git shortlog -sn apa [...]
+{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-26T08:40:23-04:00","datePublished":"2023-06-26T08:40:23-04:00","description":"Apache Arrow 12.0.1 (13 June 2023) This is a patch release covering more than 1 months of development. Download Source Artifacts Binary Artifacts For AlmaLinux For Amazon Linux For CentOS For C# For Debian For Python For Ubuntu Git tag Contributors This release includes 32 commits from 12 distinct contributors. $ git shortlog -sn apa [...]
 <!-- End Jekyll SEO tag -->
 
 
diff --git a/release/2.0.0.html b/release/2.0.0.html
index af8fc505cc2..b485135d99a 100644
--- a/release/2.0.0.html
+++ b/release/2.0.0.html
@@ -20,13 +20,13 @@
 <meta property="og:site_name" content="Apache Arrow" />
 <meta property="og:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="og:type" content="article" />
-<meta property="article:published_time" content="2023-06-25T06:12:40-04:00" />
+<meta property="article:published_time" content="2023-06-26T08:40:23-04:00" />
 <meta name="twitter:card" content="summary_large_image" />
 <meta property="twitter:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="twitter:title" content="Apache Arrow 2.0.0 Release" />
 <meta name="twitter:site" content="@ApacheArrow" />
 <script type="application/ld+json">
-{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-25T06:12:40-04:00","datePublished":"2023-06-25T06:12:40-04:00","description":"Apache Arrow 2.0.0 (19 October 2020) This is a major release covering more than 3 months of development. Download Source Artifacts Binary Artifacts For CentOS For Debian For Python For Ubuntu Git tag Contributors This release includes 511 commits from 81 distinct contributors. $ git shortlog -sn apache-arrow-1.0.0..apache-arrow-2.0.0 [...]
+{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-26T08:40:23-04:00","datePublished":"2023-06-26T08:40:23-04:00","description":"Apache Arrow 2.0.0 (19 October 2020) This is a major release covering more than 3 months of development. Download Source Artifacts Binary Artifacts For CentOS For Debian For Python For Ubuntu Git tag Contributors This release includes 511 commits from 81 distinct contributors. $ git shortlog -sn apache-arrow-1.0.0..apache-arrow-2.0.0 [...]
 <!-- End Jekyll SEO tag -->
 
 
diff --git a/release/3.0.0.html b/release/3.0.0.html
index 94cc52f9b30..db384fdbcd3 100644
--- a/release/3.0.0.html
+++ b/release/3.0.0.html
@@ -20,13 +20,13 @@
 <meta property="og:site_name" content="Apache Arrow" />
 <meta property="og:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="og:type" content="article" />
-<meta property="article:published_time" content="2023-06-25T06:12:40-04:00" />
+<meta property="article:published_time" content="2023-06-26T08:40:23-04:00" />
 <meta name="twitter:card" content="summary_large_image" />
 <meta property="twitter:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="twitter:title" content="Apache Arrow 3.0.0 Release" />
 <meta name="twitter:site" content="@ApacheArrow" />
 <script type="application/ld+json">
-{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-25T06:12:40-04:00","datePublished":"2023-06-25T06:12:40-04:00","description":"Apache Arrow 3.0.0 (26 January 2021) This is a major release covering more than 3 months of development. Download Source Artifacts Binary Artifacts For CentOS For Debian For Python For Ubuntu Git tag Contributors This release includes 648 commits from 106 distinct contributors. $ git shortlog -sn apache-arrow-2.0.0..apache-arrow-3.0. [...]
+{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-26T08:40:23-04:00","datePublished":"2023-06-26T08:40:23-04:00","description":"Apache Arrow 3.0.0 (26 January 2021) This is a major release covering more than 3 months of development. Download Source Artifacts Binary Artifacts For CentOS For Debian For Python For Ubuntu Git tag Contributors This release includes 648 commits from 106 distinct contributors. $ git shortlog -sn apache-arrow-2.0.0..apache-arrow-3.0. [...]
 <!-- End Jekyll SEO tag -->
 
 
diff --git a/release/4.0.0.html b/release/4.0.0.html
index 3f40e0c736c..26a08c91119 100644
--- a/release/4.0.0.html
+++ b/release/4.0.0.html
@@ -20,13 +20,13 @@
 <meta property="og:site_name" content="Apache Arrow" />
 <meta property="og:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="og:type" content="article" />
-<meta property="article:published_time" content="2023-06-25T06:12:40-04:00" />
+<meta property="article:published_time" content="2023-06-26T08:40:23-04:00" />
 <meta name="twitter:card" content="summary_large_image" />
 <meta property="twitter:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="twitter:title" content="Apache Arrow 4.0.0 Release" />
 <meta name="twitter:site" content="@ApacheArrow" />
 <script type="application/ld+json">
-{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-25T06:12:40-04:00","datePublished":"2023-06-25T06:12:40-04:00","description":"Apache Arrow 4.0.0 (26 April 2021) This is a major release covering more than 3 months of development. Download Source Artifacts Binary Artifacts For CentOS For Debian For Python For Ubuntu Git tag Contributors This release includes 719 commits from 114 distinct contributors. $ git shortlog -sn apache-arrow-3.0.0..apache-arrow-4.0.0  [...]
+{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-26T08:40:23-04:00","datePublished":"2023-06-26T08:40:23-04:00","description":"Apache Arrow 4.0.0 (26 April 2021) This is a major release covering more than 3 months of development. Download Source Artifacts Binary Artifacts For CentOS For Debian For Python For Ubuntu Git tag Contributors This release includes 719 commits from 114 distinct contributors. $ git shortlog -sn apache-arrow-3.0.0..apache-arrow-4.0.0  [...]
 <!-- End Jekyll SEO tag -->
 
 
diff --git a/release/4.0.1.html b/release/4.0.1.html
index 53f2fc30ac5..2a1ccf77bad 100644
--- a/release/4.0.1.html
+++ b/release/4.0.1.html
@@ -20,13 +20,13 @@
 <meta property="og:site_name" content="Apache Arrow" />
 <meta property="og:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="og:type" content="article" />
-<meta property="article:published_time" content="2023-06-25T06:12:40-04:00" />
+<meta property="article:published_time" content="2023-06-26T08:40:23-04:00" />
 <meta name="twitter:card" content="summary_large_image" />
 <meta property="twitter:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="twitter:title" content="Apache Arrow 4.0.1 Release" />
 <meta name="twitter:site" content="@ApacheArrow" />
 <script type="application/ld+json">
-{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-25T06:12:40-04:00","datePublished":"2023-06-25T06:12:40-04:00","description":"Apache Arrow 4.0.1 (26 May 2021) This is a patch release covering a month of development and addressing small but important bugs in the different implementations. Download Source Artifacts Binary Artifacts For CentOS For Debian For Python For Ubuntu Git tag Contributors This release includes 21 commits from 13 distinct contributors.  [...]
+{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-26T08:40:23-04:00","datePublished":"2023-06-26T08:40:23-04:00","description":"Apache Arrow 4.0.1 (26 May 2021) This is a patch release covering a month of development and addressing small but important bugs in the different implementations. Download Source Artifacts Binary Artifacts For CentOS For Debian For Python For Ubuntu Git tag Contributors This release includes 21 commits from 13 distinct contributors.  [...]
 <!-- End Jekyll SEO tag -->
 
 
diff --git a/release/5.0.0.html b/release/5.0.0.html
index c25fc30c7c6..aa540a41f3d 100644
--- a/release/5.0.0.html
+++ b/release/5.0.0.html
@@ -20,13 +20,13 @@
 <meta property="og:site_name" content="Apache Arrow" />
 <meta property="og:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="og:type" content="article" />
-<meta property="article:published_time" content="2023-06-25T06:12:40-04:00" />
+<meta property="article:published_time" content="2023-06-26T08:40:23-04:00" />
 <meta name="twitter:card" content="summary_large_image" />
 <meta property="twitter:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="twitter:title" content="Apache Arrow 5.0.0 Release" />
 <meta name="twitter:site" content="@ApacheArrow" />
 <script type="application/ld+json">
-{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-25T06:12:40-04:00","datePublished":"2023-06-25T06:12:40-04:00","description":"Apache Arrow 5.0.0 (29 July 2021) This is a major release covering more than 3 months of development. Download Source Artifacts Binary Artifacts For CentOS For Debian For Python For Ubuntu Git tag Contributors This release includes 684 commits from 99 distinct contributors in 2 Arrow repositories. 77 David Li 43 Krisztián Szűcs 42 An [...]
+{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-26T08:40:23-04:00","datePublished":"2023-06-26T08:40:23-04:00","description":"Apache Arrow 5.0.0 (29 July 2021) This is a major release covering more than 3 months of development. Download Source Artifacts Binary Artifacts For CentOS For Debian For Python For Ubuntu Git tag Contributors This release includes 684 commits from 99 distinct contributors in 2 Arrow repositories. 77 David Li 43 Krisztián Szűcs 42 An [...]
 <!-- End Jekyll SEO tag -->
 
 
diff --git a/release/6.0.0.html b/release/6.0.0.html
index 0758eedc90f..c1c879dc7e3 100644
--- a/release/6.0.0.html
+++ b/release/6.0.0.html
@@ -20,13 +20,13 @@
 <meta property="og:site_name" content="Apache Arrow" />
 <meta property="og:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="og:type" content="article" />
-<meta property="article:published_time" content="2023-06-25T06:12:40-04:00" />
+<meta property="article:published_time" content="2023-06-26T08:40:23-04:00" />
 <meta name="twitter:card" content="summary_large_image" />
 <meta property="twitter:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="twitter:title" content="Apache Arrow 6.0.0 Release" />
 <meta name="twitter:site" content="@ApacheArrow" />
 <script type="application/ld+json">
-{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-25T06:12:40-04:00","datePublished":"2023-06-25T06:12:40-04:00","description":"Apache Arrow 6.0.0 (26 October 2021) This is a major release covering more than 3 months of development. Download Source Artifacts Binary Artifacts For CentOS For Debian For Python For Ubuntu Git tag Contributors This release includes 592 commits from 88 distinct contributors. 58 David Li 56 Antoine Pitrou 46 Neal Richardson 42 Sutou [...]
+{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-26T08:40:23-04:00","datePublished":"2023-06-26T08:40:23-04:00","description":"Apache Arrow 6.0.0 (26 October 2021) This is a major release covering more than 3 months of development. Download Source Artifacts Binary Artifacts For CentOS For Debian For Python For Ubuntu Git tag Contributors This release includes 592 commits from 88 distinct contributors. 58 David Li 56 Antoine Pitrou 46 Neal Richardson 42 Sutou [...]
 <!-- End Jekyll SEO tag -->
 
 
diff --git a/release/6.0.1.html b/release/6.0.1.html
index ea06d9de10d..783cdb49ff9 100644
--- a/release/6.0.1.html
+++ b/release/6.0.1.html
@@ -20,13 +20,13 @@
 <meta property="og:site_name" content="Apache Arrow" />
 <meta property="og:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="og:type" content="article" />
-<meta property="article:published_time" content="2023-06-25T06:12:40-04:00" />
+<meta property="article:published_time" content="2023-06-26T08:40:23-04:00" />
 <meta name="twitter:card" content="summary_large_image" />
 <meta property="twitter:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="twitter:title" content="Apache Arrow 6.0.1 Release" />
 <meta name="twitter:site" content="@ApacheArrow" />
 <script type="application/ld+json">
-{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-25T06:12:40-04:00","datePublished":"2023-06-25T06:12:40-04:00","description":"Apache Arrow 6.0.1 (18 November 2021) This is a patch release covering more than 0 months of development. Download Source Artifacts Binary Artifacts For AlmaLinux For Amazon Linux For CentOS For C# For Debian For Python For Ubuntu Git tag Contributors This release includes 34 commits from 16 distinct contributors. $ git shortlog -sn  [...]
+{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-26T08:40:23-04:00","datePublished":"2023-06-26T08:40:23-04:00","description":"Apache Arrow 6.0.1 (18 November 2021) This is a patch release covering more than 0 months of development. Download Source Artifacts Binary Artifacts For AlmaLinux For Amazon Linux For CentOS For C# For Debian For Python For Ubuntu Git tag Contributors This release includes 34 commits from 16 distinct contributors. $ git shortlog -sn  [...]
 <!-- End Jekyll SEO tag -->
 
 
diff --git a/release/7.0.0.html b/release/7.0.0.html
index f53c6aab60f..f6ee1ec7fe9 100644
--- a/release/7.0.0.html
+++ b/release/7.0.0.html
@@ -20,13 +20,13 @@
 <meta property="og:site_name" content="Apache Arrow" />
 <meta property="og:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="og:type" content="article" />
-<meta property="article:published_time" content="2023-06-25T06:12:40-04:00" />
+<meta property="article:published_time" content="2023-06-26T08:40:23-04:00" />
 <meta name="twitter:card" content="summary_large_image" />
 <meta property="twitter:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="twitter:title" content="Apache Arrow 7.0.0 Release" />
 <meta name="twitter:site" content="@ApacheArrow" />
 <script type="application/ld+json">
-{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-25T06:12:40-04:00","datePublished":"2023-06-25T06:12:40-04:00","description":"Apache Arrow 7.0.0 (3 February 2022) This is a major release covering more than 3 months of development. Download Source Artifacts Binary Artifacts For AlmaLinux For Amazon Linux For CentOS For C# For Debian For Python For Ubuntu Git tag Contributors This release includes 650 commits from 105 distinct contributors. $ git shortlog -sn [...]
+{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-26T08:40:23-04:00","datePublished":"2023-06-26T08:40:23-04:00","description":"Apache Arrow 7.0.0 (3 February 2022) This is a major release covering more than 3 months of development. Download Source Artifacts Binary Artifacts For AlmaLinux For Amazon Linux For CentOS For C# For Debian For Python For Ubuntu Git tag Contributors This release includes 650 commits from 105 distinct contributors. $ git shortlog -sn [...]
 <!-- End Jekyll SEO tag -->
 
 
diff --git a/release/8.0.0.html b/release/8.0.0.html
index 6255862fd8b..ee254c6dd90 100644
--- a/release/8.0.0.html
+++ b/release/8.0.0.html
@@ -20,13 +20,13 @@
 <meta property="og:site_name" content="Apache Arrow" />
 <meta property="og:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="og:type" content="article" />
-<meta property="article:published_time" content="2023-06-25T06:12:40-04:00" />
+<meta property="article:published_time" content="2023-06-26T08:40:23-04:00" />
 <meta name="twitter:card" content="summary_large_image" />
 <meta property="twitter:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="twitter:title" content="Apache Arrow 8.0.0 Release" />
 <meta name="twitter:site" content="@ApacheArrow" />
 <script type="application/ld+json">
-{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-25T06:12:40-04:00","datePublished":"2023-06-25T06:12:40-04:00","description":"Apache Arrow 8.0.0 (6 May 2022) This is a major release covering more than 3 months of development. Download Source Artifacts Binary Artifacts For AlmaLinux For Amazon Linux For CentOS For C# For Debian For Python For Ubuntu Git tag Contributors This release includes 636 commits from 127 distinct contributors. $ git shortlog -sn apac [...]
+{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-26T08:40:23-04:00","datePublished":"2023-06-26T08:40:23-04:00","description":"Apache Arrow 8.0.0 (6 May 2022) This is a major release covering more than 3 months of development. Download Source Artifacts Binary Artifacts For AlmaLinux For Amazon Linux For CentOS For C# For Debian For Python For Ubuntu Git tag Contributors This release includes 636 commits from 127 distinct contributors. $ git shortlog -sn apac [...]
 <!-- End Jekyll SEO tag -->
 
 
diff --git a/release/9.0.0.html b/release/9.0.0.html
index e5d6b1d58ef..aacb8418962 100644
--- a/release/9.0.0.html
+++ b/release/9.0.0.html
@@ -20,13 +20,13 @@
 <meta property="og:site_name" content="Apache Arrow" />
 <meta property="og:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="og:type" content="article" />
-<meta property="article:published_time" content="2023-06-25T06:12:40-04:00" />
+<meta property="article:published_time" content="2023-06-26T08:40:23-04:00" />
 <meta name="twitter:card" content="summary_large_image" />
 <meta property="twitter:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="twitter:title" content="Apache Arrow 9.0.0 Release" />
 <meta name="twitter:site" content="@ApacheArrow" />
 <script type="application/ld+json">
-{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-25T06:12:40-04:00","datePublished":"2023-06-25T06:12:40-04:00","description":"Apache Arrow 9.0.0 (3 August 2022) This is a major release covering more than 3 months of development. Download Source Artifacts Binary Artifacts For AlmaLinux For Amazon Linux For CentOS For C# For Debian For Python For Ubuntu Git tag Contributors This release includes 529 commits from 114 distinct contributors. $ git shortlog -sn a [...]
+{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-26T08:40:23-04:00","datePublished":"2023-06-26T08:40:23-04:00","description":"Apache Arrow 9.0.0 (3 August 2022) This is a major release covering more than 3 months of development. Download Source Artifacts Binary Artifacts For AlmaLinux For Amazon Linux For CentOS For C# For Debian For Python For Ubuntu Git tag Contributors This release includes 529 commits from 114 distinct contributors. $ git shortlog -sn a [...]
 <!-- End Jekyll SEO tag -->
 
 
diff --git a/release/index.html b/release/index.html
index 8f10bca5ada..cb10ab0bc3a 100644
--- a/release/index.html
+++ b/release/index.html
@@ -20,13 +20,13 @@
 <meta property="og:site_name" content="Apache Arrow" />
 <meta property="og:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="og:type" content="article" />
-<meta property="article:published_time" content="2023-06-25T06:12:40-04:00" />
+<meta property="article:published_time" content="2023-06-26T08:40:23-04:00" />
 <meta name="twitter:card" content="summary_large_image" />
 <meta property="twitter:image" content="https://arrow.apache.org/img/arrow-logo_horizontal_black-txt_white-bg.png" />
 <meta property="twitter:title" content="Releases" />
 <meta name="twitter:site" content="@ApacheArrow" />
 <script type="application/ld+json">
-{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-25T06:12:40-04:00","datePublished":"2023-06-25T06:12:40-04:00","description":"Apache Arrow Releases Navigate to the release page for downloads and the changelog. 12.0.1 (13 June 2023) 12.0.0 (2 May 2023) 11.0.0 (26 January 2023) 10.0.1 (22 November 2022) 10.0.0 (26 October 2022) 9.0.0 (3 August 2022) 8.0.0 (6 May 2022) 7.0.0 (3 February 2022) 6.0.1 (18 November 2021) 6.0.0 (26 October 2021) 5.0.0 (29 July 2021 [...]
+{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2023-06-26T08:40:23-04:00","datePublished":"2023-06-26T08:40:23-04:00","description":"Apache Arrow Releases Navigate to the release page for downloads and the changelog. 12.0.1 (13 June 2023) 12.0.0 (2 May 2023) 11.0.0 (26 January 2023) 10.0.1 (22 November 2022) 10.0.0 (26 October 2022) 9.0.0 (3 August 2022) 8.0.0 (6 May 2022) 7.0.0 (3 February 2022) 6.0.1 (18 November 2021) 6.0.0 (26 October 2021) 5.0.0 (29 July 2021 [...]
 <!-- End Jekyll SEO tag -->