Publish commit(s) from site source repo:
  79d165906 Update the releases index page for release 1.14.0
  abcfa0144 [blog] Add post announcing Kudu 1.14.0
  81d8bf75b Update website for 1.14.0 release
  d3583410a [blog] Cross post Bloom filter predicate blog post

Site-Repo-Commit: 79d165906cf6a25143d42d1a9818000215a925e2
diff --git a/2016/02/26/apache-kudu-0-7-0-released.html b/2016/02/26/apache-kudu-0-7-0-released.html
index ebea167..3396d3e 100644
--- a/2016/02/26/apache-kudu-0-7-0-released.html
+++ b/2016/02/26/apache-kudu-0-7-0-released.html
@@ -151,6 +151,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -179,8 +181,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2016/03/10/apache-kudu-0-7-1-released.html b/2016/03/10/apache-kudu-0-7-1-released.html
index 77e2170..a0218b8 100644
--- a/2016/03/10/apache-kudu-0-7-1-released.html
+++ b/2016/03/10/apache-kudu-0-7-1-released.html
@@ -150,6 +150,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -178,8 +180,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2016/03/20/weekly-update.html b/2016/03/20/weekly-update.html
index 91ac1b5..124ac72 100644
--- a/2016/03/20/weekly-update.html
+++ b/2016/03/20/weekly-update.html
@@ -210,6 +210,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -238,8 +240,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2016/03/28/weekly-update.html b/2016/03/28/weekly-update.html
index 0f13ff1..b391730 100644
--- a/2016/03/28/weekly-update.html
+++ b/2016/03/28/weekly-update.html
@@ -201,6 +201,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -229,8 +231,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2016/04/04/weekly-update.html b/2016/04/04/weekly-update.html
index 226dd45..0625688 100644
--- a/2016/04/04/weekly-update.html
+++ b/2016/04/04/weekly-update.html
@@ -220,6 +220,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -248,8 +250,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2016/04/11/weekly-update.html b/2016/04/11/weekly-update.html
index 17da313..0c3d57c 100644
--- a/2016/04/11/weekly-update.html
+++ b/2016/04/11/weekly-update.html
@@ -220,6 +220,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -248,8 +250,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2016/04/12/apache-kudu-0-8-0-released.html b/2016/04/12/apache-kudu-0-8-0-released.html
index c56a666..2760614 100644
--- a/2016/04/12/apache-kudu-0-8-0-released.html
+++ b/2016/04/12/apache-kudu-0-8-0-released.html
@@ -141,6 +141,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -169,8 +171,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2016/04/14/ingesting-json-apache-kudu-streamsets-data-collector.html b/2016/04/14/ingesting-json-apache-kudu-streamsets-data-collector.html
index e495f48..e7faaec 100644
--- a/2016/04/14/ingesting-json-apache-kudu-streamsets-data-collector.html
+++ b/2016/04/14/ingesting-json-apache-kudu-streamsets-data-collector.html
@@ -164,6 +164,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -192,8 +194,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2016/04/18/weekly-update.html b/2016/04/18/weekly-update.html
index 00d76a4..dbb66cd 100644
--- a/2016/04/18/weekly-update.html
+++ b/2016/04/18/weekly-update.html
@@ -218,6 +218,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -246,8 +248,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2016/04/19/kudu-0-8-0-predicate-improvements.html b/2016/04/19/kudu-0-8-0-predicate-improvements.html
index 5ba27ff..447cb86 100644
--- a/2016/04/19/kudu-0-8-0-predicate-improvements.html
+++ b/2016/04/19/kudu-0-8-0-predicate-improvements.html
@@ -198,6 +198,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -226,8 +228,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2016/04/25/weekly-update.html b/2016/04/25/weekly-update.html
index e2294aa..b5d4412 100644
--- a/2016/04/25/weekly-update.html
+++ b/2016/04/25/weekly-update.html
@@ -217,6 +217,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -245,8 +247,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2016/04/26/ycsb.html b/2016/04/26/ycsb.html
index c47a067..28464fb 100644
--- a/2016/04/26/ycsb.html
+++ b/2016/04/26/ycsb.html
@@ -426,6 +426,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -454,8 +456,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2016/05/03/weekly-update.html b/2016/05/03/weekly-update.html
index 406b5ac..f16b6d7 100644
--- a/2016/05/03/weekly-update.html
+++ b/2016/05/03/weekly-update.html
@@ -192,6 +192,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -220,8 +222,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2016/05/09/weekly-update.html b/2016/05/09/weekly-update.html
index 29c5448..823e9bf 100644
--- a/2016/05/09/weekly-update.html
+++ b/2016/05/09/weekly-update.html
@@ -182,6 +182,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -210,8 +212,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2016/05/16/weekly-update.html b/2016/05/16/weekly-update.html
index de2fc50..c90ebfb 100644
--- a/2016/05/16/weekly-update.html
+++ b/2016/05/16/weekly-update.html
@@ -217,6 +217,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -245,8 +247,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2016/05/23/weekly-update.html b/2016/05/23/weekly-update.html
index 14453fa..d5e1efe 100644
--- a/2016/05/23/weekly-update.html
+++ b/2016/05/23/weekly-update.html
@@ -206,6 +206,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -234,8 +236,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2016/06/01/weekly-update.html b/2016/06/01/weekly-update.html
index e8dd9df..78e76f4 100644
--- a/2016/06/01/weekly-update.html
+++ b/2016/06/01/weekly-update.html
@@ -172,6 +172,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -200,8 +202,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2016/06/02/no-default-partitioning.html b/2016/06/02/no-default-partitioning.html
index 509bd5f..ea9c21f 100644
--- a/2016/06/02/no-default-partitioning.html
+++ b/2016/06/02/no-default-partitioning.html
@@ -213,6 +213,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -241,8 +243,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2016/06/06/weekly-update.html b/2016/06/06/weekly-update.html
index 623b0d3..396f0c9 100644
--- a/2016/06/06/weekly-update.html
+++ b/2016/06/06/weekly-update.html
@@ -167,6 +167,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -195,8 +197,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2016/06/10/apache-kudu-0-9-0-released.html b/2016/06/10/apache-kudu-0-9-0-released.html
index c99511c..b486bd8 100644
--- a/2016/06/10/apache-kudu-0-9-0-released.html
+++ b/2016/06/10/apache-kudu-0-9-0-released.html
@@ -142,6 +142,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -170,8 +172,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2016/06/13/weekly-update.html b/2016/06/13/weekly-update.html
index 42e8f36..b57c3d5 100644
--- a/2016/06/13/weekly-update.html
+++ b/2016/06/13/weekly-update.html
@@ -175,6 +175,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -203,8 +205,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2016/06/17/raft-consensus-single-node.html b/2016/06/17/raft-consensus-single-node.html
index ef8aa2a..a4471df 100644
--- a/2016/06/17/raft-consensus-single-node.html
+++ b/2016/06/17/raft-consensus-single-node.html
@@ -217,6 +217,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -245,8 +247,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2016/06/21/weekly-update.html b/2016/06/21/weekly-update.html
index ec4528e..3670bf2 100644
--- a/2016/06/21/weekly-update.html
+++ b/2016/06/21/weekly-update.html
@@ -168,6 +168,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -196,8 +198,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2016/06/24/multi-master-1-0-0.html b/2016/06/24/multi-master-1-0-0.html
index 2f2a80e..fe98c23 100644
--- a/2016/06/24/multi-master-1-0-0.html
+++ b/2016/06/24/multi-master-1-0-0.html
@@ -230,6 +230,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -258,8 +260,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2016/06/27/weekly-update.html b/2016/06/27/weekly-update.html
index 78f4b18..d0ae2dd 100644
--- a/2016/06/27/weekly-update.html
+++ b/2016/06/27/weekly-update.html
@@ -232,6 +232,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -260,8 +262,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2016/07/01/apache-kudu-0-9-1-released.html b/2016/07/01/apache-kudu-0-9-1-released.html
index 25c09c0..16e6db4 100644
--- a/2016/07/01/apache-kudu-0-9-1-released.html
+++ b/2016/07/01/apache-kudu-0-9-1-released.html
@@ -140,6 +140,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -168,8 +170,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2016/07/11/weekly-update.html b/2016/07/11/weekly-update.html
index b8b997a..1e88329 100644
--- a/2016/07/11/weekly-update.html
+++ b/2016/07/11/weekly-update.html
@@ -198,6 +198,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -226,8 +228,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2016/07/18/weekly-update.html b/2016/07/18/weekly-update.html
index 3571915..f578c22 100644
--- a/2016/07/18/weekly-update.html
+++ b/2016/07/18/weekly-update.html
@@ -190,6 +190,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -218,8 +220,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2016/07/25/asf-graduation.html b/2016/07/25/asf-graduation.html
index 75afc57..fb29b03 100644
--- a/2016/07/25/asf-graduation.html
+++ b/2016/07/25/asf-graduation.html
@@ -166,6 +166,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -194,8 +196,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2016/07/26/weekly-update.html b/2016/07/26/weekly-update.html
index 54a6dd6..d6f3ecf 100644
--- a/2016/07/26/weekly-update.html
+++ b/2016/07/26/weekly-update.html
@@ -198,6 +198,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -226,8 +228,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2016/08/08/weekly-update.html b/2016/08/08/weekly-update.html
index e16086f..0afca8b 100644
--- a/2016/08/08/weekly-update.html
+++ b/2016/08/08/weekly-update.html
@@ -197,6 +197,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -225,8 +227,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2016/08/16/weekly-update.html b/2016/08/16/weekly-update.html
index 5d20ca2..1c71606 100644
--- a/2016/08/16/weekly-update.html
+++ b/2016/08/16/weekly-update.html
@@ -247,6 +247,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -275,8 +277,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2016/08/23/apache-kudu-0-10-0-released.html b/2016/08/23/apache-kudu-0-10-0-released.html
index 9450f03..a02b1d6 100644
--- a/2016/08/23/apache-kudu-0-10-0-released.html
+++ b/2016/08/23/apache-kudu-0-10-0-released.html
@@ -163,6 +163,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -191,8 +193,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2016/08/23/new-range-partitioning-features.html b/2016/08/23/new-range-partitioning-features.html
index 0a83478..41651fb 100644
--- a/2016/08/23/new-range-partitioning-features.html
+++ b/2016/08/23/new-range-partitioning-features.html
@@ -223,6 +223,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -251,8 +253,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2016/08/31/intro-flume-kudu-sink.html b/2016/08/31/intro-flume-kudu-sink.html
index b95d23f..1193552 100644
--- a/2016/08/31/intro-flume-kudu-sink.html
+++ b/2016/08/31/intro-flume-kudu-sink.html
@@ -425,6 +425,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -453,8 +455,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2016/09/16/predicate-pushdown.html b/2016/09/16/predicate-pushdown.html
index 6bac0d3..ea32a0a 100644
--- a/2016/09/16/predicate-pushdown.html
+++ b/2016/09/16/predicate-pushdown.html
@@ -271,6 +271,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -299,8 +301,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2016/09/20/apache-kudu-1-0-0-released.html b/2016/09/20/apache-kudu-1-0-0-released.html
index 6ae433e..642cba0 100644
--- a/2016/09/20/apache-kudu-1-0-0-released.html
+++ b/2016/09/20/apache-kudu-1-0-0-released.html
@@ -166,6 +166,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -194,8 +196,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2016/09/26/strata-nyc-kudu-talks.html b/2016/09/26/strata-nyc-kudu-talks.html
index dd58e51..555bd4b 100644
--- a/2016/09/26/strata-nyc-kudu-talks.html
+++ b/2016/09/26/strata-nyc-kudu-talks.html
@@ -187,6 +187,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -215,8 +217,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2016/10/11/weekly-update.html b/2016/10/11/weekly-update.html
index 726e792..1f6711b 100644
--- a/2016/10/11/weekly-update.html
+++ b/2016/10/11/weekly-update.html
@@ -289,6 +289,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -317,8 +319,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2016/10/20/weekly-update.html b/2016/10/20/weekly-update.html
index d5ed6f0..7399ad9 100644
--- a/2016/10/20/weekly-update.html
+++ b/2016/10/20/weekly-update.html
@@ -218,6 +218,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -246,8 +248,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2016/11/01/weekly-update.html b/2016/11/01/weekly-update.html
index d226df3..6e070ca 100644
--- a/2016/11/01/weekly-update.html
+++ b/2016/11/01/weekly-update.html
@@ -216,6 +216,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -244,8 +246,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2016/11/15/weekly-update.html b/2016/11/15/weekly-update.html
index 4650546..851a02c 100644
--- a/2016/11/15/weekly-update.html
+++ b/2016/11/15/weekly-update.html
@@ -237,6 +237,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -265,8 +267,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2017/01/20/apache-kudu-1-2-0-released.html b/2017/01/20/apache-kudu-1-2-0-released.html
index b75480f..aaa0bae 100644
--- a/2017/01/20/apache-kudu-1-2-0-released.html
+++ b/2017/01/20/apache-kudu-1-2-0-released.html
@@ -162,6 +162,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -190,8 +192,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2017/03/20/apache-kudu-1-3-0-released.html b/2017/03/20/apache-kudu-1-3-0-released.html
index 370b5ae..a91f622 100644
--- a/2017/03/20/apache-kudu-1-3-0-released.html
+++ b/2017/03/20/apache-kudu-1-3-0-released.html
@@ -161,6 +161,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -189,8 +191,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2017/04/19/apache-kudu-1-3-1-released.html b/2017/04/19/apache-kudu-1-3-1-released.html
index c44f9a3..d53516e 100644
--- a/2017/04/19/apache-kudu-1-3-1-released.html
+++ b/2017/04/19/apache-kudu-1-3-1-released.html
@@ -145,6 +145,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -173,8 +175,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2017/06/13/apache-kudu-1-4-0-released.html b/2017/06/13/apache-kudu-1-4-0-released.html
index b42a27e..936ec06 100644
--- a/2017/06/13/apache-kudu-1-4-0-released.html
+++ b/2017/06/13/apache-kudu-1-4-0-released.html
@@ -161,6 +161,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -189,8 +191,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2017/09/08/apache-kudu-1-5-0-released.html b/2017/09/08/apache-kudu-1-5-0-released.html
index c5e7fa0..7953444 100644
--- a/2017/09/08/apache-kudu-1-5-0-released.html
+++ b/2017/09/08/apache-kudu-1-5-0-released.html
@@ -167,6 +167,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -195,8 +197,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2017/09/18/kudu-consistency-pt1.html b/2017/09/18/kudu-consistency-pt1.html
index 28a6a38..e56d613 100644
--- a/2017/09/18/kudu-consistency-pt1.html
+++ b/2017/09/18/kudu-consistency-pt1.html
@@ -304,6 +304,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -332,8 +334,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2017/10/23/nosql-kudu-spanner-slides.html b/2017/10/23/nosql-kudu-spanner-slides.html
index f6dde13..b3fb85d 100644
--- a/2017/10/23/nosql-kudu-spanner-slides.html
+++ b/2017/10/23/nosql-kudu-spanner-slides.html
@@ -185,6 +185,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -213,8 +215,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2017/12/08/apache-kudu-1-6-0-released.html b/2017/12/08/apache-kudu-1-6-0-released.html
index fc49d5a..a032bb2 100644
--- a/2017/12/08/apache-kudu-1-6-0-released.html
+++ b/2017/12/08/apache-kudu-1-6-0-released.html
@@ -186,6 +186,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -214,8 +216,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2018/03/23/apache-kudu-1-7-0-released.html b/2018/03/23/apache-kudu-1-7-0-released.html
index c5f8b24..aadd5c7 100644
--- a/2018/03/23/apache-kudu-1-7-0-released.html
+++ b/2018/03/23/apache-kudu-1-7-0-released.html
@@ -198,6 +198,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -226,8 +228,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2018/07/10/instrumentation-in-kudu.html b/2018/07/10/instrumentation-in-kudu.html
index 458864d..79cf931 100644
--- a/2018/07/10/instrumentation-in-kudu.html
+++ b/2018/07/10/instrumentation-in-kudu.html
@@ -160,6 +160,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -188,8 +190,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2018/08/06/getting-started-with-kudu-an-oreilly-title.html b/2018/08/06/getting-started-with-kudu-an-oreilly-title.html
index 6aaabe3..cb51a35 100644
--- a/2018/08/06/getting-started-with-kudu-an-oreilly-title.html
+++ b/2018/08/06/getting-started-with-kudu-an-oreilly-title.html
@@ -185,6 +185,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -213,8 +215,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2018/09/11/simplified-pipelines-with-kudu.html b/2018/09/11/simplified-pipelines-with-kudu.html
index 81bd672..5c14480 100644
--- a/2018/09/11/simplified-pipelines-with-kudu.html
+++ b/2018/09/11/simplified-pipelines-with-kudu.html
@@ -168,6 +168,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -196,8 +198,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2018/09/26/index-skip-scan-optimization-in-kudu.html b/2018/09/26/index-skip-scan-optimization-in-kudu.html
index ba6e43c..6631947 100644
--- a/2018/09/26/index-skip-scan-optimization-in-kudu.html
+++ b/2018/09/26/index-skip-scan-optimization-in-kudu.html
@@ -232,6 +232,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -260,8 +262,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2018/10/26/apache-kudu-1-8-0-released.html b/2018/10/26/apache-kudu-1-8-0-released.html
index 8cd93cf..040df46 100644
--- a/2018/10/26/apache-kudu-1-8-0-released.html
+++ b/2018/10/26/apache-kudu-1-8-0-released.html
@@ -167,6 +167,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -195,8 +197,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2018/12/11/call-for-posts.html b/2018/12/11/call-for-posts.html
index 9d59464..8ab673e 100644
--- a/2018/12/11/call-for-posts.html
+++ b/2018/12/11/call-for-posts.html
@@ -145,6 +145,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -173,8 +175,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2019/03/05/transparent-hierarchical-storage-management-with-apache-kudu-and-impala.html b/2019/03/05/transparent-hierarchical-storage-management-with-apache-kudu-and-impala.html
index 1dc2a07..f362d03 100644
--- a/2019/03/05/transparent-hierarchical-storage-management-with-apache-kudu-and-impala.html
+++ b/2019/03/05/transparent-hierarchical-storage-management-with-apache-kudu-and-impala.html
@@ -530,6 +530,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -558,8 +560,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2019/03/15/apache-kudu-1-9-0-release.html b/2019/03/15/apache-kudu-1-9-0-release.html
index a539cb9..68e3890 100644
--- a/2019/03/15/apache-kudu-1-9-0-release.html
+++ b/2019/03/15/apache-kudu-1-9-0-release.html
@@ -169,6 +169,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -197,8 +199,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html b/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html
index 776a0f7..3625c33 100644
--- a/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html
+++ b/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html
@@ -347,6 +347,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -375,8 +377,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html b/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html
index ddeff68..7a9546b 100644
--- a/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html
+++ b/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html
@@ -253,6 +253,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -281,8 +283,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2019/04/30/location-awareness.html b/2019/04/30/location-awareness.html
index 59442c1..3864429 100644
--- a/2019/04/30/location-awareness.html
+++ b/2019/04/30/location-awareness.html
@@ -494,6 +494,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -522,8 +524,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2019/07/09/apache-kudu-1-10-0-release.html b/2019/07/09/apache-kudu-1-10-0-release.html
index f66fbff..9eb048f 100644
--- a/2019/07/09/apache-kudu-1-10-0-release.html
+++ b/2019/07/09/apache-kudu-1-10-0-release.html
@@ -193,6 +193,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -221,8 +223,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2019/11/20/apache-kudu-1-10-1-release.html b/2019/11/20/apache-kudu-1-10-1-release.html
index 67e9718..80825d9 100644
--- a/2019/11/20/apache-kudu-1-10-1-release.html
+++ b/2019/11/20/apache-kudu-1-10-1-release.html
@@ -156,6 +156,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -184,8 +186,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2019/11/20/apache-kudu-1-11-1-release.html b/2019/11/20/apache-kudu-1-11-1-release.html
index 037add8..d292bbf 100644
--- a/2019/11/20/apache-kudu-1-11-1-release.html
+++ b/2019/11/20/apache-kudu-1-11-1-release.html
@@ -189,6 +189,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -217,8 +219,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2020/05/18/apache-kudu-1-12-0-release.html b/2020/05/18/apache-kudu-1-12-0-release.html
index b1ee453..629ee90 100644
--- a/2020/05/18/apache-kudu-1-12-0-release.html
+++ b/2020/05/18/apache-kudu-1-12-0-release.html
@@ -195,6 +195,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -223,8 +225,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2020/07/30/building-near-real-time-big-data-lake.html b/2020/07/30/building-near-real-time-big-data-lake.html
index 8a89f46..722c18c 100644
--- a/2020/07/30/building-near-real-time-big-data-lake.html
+++ b/2020/07/30/building-near-real-time-big-data-lake.html
@@ -391,6 +391,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -419,8 +421,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2020/08/11/fine-grained-authz-ranger.html b/2020/08/11/fine-grained-authz-ranger.html
index 05513ff..97bcd2d 100644
--- a/2020/08/11/fine-grained-authz-ranger.html
+++ b/2020/08/11/fine-grained-authz-ranger.html
@@ -335,6 +335,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -363,8 +365,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2020/09/21/apache-kudu-1-13-0-release.html b/2020/09/21/apache-kudu-1-13-0-release.html
index bb10eca..233a4c2 100644
--- a/2020/09/21/apache-kudu-1-13-0-release.html
+++ b/2020/09/21/apache-kudu-1-13-0-release.html
@@ -180,6 +180,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -208,8 +210,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/2021/01/15/bloom-filter-predicate.html b/2021/01/15/bloom-filter-predicate.html
new file mode 100644
index 0000000..8e0340e
--- /dev/null
+++ b/2021/01/15/bloom-filter-predicate.html
@@ -0,0 +1,358 @@
+<!DOCTYPE html>
+<html lang="en">
+  <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 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
+    <meta name="description" content="A new open source Apache Hadoop ecosystem project, Apache Kudu completes Hadoop's storage layer to enable fast analytics on fast data" />
+    <meta name="author" content="Cloudera" />
+    <title>Apache Kudu - Optimized joins & filtering with Bloom filter predicate in Kudu</title>
+    <!-- Bootstrap core CSS -->
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css"
+          integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7"
+          crossorigin="anonymous">
+
+    <!-- Custom styles for this template -->
+    <link href="/css/kudu.css" rel="stylesheet"/>
+    <link href="/css/asciidoc.css" rel="stylesheet"/>
+    <link rel="shortcut icon" href="/img/logo-favicon.ico" />
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.1/css/font-awesome.min.css" />
+
+    
+    <link rel="alternate" type="application/atom+xml"
+      title="RSS Feed for Apache Kudu blog"
+      href="/feed.xml" />
+    
+
+    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
+    <!--[if lt IE 9]>
+        <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
+        <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
+        <![endif]-->
+  </head>
+  <body>
+    <div class="kudu-site container-fluid">
+      <!-- Static navbar -->
+        <nav class="navbar navbar-default">
+          <div class="container-fluid">
+            <div class="navbar-header">
+              <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
+                <span class="sr-only">Toggle navigation</span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+              </button>
+              
+              <a class="logo" href="/"><img
+                src="//d3dr9sfxru4sde.cloudfront.net/i/k/apachekudu_logo_0716_80px.png"
+                srcset="//d3dr9sfxru4sde.cloudfront.net/i/k/apachekudu_logo_0716_80px.png 1x, //d3dr9sfxru4sde.cloudfront.net/i/k/apachekudu_logo_0716_160px.png 2x"
+                alt="Apache Kudu"/></a>
+              
+            </div>
+            <div id="navbar" class="collapse navbar-collapse">
+              <ul class="nav navbar-nav navbar-right">
+                <li >
+                  <a href="/">Home</a>
+                </li>
+                <li >
+                  <a href="/overview.html">Overview</a>
+                </li>
+                <li >
+                  <a href="/docs/">Documentation</a>
+                </li>
+                <li >
+                  <a href="/releases/">Releases</a>
+                </li>
+                <li class="active">
+                  <a href="/blog/">Blog</a>
+                </li>
+                <!-- NOTE: this dropdown menu does not appear on Mobile, so don't add anything here
+                     that doesn't also appear elsewhere on the site. -->
+                <li class="dropdown">
+                  <a href="/community.html" role="button" aria-haspopup="true" aria-expanded="false">Community <span class="caret"></span></a>
+                  <ul class="dropdown-menu">
+                    <li class="dropdown-header">GET IN TOUCH</li>
+                    <li><a class="icon email" href="/community.html">Mailing Lists</a></li>
+                    <li><a class="icon slack" href="https://getkudu-slack.herokuapp.com/">Slack Channel</a></li>
+                    <li role="separator" class="divider"></li>
+                    <li><a href="/community.html#meetups-user-groups-and-conference-presentations">Events and Meetups</a></li>
+                    <li><a href="/committers.html">Project Committers</a></li>
+                    <li><a href="/ecosystem.html">Ecosystem</a></li>
+                    <!--<li><a href="/roadmap.html">Roadmap</a></li>-->
+                    <li><a href="/community.html#contributions">How to Contribute</a></li>
+                    <li role="separator" class="divider"></li>
+                    <li class="dropdown-header">DEVELOPER RESOURCES</li>
+                    <li><a class="icon github" href="https://github.com/apache/incubator-kudu">GitHub</a></li>
+                    <li><a class="icon gerrit" href="http://gerrit.cloudera.org:8080/#/q/status:open+project:kudu">Gerrit Code Review</a></li>
+                    <li><a class="icon jira" href="https://issues.apache.org/jira/browse/KUDU">JIRA Issue Tracker</a></li>
+                    <li role="separator" class="divider"></li>
+                    <li class="dropdown-header">SOCIAL MEDIA</li>
+                    <li><a class="icon twitter" href="https://twitter.com/ApacheKudu">Twitter</a></li>
+                    <li><a href="https://www.reddit.com/r/kudu/">Reddit</a></li>
+                    <li role="separator" class="divider"></li>
+                    <li class="dropdown-header">APACHE SOFTWARE FOUNDATION</li>
+                    <li><a href="https://www.apache.org/security/" target="_blank">Security</a></li>
+                    <li><a href="https://www.apache.org/foundation/sponsorship.html" target="_blank">Sponsorship</a></li>
+                    <li><a href="https://www.apache.org/foundation/thanks.html" target="_blank">Thanks</a></li>
+                    <li><a href="https://www.apache.org/licenses/" target="_blank">License</a></li>
+                  </ul>
+                </li>
+                <li >
+                  <a href="/faq.html">FAQ</a>
+                </li>
+              </ul><!-- /.nav -->
+            </div><!-- /#navbar -->
+          </div><!-- /.container-fluid -->
+        </nav>
+
+<div class="row header">
+  <div class="col-lg-12">
+    <h2><a href="/blog">Apache Kudu Blog</a></h2>
+  </div>
+</div>
+
+<div class="row-fluid">
+  <div class="col-lg-9">
+    <article>
+  <header>
+    <h1 class="entry-title">Optimized joins & filtering with Bloom filter predicate in Kudu</h1>
+    <p class="meta">Posted 15 Jan 2021 by Bankim Bhavsar</p>
+  </header>
+  <div class="entry-content">
+    <p>Note: This is a cross-post from the Cloudera Engineering Blog
+<a href="https://blog.cloudera.com/optimized-joins-filtering-with-bloom-filter-predicate-in-kudu/">Optimized joins &amp; filtering with Bloom filter predicate in Kudu</a></p>
+
+<p>Cloudera’s CDP Runtime version 7.1.5 maps to Apache Kudu 1.13 and upcoming Apache Impala 4.0</p>
+
+<h2 id="introduction">Introduction</h2>
+<p>In database systems one of the most effective ways to improve performance is to avoid doing
+unnecessary work, such as network transfers and reading data from disk. One of the ways Apache
+Kudu achieves this is by supporting column predicates with scanners. Pushing down column predicate
+filters to Kudu allows for optimized execution by skipping reading column values for filtered out
+rows and reducing network IO between a client, like the distributed query engine Apache Impala, and
+Kudu. See the documentation on
+<a href="https://docs.cloudera.com/runtime/latest/impala-reference/topics/impala-runtime-filtering.html">runtime filtering in Impala</a>
+for details.</p>
+
+<p>CDP Runtime 7.1.5 and CDP Public Cloud added support for Bloom filter column predicate pushdown in
+Kudu and the associated integration in Impala.</p>
+
+<!--more-->
+
+<h2 id="bloom-filter">Bloom filter</h2>
+<p>A Bloom filter is a space-efficient probabilistic data structure used to test set membership with a
+possibility of false positive matches. In database systems these are used to determine whether a
+set of data can be ignored when only a subset of the records are required. See the
+<a href="https://en.wikipedia.org/wiki/Bloom_filter">wikipedia page</a> for more details.</p>
+
+<p>The implementation used in Kudu is a space, hash, and cache efficient block-based Bloom filter from
+<a href="https://www.cs.amherst.edu/~ccmcgeoch/cs34/papers/cacheefficientbloomfilters-jea.pdf">“Cache-, Hash- and Space-Efficient Bloom Filters”</a>
+by Putze et al. This Bloom filter was taken from the implementation in Impala and further enhanced.
+The block based Bloom filter is designed to fit in CPU cache, and it allows SIMD operations using
+AVX2, when available, for efficient lookup and insertion.</p>
+
+<p>Consider the case of a broadcast hash join between a small table and a big table where predicate
+push down is not available. This typically involves following steps:</p>
+<ol>
+  <li>Read the entire small table and construct a hash table from it.</li>
+  <li>Broadcast the generated hash table to all worker nodes.</li>
+  <li>On the worker nodes start fetching and iterating on slices of the big table,  check whether the
+key in the big table exists in the hash table, and only return the matched rows.</li>
+</ol>
+
+<p>Step 3 is the heaviest since it involves reading the entire big table, and could involve heavy
+network IO if the worker and the nodes hosting the big table are not on the same server.</p>
+
+<p>Before 7.1.5, Impala supported pushing down only the Minimum/Maximum (MIN_MAX) runtime filter to
+Kudu which filters out values not within the specified bounds. In addition to the MIN_MAX runtime
+filter, Impala in CDP 7.1.5+ now supports pushing down a runtime Bloom filter to Kudu. With the
+newly introduced Bloom filter predicate support in Kudu, Impala can use this feature to perform
+drastically more efficient joins for data stored in Kudu.
+Performance
+As in the scenario described above, we ran a Impala query which joins a big table stored on Kudu
+and a small table stored as Parquet on HDFS. The small table was created using Parquet on HDFS to
+isolate the new feature, but could also be stored in Kudu just the same. We ran the queries first
+using only the MIN_MAX filter and then using both the MIN_MAX and BLOOM filter
+(ALL runtime filters). For comparison, we created the same big table in Parquet on HDFS. Using
+Parquet on HDFS is a great baseline for comparison because Impala already supports both MIN_MAX and
+BLOOM filters for Parquet on HDFS.</p>
+
+<h2 id="setup">Setup</h2>
+<p>The following test was performed on a 6 node cluster with CDP Runtime 7.1.5.</p>
+
+<p>Hardware Configuration:
+<code class="language-plaintext highlighter-rouge">Dell PowerEdge R430, 20c/40t Xeon e5-2630 v4 @ 2.2Ghz, 128GB RAM, 4-2TB HDDs with 1 for WAL and 3
+for data directories.</code></p>
+
+<h3 id="schema">Schema:</h3>
+<ul>
+  <li>Big table consists of 260 million rows with randomly generated data hash partitioned by primary
+key across 20 partitions on Kudu. The Kudu table was explicitly rebalanced to ensure a balanced
+layout after the load.</li>
+  <li>Small table consists of 2000 rows of top 1000 and bottom 1000 keys from the big table stored as
+Parquet on HDFS. This prevents the MIN_MAX filters from doing any filtering on the big table as
+all rows would fall under the range bounds of the MIN_MAX filters.</li>
+  <li>COMPUTE STATS were run on all tables to help gather information about the table metadata and help
+Impala optimize the query plan.</li>
+  <li>All queries were run 10 times and the mean query runtime is depicted below.</li>
+</ul>
+
+<h2 id="join-queries">Join Queries</h2>
+<p>For join queries, we saw performance improvements of 3X to 5X in Kudu with Bloom filter predicate
+pushdown. We expect to see even better performance multiples with larger data sizes and more
+selective queries.</p>
+
+<p>Compared to Parquet on HDFS, Kudu performance is now better by around 17-33%.</p>
+
+<p><img src="/img/bloom-filter-join-queries.png" alt="png" class="img-responsive" /></p>
+
+<h2 id="update-query">Update Query</h2>
+<p>For an update query that basically upserts the entire small table into the existing big table, we
+saw 15X improvement. This is primarily due to the increased query performance when selecting the
+rows to update.</p>
+
+<p><img src="/img/bloom-filter-update-query.png" alt="png" class="img-responsive" /></p>
+
+<p>See references section below for details on the table schema, loading process, and queries that were
+run.</p>
+
+<h2 id="tpc-h">TPC-H</h2>
+<p>We also ran the TPC-H benchmark on a single node cluster with a scale factor of 30 and saw
+performance improvements in the range of 19% to 31% with different block cache capacity settings.</p>
+
+<p>Kudu automatically disables Bloom filter predicates that are not effectively filtering data to avoid
+any performance penalties from the new feature. During development of the feature, query 9 in the
+TPCH benchmark (TPCH-Q9) exhibited regression of 50-96%. On further investigation, the time required
+to scan the rows from Kudu increased by up to 2X. When investigating this regression we found that
+the Bloom filter predicate that was pushed down was filtering out less than 10% of the rows, leading
+to increased CPU usage in Kudu which outweighed the benefit of the filter. To resolve the regression
+we added a heuristic in Kudu wherein if a Bloom filter predicate is not filtering out a sufficient
+percentage of rows then it’s disabled automatically for the remainder of the scan. This is safe
+because Bloom filters can return false positives and hence false matches returned to the client are
+expected to be filtered out using other deterministic filters.</p>
+
+<h2 id="feature-availability">Feature Availability</h2>
+<p>Users querying Kudu using Impala will have the feature enabled by default from CDP 7.1.5 onward
+and CDP Public Cloud. We highly recommend users upgrade to get this performance enhancement and many
+other performance enhancements in the release. For custom applications that use the Kudu client API
+directly, the Kudu C++ client also has the Bloom filter predicate available from CDP 7.1.5 onward.
+The Kudu Java client does not have the Bloom filter predicate available yet,
+<a href="https://issues.apache.org/jira/browse/KUDU-3221">KUDU-3221</a>.</p>
+
+<h2 id="references">References:</h2>
+<ul>
+  <li>Performance testing related schema and queries:
+<a href="https://gist.github.com/bbhavsar/006df9c40b4b0528e297fac29824ceb4">https://gist.github.com/bbhavsar/006df9c40b4b0528e297fac29824ceb4</a></li>
+  <li>Kudu C++ client documentation:
+<a href="https://kudu.apache.org/cpp-client-api/classkudu_1_1client_1_1KuduTable.html#a356e8d0d10491d4d8540adefac86be94">https://kudu.apache.org/cpp-client-api/classkudu_1_1client_1_1KuduTable.html#a356e8d0d10491d4d8540adefac86be94</a></li>
+  <li>Example code to create and pass Bloom filter predicate:
+<a href="https://github.com/apache/kudu/blob/master/src/kudu/client/predicate-test.cc#L1416">https://github.com/apache/kudu/blob/master/src/kudu/client/predicate-test.cc#L1416</a></li>
+  <li>Block based Bloom filter:
+<a href="https://github.com/apache/kudu/blob/master/src/kudu/util/block_bloom_filter.h#L51">https://github.com/apache/kudu/blob/master/src/kudu/util/block_bloom_filter.h#L51</a></li>
+</ul>
+
+<h2 id="acknowledgement">Acknowledgement</h2>
+<p>This feature was implemented jointly by Bankim Bhavsar and Wenzhe Zhou with guidance and feedback
+from Tim Armstrong, Adar Dembo, Thomas Tauber-Marshall, Andrew Wong, and Grant Henke. We are also
+grateful for our customers especially Mauricio Aristizabal from Impact for providing us valuable
+feedback and benchmarks.</p>
+
+
+  </div>
+</article>
+
+
+  </div>
+  <div class="col-lg-3 recent-posts">
+    <h3>Recent posts</h3>
+    <ul>
+    
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
+      <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
+    
+      <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
+    
+      <li> <a href="/2020/07/30/building-near-real-time-big-data-lake.html">Building Near Real-time Big Data Lake</a> </li>
+    
+      <li> <a href="/2020/05/18/apache-kudu-1-12-0-release.html">Apache Kudu 1.12.0 released</a> </li>
+    
+      <li> <a href="/2019/11/20/apache-kudu-1-11-1-release.html">Apache Kudu 1.11.1 released</a> </li>
+    
+      <li> <a href="/2019/11/20/apache-kudu-1-10-1-release.html">Apache Kudu 1.10.1 released</a> </li>
+    
+      <li> <a href="/2019/07/09/apache-kudu-1-10-0-release.html">Apache Kudu 1.10.0 Released</a> </li>
+    
+      <li> <a href="/2019/04/30/location-awareness.html">Location Awareness in Kudu</a> </li>
+    
+      <li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
+    
+      <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
+    
+      <li> <a href="/2019/03/15/apache-kudu-1-9-0-release.html">Apache Kudu 1.9.0 Released</a> </li>
+    
+      <li> <a href="/2019/03/05/transparent-hierarchical-storage-management-with-apache-kudu-and-impala.html">Transparent Hierarchical Storage Management with Apache Kudu and Impala</a> </li>
+    
+      <li> <a href="/2018/12/11/call-for-posts.html">Call for Posts</a> </li>
+    
+      <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
+    
+    </ul>
+  </div>
+</div>
+
+      <footer class="footer">
+        <div class="row">
+          <div class="col-md-9">
+            <p class="small">
+            Copyright &copy; 2020 The Apache Software Foundation. 
+            </p>
+            <p class="small">
+            Apache Kudu, Kudu, Apache, the Apache feather logo, and the Apache Kudu
+            project logo are either registered trademarks or trademarks of The
+            Apache Software Foundation in the United States and other countries.
+            </p>
+          </div>
+          <div class="col-md-3">
+            <a class="pull-right" 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>
+    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
+    <script>
+      // Try to detect touch-screen devices. Note: Many laptops have touch screens.
+      $(document).ready(function() {
+        if ("ontouchstart" in document.documentElement) {
+          $(document.documentElement).addClass("touch");
+        } else {
+          $(document.documentElement).addClass("no-touch");
+        }
+      });
+    </script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"
+            integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS"
+            crossorigin="anonymous"></script>
+    <script>
+      (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+      (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+      m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+      })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+      ga('create', 'UA-68448017-1', 'auto');
+      ga('send', 'pageview');
+    </script>
+    <script src="https://cdnjs.cloudflare.com/ajax/libs/anchor-js/3.1.0/anchor.js"></script>
+    <script>
+      anchors.options = {
+        placement: 'right',
+        visible: 'touch',
+      };
+      anchors.add();
+    </script>
+  </body>
+</html>
+
diff --git a/apidocs/allclasses-frame.html b/apidocs/allclasses-frame.html
index 1faedb2..b570bd8 100644
--- a/apidocs/allclasses-frame.html
+++ b/apidocs/allclasses-frame.html
@@ -40,6 +40,7 @@
 <li><a href="org/apache/kudu/client/CreateTableOptions.html" title="class in org.apache.kudu.client" target="classFrame">CreateTableOptions</a></li>
 <li><a href="org/apache/kudu/mapreduce/tools/CsvParser.html" title="class in org.apache.kudu.mapreduce.tools" target="classFrame">CsvParser</a></li>
 <li><a href="org/apache/kudu/client/Delete.html" title="class in org.apache.kudu.client" target="classFrame">Delete</a></li>
+<li><a href="org/apache/kudu/client/DeleteIgnore.html" title="class in org.apache.kudu.client" target="classFrame">DeleteIgnore</a></li>
 <li><a href="org/apache/kudu/client/DeleteTableResponse.html" title="class in org.apache.kudu.client" target="classFrame">DeleteTableResponse</a></li>
 <li><a href="org/apache/kudu/mapreduce/tools/ExportCsv.html" title="class in org.apache.kudu.mapreduce.tools" target="classFrame">ExportCsv</a></li>
 <li><a href="org/apache/kudu/client/ExternalConsistencyMode.html" title="enum in org.apache.kudu.client" target="classFrame">ExternalConsistencyMode</a></li>
@@ -71,6 +72,7 @@
 <li><a href="org/apache/kudu/mapreduce/KuduTableOutputFormat.html" title="class in org.apache.kudu.mapreduce" target="classFrame">KuduTableOutputFormat</a></li>
 <li><a href="org/apache/kudu/client/KuduTableStatistics.html" title="class in org.apache.kudu.client" target="classFrame">KuduTableStatistics</a></li>
 <li><a href="org/apache/kudu/test/KuduTestHarness.html" title="class in org.apache.kudu.test" target="classFrame">KuduTestHarness</a></li>
+<li><a href="org/apache/kudu/client/KuduTransaction.html" title="class in org.apache.kudu.client" target="classFrame">KuduTransaction</a></li>
 <li><a href="org/apache/kudu/client/ListTablesResponse.html" title="class in org.apache.kudu.client" target="classFrame">ListTablesResponse</a></li>
 <li><a href="org/apache/kudu/client/ListTabletServersResponse.html" title="class in org.apache.kudu.client" target="classFrame">ListTabletServersResponse</a></li>
 <li><a href="org/apache/kudu/client/LocatedTablet.html" title="class in org.apache.kudu.client" target="classFrame">LocatedTablet</a></li>
@@ -97,6 +99,7 @@
 <li><a href="org/apache/kudu/Type.html" title="enum in org.apache.kudu" target="classFrame">Type</a></li>
 <li><a href="org/apache/kudu/Type.html" title="enum in org.apache.kudu" target="classFrame">Type</a></li>
 <li><a href="org/apache/kudu/client/Update.html" title="class in org.apache.kudu.client" target="classFrame">Update</a></li>
+<li><a href="org/apache/kudu/client/UpdateIgnore.html" title="class in org.apache.kudu.client" target="classFrame">UpdateIgnore</a></li>
 <li><a href="org/apache/kudu/client/Upsert.html" title="class in org.apache.kudu.client" target="classFrame">Upsert</a></li>
 </ul>
 </div>
diff --git a/apidocs/allclasses-noframe.html b/apidocs/allclasses-noframe.html
index 6aba0f1..c096d21 100644
--- a/apidocs/allclasses-noframe.html
+++ b/apidocs/allclasses-noframe.html
@@ -40,6 +40,7 @@
 <li><a href="org/apache/kudu/client/CreateTableOptions.html" title="class in org.apache.kudu.client">CreateTableOptions</a></li>
 <li><a href="org/apache/kudu/mapreduce/tools/CsvParser.html" title="class in org.apache.kudu.mapreduce.tools">CsvParser</a></li>
 <li><a href="org/apache/kudu/client/Delete.html" title="class in org.apache.kudu.client">Delete</a></li>
+<li><a href="org/apache/kudu/client/DeleteIgnore.html" title="class in org.apache.kudu.client">DeleteIgnore</a></li>
 <li><a href="org/apache/kudu/client/DeleteTableResponse.html" title="class in org.apache.kudu.client">DeleteTableResponse</a></li>
 <li><a href="org/apache/kudu/mapreduce/tools/ExportCsv.html" title="class in org.apache.kudu.mapreduce.tools">ExportCsv</a></li>
 <li><a href="org/apache/kudu/client/ExternalConsistencyMode.html" title="enum in org.apache.kudu.client">ExternalConsistencyMode</a></li>
@@ -71,6 +72,7 @@
 <li><a href="org/apache/kudu/mapreduce/KuduTableOutputFormat.html" title="class in org.apache.kudu.mapreduce">KuduTableOutputFormat</a></li>
 <li><a href="org/apache/kudu/client/KuduTableStatistics.html" title="class in org.apache.kudu.client">KuduTableStatistics</a></li>
 <li><a href="org/apache/kudu/test/KuduTestHarness.html" title="class in org.apache.kudu.test">KuduTestHarness</a></li>
+<li><a href="org/apache/kudu/client/KuduTransaction.html" title="class in org.apache.kudu.client">KuduTransaction</a></li>
 <li><a href="org/apache/kudu/client/ListTablesResponse.html" title="class in org.apache.kudu.client">ListTablesResponse</a></li>
 <li><a href="org/apache/kudu/client/ListTabletServersResponse.html" title="class in org.apache.kudu.client">ListTabletServersResponse</a></li>
 <li><a href="org/apache/kudu/client/LocatedTablet.html" title="class in org.apache.kudu.client">LocatedTablet</a></li>
@@ -97,6 +99,7 @@
 <li><a href="org/apache/kudu/Type.html" title="enum in org.apache.kudu">Type</a></li>
 <li><a href="org/apache/kudu/Type.html" title="enum in org.apache.kudu">Type</a></li>
 <li><a href="org/apache/kudu/client/Update.html" title="class in org.apache.kudu.client">Update</a></li>
+<li><a href="org/apache/kudu/client/UpdateIgnore.html" title="class in org.apache.kudu.client">UpdateIgnore</a></li>
 <li><a href="org/apache/kudu/client/Upsert.html" title="class in org.apache.kudu.client">Upsert</a></li>
 </ul>
 </div>
diff --git a/apidocs/constant-values.html b/apidocs/constant-values.html
index 0b1dd82..f430079 100644
--- a/apidocs/constant-values.html
+++ b/apidocs/constant-values.html
@@ -103,13 +103,20 @@
 <td class="colLast"><code>30000L</code></td>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><a name="org.apache.kudu.client.AsyncKuduClient.INVALID_TXN_ID">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;long</code></td>
+<td><code><a href="org/apache/kudu/client/AsyncKuduClient.html#INVALID_TXN_ID">INVALID_TXN_ID</a></code></td>
+<td class="colLast"><code>-1L</code></td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><a name="org.apache.kudu.client.AsyncKuduClient.NO_TIMESTAMP">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;long</code></td>
 <td><code><a href="org/apache/kudu/client/AsyncKuduClient.html#NO_TIMESTAMP">NO_TIMESTAMP</a></code></td>
 <td class="colLast"><code>-1L</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a name="org.apache.kudu.client.AsyncKuduClient.SLEEP_TIME">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
diff --git a/apidocs/deprecated-list.html b/apidocs/deprecated-list.html
index 5d93ea1..8f5919e 100644
--- a/apidocs/deprecated-list.html
+++ b/apidocs/deprecated-list.html
@@ -127,23 +127,23 @@
 </td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><a href="org/apache/kudu/client/KuduClient.KuduClientBuilder.html#bossCount-int-">org.apache.kudu.client.KuduClient.KuduClientBuilder.bossCount(int)</a>
-<div class="block"><span class="deprecationComment">the bossExecutor is no longer used and will have no effect if provided</span></div>
-</td>
-</tr>
-<tr class="rowColor">
 <td class="colOne"><a href="org/apache/kudu/client/AsyncKuduClient.AsyncKuduClientBuilder.html#bossCount-int-">org.apache.kudu.client.AsyncKuduClient.AsyncKuduClientBuilder.bossCount(int)</a>
 <div class="block"><span class="deprecationComment">the bossExecutor is no longer used and will have no effect if provided</span></div>
 </td>
 </tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/apache/kudu/client/KuduClient.KuduClientBuilder.html#bossCount-int-">org.apache.kudu.client.KuduClient.KuduClientBuilder.bossCount(int)</a>
+<div class="block"><span class="deprecationComment">the bossExecutor is no longer used and will have no effect if provided</span></div>
+</td>
+</tr>
 <tr class="altColor">
-<td class="colOne"><a href="org/apache/kudu/client/KuduClient.KuduClientBuilder.html#defaultSocketReadTimeoutMs-long-">org.apache.kudu.client.KuduClient.KuduClientBuilder.defaultSocketReadTimeoutMs(long)</a>
-<div class="block"><span class="deprecationComment">socket read timeouts are no longer used</span></div>
+<td class="colOne"><a href="org/apache/kudu/client/AsyncKuduClient.AsyncKuduClientBuilder.html#defaultSocketReadTimeoutMs-long-">org.apache.kudu.client.AsyncKuduClient.AsyncKuduClientBuilder.defaultSocketReadTimeoutMs(long)</a>
+<div class="block"><span class="deprecationComment">this option no longer has any effect</span></div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><a href="org/apache/kudu/client/AsyncKuduClient.AsyncKuduClientBuilder.html#defaultSocketReadTimeoutMs-long-">org.apache.kudu.client.AsyncKuduClient.AsyncKuduClientBuilder.defaultSocketReadTimeoutMs(long)</a>
-<div class="block"><span class="deprecationComment">this option no longer has any effect</span></div>
+<td class="colOne"><a href="org/apache/kudu/client/KuduClient.KuduClientBuilder.html#defaultSocketReadTimeoutMs-long-">org.apache.kudu.client.KuduClient.KuduClientBuilder.defaultSocketReadTimeoutMs(long)</a>
+<div class="block"><span class="deprecationComment">socket read timeouts are no longer used</span></div>
 </td>
 </tr>
 <tr class="altColor">
@@ -213,20 +213,20 @@
 </td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><a href="org/apache/kudu/client/KuduClient.KuduClientBuilder.html#nioExecutors-java.util.concurrent.Executor-java.util.concurrent.Executor-">org.apache.kudu.client.KuduClient.KuduClientBuilder.nioExecutors(Executor, Executor)</a>
-<div class="block"><span class="deprecationComment">the bossExecutor is no longer used and will have no effect if provided</span></div>
-</td>
-</tr>
-<tr class="rowColor">
 <td class="colOne"><a href="org/apache/kudu/client/AsyncKuduClient.AsyncKuduClientBuilder.html#nioExecutors-java.util.concurrent.Executor-java.util.concurrent.Executor-">org.apache.kudu.client.AsyncKuduClient.AsyncKuduClientBuilder.nioExecutors(Executor, Executor)</a>
 <div class="block"><span class="deprecationComment">the bossExecutor is no longer used and will have no effect if provided</span></div>
 </td>
 </tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/apache/kudu/client/KuduClient.KuduClientBuilder.html#nioExecutors-java.util.concurrent.Executor-java.util.concurrent.Executor-">org.apache.kudu.client.KuduClient.KuduClientBuilder.nioExecutors(Executor, Executor)</a>
+<div class="block"><span class="deprecationComment">the bossExecutor is no longer used and will have no effect if provided</span></div>
+</td>
+</tr>
 <tr class="altColor">
-<td class="colOne"><a href="org/apache/kudu/client/KuduSession.html#setMutationBufferLowWatermark-float-">org.apache.kudu.client.KuduSession.setMutationBufferLowWatermark(float)</a></td>
+<td class="colOne"><a href="org/apache/kudu/client/AsyncKuduSession.html#setMutationBufferLowWatermark-float-">org.apache.kudu.client.AsyncKuduSession.setMutationBufferLowWatermark(float)</a></td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><a href="org/apache/kudu/client/AsyncKuduSession.html#setMutationBufferLowWatermark-float-">org.apache.kudu.client.AsyncKuduSession.setMutationBufferLowWatermark(float)</a></td>
+<td class="colOne"><a href="org/apache/kudu/client/KuduSession.html#setMutationBufferLowWatermark-float-">org.apache.kudu.client.KuduSession.setMutationBufferLowWatermark(float)</a></td>
 </tr>
 <tr class="altColor">
 <td class="colOne"><a href="org/apache/kudu/client/SessionConfiguration.html#setMutationBufferLowWatermark-float-">org.apache.kudu.client.SessionConfiguration.setMutationBufferLowWatermark(float)</a>
diff --git a/apidocs/index-all.html b/apidocs/index-all.html
index 07ab09b..84b505b 100644
--- a/apidocs/index-all.html
+++ b/apidocs/index-all.html
@@ -548,6 +548,11 @@
 <dd>
 <div class="block">Blocking call that flushes the buffers (see <a href="org/apache/kudu/client/KuduSession.html#flush--"><code>KuduSession.flush()</code></a>) and closes the sessions.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/kudu/client/KuduTransaction.html#close--">close()</a></span> - Method in class org.apache.kudu.client.<a href="org/apache/kudu/client/KuduTransaction.html" title="class in org.apache.kudu.client">KuduTransaction</a></dt>
+<dd>
+<div class="block">Stop keepalive heartbeating, if any was in progress for this transaction
+ handle.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/kudu/client/OperationResponse.html#collectErrors-java.util.List-">collectErrors(List&lt;OperationResponse&gt;)</a></span> - Static method in class org.apache.kudu.client.<a href="org/apache/kudu/client/OperationResponse.html" title="class in org.apache.kudu.client">OperationResponse</a></dt>
 <dd>
 <div class="block">Utility method that collects all the row errors from the given list of responses.</div>
@@ -686,6 +691,10 @@
 <dd>
 <div class="block">Set the comment for this column.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/kudu/client/KuduTransaction.html#commit-boolean-">commit(boolean)</a></span> - Method in class org.apache.kudu.client.<a href="org/apache/kudu/client/KuduTransaction.html" title="class in org.apache.kudu.client">KuduTransaction</a></dt>
+<dd>
+<div class="block">Commit the multi-row distributed transaction represented by this handle.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/kudu/mapreduce/KuduTableOutputCommitter.html#commitTask-org.apache.hadoop.mapreduce.TaskAttemptContext-">commitTask(TaskAttemptContext)</a></span> - Method in class org.apache.kudu.mapreduce.<a href="org/apache/kudu/mapreduce/KuduTableOutputCommitter.html" title="class in org.apache.kudu.mapreduce">KuduTableOutputCommitter</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/kudu/client/KuduScanToken.html#compareTo-org.apache.kudu.client.KuduScanToken-">compareTo(KuduScanToken)</a></span> - Method in class org.apache.kudu.client.<a href="org/apache/kudu/client/KuduScanToken.html" title="class in org.apache.kudu.client">KuduScanToken</a></dt>
@@ -811,6 +820,10 @@
 <dd>
 <div class="block">Class of Operation for whole row removals.</div>
 </dd>
+<dt><a href="org/apache/kudu/client/DeleteIgnore.html" title="class in org.apache.kudu.client"><span class="typeNameLink">DeleteIgnore</span></a> - Class in <a href="org/apache/kudu/client/package-summary.html">org.apache.kudu.client</a></dt>
+<dd>
+<div class="block">Class of Operation for whole row removals ignoring missing rows.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/kudu/client/AsyncKuduClient.html#deleteTable-java.lang.String-">deleteTable(String)</a></span> - Method in class org.apache.kudu.client.<a href="org/apache/kudu/client/AsyncKuduClient.html" title="class in org.apache.kudu.client">AsyncKuduClient</a></dt>
 <dd>
 <div class="block">Delete a table on the cluster with the specified name.</div>
@@ -825,10 +838,18 @@
 <dd>
 <div class="block">Serializes a list of <code>KuduPredicate</code> into a byte array.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/kudu/client/KuduTransaction.html#deserialize-byte:A-org.apache.kudu.client.AsyncKuduClient-">deserialize(byte[], AsyncKuduClient)</a></span> - Static method in class org.apache.kudu.client.<a href="org/apache/kudu/client/KuduTransaction.html" title="class in org.apache.kudu.client">KuduTransaction</a></dt>
+<dd>
+<div class="block">Re-create KuduTransaction object given its serialized representation.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/kudu/client/KuduScanToken.html#deserializeIntoScanner-byte:A-org.apache.kudu.client.KuduClient-">deserializeIntoScanner(byte[], KuduClient)</a></span> - Static method in class org.apache.kudu.client.<a href="org/apache/kudu/client/KuduScanToken.html" title="class in org.apache.kudu.client">KuduScanToken</a></dt>
 <dd>
 <div class="block">Deserializes a <code>KuduScanToken</code> into a <a href="org/apache/kudu/client/KuduScanner.html" title="class in org.apache.kudu.client"><code>KuduScanner</code></a>.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/kudu/client/KuduScanToken.html#deserializeIntoScannerBuilder-byte:A-org.apache.kudu.client.KuduClient-">deserializeIntoScannerBuilder(byte[], KuduClient)</a></span> - Static method in class org.apache.kudu.client.<a href="org/apache/kudu/client/KuduScanToken.html" title="class in org.apache.kudu.client">KuduScanToken</a></dt>
+<dd>
+<div class="block">Deserializes a <code>KuduScanToken</code> into a <a href="org/apache/kudu/client/KuduScanner.KuduScannerBuilder.html" title="class in org.apache.kudu.client"><code>KuduScanner.KuduScannerBuilder</code></a>.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/kudu/ColumnSchema.ColumnSchemaBuilder.html#desiredBlockSize-int-">desiredBlockSize(int)</a></span> - Method in class org.apache.kudu.<a href="org/apache/kudu/ColumnSchema.ColumnSchemaBuilder.html" title="class in org.apache.kudu">ColumnSchema.ColumnSchemaBuilder</a></dt>
 <dd>
 <div class="block">Set the desired block size for this column.</div>
@@ -1086,6 +1107,14 @@
 <dd>
 <div class="block">Get the statistic count of the whole client.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/kudu/client/AsyncKuduClient.html#getClusterId--">getClusterId()</a></span> - Method in class org.apache.kudu.client.<a href="org/apache/kudu/client/AsyncKuduClient.html" title="class in org.apache.kudu.client">AsyncKuduClient</a></dt>
+<dd>
+<div class="block">Returns the ID of the cluster that this client is connected to.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/kudu/client/KuduClient.html#getClusterId--">getClusterId()</a></span> - Method in class org.apache.kudu.client.<a href="org/apache/kudu/client/KuduClient.html" title="class in org.apache.kudu.client">KuduClient</a></dt>
+<dd>
+<div class="block">Returns the ID of the cluster that this client is connected to.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/kudu/test/KuduTestHarness.html#getClusterRoot--">getClusterRoot()</a></span> - Method in class org.apache.kudu.test.<a href="org/apache/kudu/test/KuduTestHarness.html" title="class in org.apache.kudu.test">KuduTestHarness</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/kudu/client/ColumnRangePredicate.html#getColumn--">getColumn()</a></span> - Method in class org.apache.kudu.client.<a href="org/apache/kudu/client/ColumnRangePredicate.html" title="class in org.apache.kudu.client">ColumnRangePredicate</a></dt>
@@ -2192,6 +2221,8 @@
 <dd>
 <div class="block">Creates a <a href="org/apache/kudu/client/KuduScanner.html" title="class in org.apache.kudu.client"><code>KuduScanner</code></a> from this scan token.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/kudu/client/AsyncKuduClient.html#INVALID_TXN_ID">INVALID_TXN_ID</a></span> - Static variable in class org.apache.kudu.client.<a href="org/apache/kudu/client/AsyncKuduClient.html" title="class in org.apache.kudu.client">AsyncKuduClient</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/kudu/client/Status.html#InvalidArgument-java.lang.String-">InvalidArgument(String)</a></span> - Static method in class org.apache.kudu.client.<a href="org/apache/kudu/client/Status.html" title="class in org.apache.kudu.client">Status</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/kudu/client/Status.html#InvalidArgument-java.lang.String-int-">InvalidArgument(String, int)</a></span> - Static method in class org.apache.kudu.client.<a href="org/apache/kudu/client/Status.html" title="class in org.apache.kudu.client">Status</a></dt>
@@ -2230,6 +2261,10 @@
 <dd>
 <div class="block">Returns true if this session has already been closed.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/kudu/client/KuduTransaction.html#isCommitComplete--">isCommitComplete()</a></span> - Method in class org.apache.kudu.client.<a href="org/apache/kudu/client/KuduTransaction.html" title="class in org.apache.kudu.client">KuduTransaction</a></dt>
+<dd>
+<div class="block">Check whether the commit phase for a transaction is complete.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/kudu/client/Status.html#isConfigurationError--">isConfigurationError()</a></span> - Method in class org.apache.kudu.client.<a href="org/apache/kudu/client/Status.html" title="class in org.apache.kudu.client">Status</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/kudu/client/Status.html#isCorruption--">isCorruption()</a></span> - Method in class org.apache.kudu.client.<a href="org/apache/kudu/client/Status.html" title="class in org.apache.kudu.client">Status</a></dt>
@@ -2540,6 +2575,10 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/kudu/test/KuduTestHarness.html#KuduTestHarness--">KuduTestHarness()</a></span> - Constructor for class org.apache.kudu.test.<a href="org/apache/kudu/test/KuduTestHarness.html" title="class in org.apache.kudu.test">KuduTestHarness</a></dt>
 <dd>&nbsp;</dd>
+<dt><a href="org/apache/kudu/client/KuduTransaction.html" title="class in org.apache.kudu.client"><span class="typeNameLink">KuduTransaction</span></a> - Class in <a href="org/apache/kudu/client/package-summary.html">org.apache.kudu.client</a></dt>
+<dd>
+<div class="block">A handle for a multi-row transaction in Kudu.</div>
+</dd>
 </dl>
 <a name="I:L">
 <!--   -->
@@ -2636,6 +2675,10 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/kudu/client/Status.html#NetworkError-java.lang.String-int-">NetworkError(String, int)</a></span> - Static method in class org.apache.kudu.client.<a href="org/apache/kudu/client/Status.html" title="class in org.apache.kudu.client">Status</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/kudu/client/KuduTransaction.html#newAsyncKuduSession--">newAsyncKuduSession()</a></span> - Method in class org.apache.kudu.client.<a href="org/apache/kudu/client/KuduTransaction.html" title="class in org.apache.kudu.client">KuduTransaction</a></dt>
+<dd>
+<div class="block">Create a new <a href="org/apache/kudu/client/AsyncKuduSession.html" title="class in org.apache.kudu.client"><code>AsyncKuduSession</code></a> based on this transaction.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/kudu/client/KuduPredicate.html#newComparisonPredicate-org.apache.kudu.ColumnSchema-org.apache.kudu.client.KuduPredicate.ComparisonOp-boolean-">newComparisonPredicate(ColumnSchema, KuduPredicate.ComparisonOp, boolean)</a></span> - Static method in class org.apache.kudu.client.<a href="org/apache/kudu/client/KuduPredicate.html" title="class in org.apache.kudu.client">KuduPredicate</a></dt>
 <dd>
 <div class="block">Creates a new <code>KuduPredicate</code> on a boolean column.</div>
@@ -2680,6 +2723,10 @@
 <dd>
 <div class="block">Get a new delete configured with this table's schema.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/kudu/client/KuduTable.html#newDeleteIgnore--">newDeleteIgnore()</a></span> - Method in class org.apache.kudu.client.<a href="org/apache/kudu/client/KuduTable.html" title="class in org.apache.kudu.client">KuduTable</a></dt>
+<dd>
+<div class="block">Get a new delete ignore configured with this table's schema.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/kudu/client/KuduPredicate.html#newInListPredicate-org.apache.kudu.ColumnSchema-java.util.List-">newInListPredicate(ColumnSchema, List&lt;T&gt;)</a></span> - Static method in class org.apache.kudu.client.<a href="org/apache/kudu/client/KuduPredicate.html" title="class in org.apache.kudu.client">KuduPredicate</a></dt>
 <dd>
 <div class="block">Creates a new IN list predicate.</div>
@@ -2700,6 +2747,10 @@
 <dd>
 <div class="block">Creates a new <code>IS NULL</code> predicate.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/kudu/client/KuduTransaction.html#newKuduSession--">newKuduSession()</a></span> - Method in class org.apache.kudu.client.<a href="org/apache/kudu/client/KuduTransaction.html" title="class in org.apache.kudu.client">KuduTransaction</a></dt>
+<dd>
+<div class="block">Create a new <a href="org/apache/kudu/client/KuduSession.html" title="class in org.apache.kudu.client"><code>KuduSession</code></a> based on this transaction.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/kudu/Schema.html#newPartialRow--">newPartialRow()</a></span> - Method in class org.apache.kudu.<a href="org/apache/kudu/Schema.html" title="class in org.apache.kudu">Schema</a></dt>
 <dd>
 <div class="block">Creates a new partial row for the schema.</div>
@@ -2728,10 +2779,18 @@
 <dd>
 <div class="block">Create a new session for interacting with the cluster.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/kudu/client/KuduClient.html#newTransaction--">newTransaction()</a></span> - Method in class org.apache.kudu.client.<a href="org/apache/kudu/client/KuduClient.html" title="class in org.apache.kudu.client">KuduClient</a></dt>
+<dd>
+<div class="block">Start a new multi-row distributed transaction.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/kudu/client/KuduTable.html#newUpdate--">newUpdate()</a></span> - Method in class org.apache.kudu.client.<a href="org/apache/kudu/client/KuduTable.html" title="class in org.apache.kudu.client">KuduTable</a></dt>
 <dd>
 <div class="block">Get a new update configured with this table's schema.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/kudu/client/KuduTable.html#newUpdateIgnore--">newUpdateIgnore()</a></span> - Method in class org.apache.kudu.client.<a href="org/apache/kudu/client/KuduTable.html" title="class in org.apache.kudu.client">KuduTable</a></dt>
+<dd>
+<div class="block">Get a new update ignore configured with this table's schema.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/kudu/client/KuduTable.html#newUpsert--">newUpsert()</a></span> - Method in class org.apache.kudu.client.<a href="org/apache/kudu/client/KuduTable.html" title="class in org.apache.kudu.client">KuduTable</a></dt>
 <dd>
 <div class="block">Get a new upsert configured with this table's schema.</div>
@@ -2972,6 +3031,10 @@
 <dd>
 <div class="block">Kills a tablet server that serves the given tablet's leader and restarts it.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/kudu/client/KuduTransaction.html#rollback--">rollback()</a></span> - Method in class org.apache.kudu.client.<a href="org/apache/kudu/client/KuduTransaction.html" title="class in org.apache.kudu.client">KuduTransaction</a></dt>
+<dd>
+<div class="block">Rollback the multi-row distributed transaction represented by this object.</div>
+</dd>
 <dt><a href="org/apache/kudu/client/RowError.html" title="class in org.apache.kudu.client"><span class="typeNameLink">RowError</span></a> - Class in <a href="org/apache/kudu/client/package-summary.html">org.apache.kudu.client</a></dt>
 <dd>
 <div class="block">Wrapper class for a single row error.</div>
@@ -3062,6 +3125,15 @@
 <dd>
 <div class="block">Serializes this <code>KuduScanToken</code> into a byte array.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/kudu/client/KuduTransaction.html#serialize-org.apache.kudu.client.KuduTransaction.SerializationOptions-">serialize(KuduTransaction.SerializationOptions)</a></span> - Method in class org.apache.kudu.client.<a href="org/apache/kudu/client/KuduTransaction.html" title="class in org.apache.kudu.client">KuduTransaction</a></dt>
+<dd>
+<div class="block">Export information on the underlying transaction in a serialized form.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/kudu/client/KuduTransaction.html#serialize--">serialize()</a></span> - Method in class org.apache.kudu.client.<a href="org/apache/kudu/client/KuduTransaction.html" title="class in org.apache.kudu.client">KuduTransaction</a></dt>
+<dd>
+<div class="block">A shortcut for the <a href="org/apache/kudu/client/KuduTransaction.html#serialize-org.apache.kudu.client.KuduTransaction.SerializationOptions-"><code>KuduTransaction.serialize(SerializationOptions)</code></a>
+ method invoked with default-constructed <code>KuduTransaction.SerializationOptions</code>.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/kudu/client/Status.html#ServiceUnavailable-java.lang.String-">ServiceUnavailable(String)</a></span> - Static method in class org.apache.kudu.client.<a href="org/apache/kudu/client/Status.html" title="class in org.apache.kudu.client">Status</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/kudu/client/Status.html#ServiceUnavailable-java.lang.String-int-">ServiceUnavailable(String, int)</a></span> - Static method in class org.apache.kudu.client.<a href="org/apache/kudu/client/Status.html" title="class in org.apache.kudu.client">Status</a></dt>
@@ -3402,6 +3474,14 @@
 <dd>
 <div class="block">Formats the serialized token for debug printing.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/kudu/client/AsyncKuduClient.html#supportsIgnoreOperations--">supportsIgnoreOperations()</a></span> - Method in class org.apache.kudu.client.<a href="org/apache/kudu/client/AsyncKuduClient.html" title="class in org.apache.kudu.client">AsyncKuduClient</a></dt>
+<dd>
+<div class="block">Sends a request to the master to check if the cluster supports ignore operations.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/kudu/client/KuduClient.html#supportsIgnoreOperations--">supportsIgnoreOperations()</a></span> - Method in class org.apache.kudu.client.<a href="org/apache/kudu/client/KuduClient.html" title="class in org.apache.kudu.client">KuduClient</a></dt>
+<dd>
+<div class="block">Sends a request to the master to check if the cluster supports ignore operations.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/kudu/client/AsyncKuduClient.html#syncClient--">syncClient()</a></span> - Method in class org.apache.kudu.client.<a href="org/apache/kudu/client/AsyncKuduClient.html" title="class in org.apache.kudu.client">AsyncKuduClient</a></dt>
 <dd>
 <div class="block">Returns a synchronous <a href="org/apache/kudu/client/KuduClient.html" title="class in org.apache.kudu.client"><code>KuduClient</code></a> which wraps this asynchronous client.</div>
@@ -3515,6 +3595,10 @@
 <dd>
 <div class="block">Operation to update columns on an existing row.</div>
 </dd>
+<dt><a href="org/apache/kudu/client/UpdateIgnore.html" title="class in org.apache.kudu.client"><span class="typeNameLink">UpdateIgnore</span></a> - Class in <a href="org/apache/kudu/client/package-summary.html">org.apache.kudu.client</a></dt>
+<dd>
+<div class="block">Represents a single row update ignoring missing rows.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/kudu/client/AsyncKuduClient.html#updateLastPropagatedTimestamp-long-">updateLastPropagatedTimestamp(long)</a></span> - Method in class org.apache.kudu.client.<a href="org/apache/kudu/client/AsyncKuduClient.html" title="class in org.apache.kudu.client">AsyncKuduClient</a></dt>
 <dd>
 <div class="block">Updates the last timestamp received from a server.</div>
diff --git a/apidocs/org/apache/kudu/client/AsyncKuduClient.html b/apidocs/org/apache/kudu/client/AsyncKuduClient.html
index 28aa746..26e968b 100644
--- a/apidocs/org/apache/kudu/client/AsyncKuduClient.html
+++ b/apidocs/org/apache/kudu/client/AsyncKuduClient.html
@@ -17,7 +17,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":42,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":42,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -207,20 +207,46 @@
  credentials stored in the same Subject instance as was provided when the
  client was instantiated.
  <p>
- In the context of the Hadoop ecosystem, the <code>UserGroupInformation</code>
- class provides utility methods to login from a keytab and then run code as
- the resulting <a href="https://docs.oracle.com/javase/8/docs/api/javax/security/auth/Subject.html?is-external=true" title="class or interface in javax.security.auth"><code>Subject</code></a>: <pre><code>
-   UserGroupInformation.loginUserFromKeytab("my-app", "/path/to/app.keytab");
+ The easiest way to authenticate using a keytab is by creating a JAAS config
+ file such as this: <pre>
+ ExampleLoginContextName {
+   com.sun.security.auth.module.Krb5LoginModule required
+   useKeyTab = true
+   keyTab = "/path/to/app.keytab"
+   principal = "appuser";
+ };
+ </pre>
+ This can then be passed to the application by adding <code>-Djava.security.auth.login.config=/path/to/jaas.conf</code> to the command when
+ starting it.
+ This authentication method needs to be set in the code as well by wrapping
+ the code interacting with Kudu with a <a href="https://docs.oracle.com/javase/8/docs/api/javax/security/auth/Subject.html?is-external=true#doAs-javax.security.auth.Subject-java.security.PrivilegedAction-" title="class or interface in javax.security.auth"><code>Subject.doAs(javax.security.auth.Subject, java.security.PrivilegedAction&lt;T&gt;)</code></a> after creating a login context using the
+ JAAS config, logging in, and passing the <a href="https://docs.oracle.com/javase/8/docs/api/javax/security/auth/Subject.html?is-external=true" title="class or interface in javax.security.auth"><code>Subject</code></a>
+ to the <i>doAs</i>:
+ <pre>
+ LoginContext login = new LoginContext("ExampleLoginContextName");
+ login.login();
+ KuduClient c = Subject.doAs(login.getSubject(),
+                             (PrivilegedAction&lt;KuduClient&gt;) () -> {
+   return myClientBuilder.build();
+ });
+ </pre>
+ In this case it's necessary to periodically re-login as needed and run doAs
+ using the new subject.
+ <p>
+ In the context of the Hadoop ecosystem, the <code>org.apache.hadoop.security.UserGroupInformation</code> class provides utility
+ methods to login from a keytab and then run code as the resulting <a href="https://docs.oracle.com/javase/8/docs/api/javax/security/auth/Subject.html?is-external=true" title="class or interface in javax.security.auth"><code>Subject</code></a>: <pre>
+   UserGroupInformation.loginUserFromKeytab("appuser", "/path/to/app.keytab");
    KuduClient c = UserGroupInformation.getLoginUser().doAs(
-     new PrivilegedExceptionAction&lt;KuduClient&gt;() {
-       &amp;#64;Override
+     new PrivilegedExceptionAction<KuduClient>() {
+       &#64;Override
        public KuduClient run() throws Exception {
          return myClientBuilder.build();
        }
      }
    );
- </code></pre> The <code>UserGroupInformation</code> class will also automatically
- start a thread to periodically re-login from the keytab.
+ </pre> The <code>UserGroupInformation</code> class will also automatically
+ start a thread to periodically re-login from the keytab. It's not necessary
+ to pass a JAAS config.
 
  <h3>Debugging Kudu's usage of Kerberos credentials</h3>
 
@@ -343,14 +369,18 @@
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#EMPTY_ARRAY">EMPTY_ARRAY</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><code>static long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#INVALID_TXN_ID">INVALID_TXN_ID</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><code>static org.slf4j.Logger</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#LOG">LOG</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#NO_TIMESTAMP">NO_TIMESTAMP</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#SLEEP_TIME">SLEEP_TIME</a></span></code>&nbsp;</td>
 </tr>
@@ -405,18 +435,24 @@
 </td>
 </tr>
 <tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#getClusterId--">getClusterId</a></span>()</code>
+<div class="block">Returns the ID of the cluster that this client is connected to.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#getDefaultAdminOperationTimeoutMs--">getDefaultAdminOperationTimeoutMs</a></span>()</code>
 <div class="block">Get the timeout used for admin operations.</div>
 </td>
 </tr>
-<tr id="i6" class="altColor">
+<tr id="i7" class="rowColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#getDefaultOperationTimeoutMs--">getDefaultOperationTimeoutMs</a></span>()</code>
 <div class="block">Get the timeout used for operations on sessions and scanners.</div>
 </td>
 </tr>
-<tr id="i7" class="rowColor">
+<tr id="i8" class="altColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#getDefaultSocketReadTimeoutMs--">getDefaultSocketReadTimeoutMs</a></span>()</code>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
@@ -424,119 +460,119 @@
 </div>
 </td>
 </tr>
-<tr id="i8" class="altColor">
+<tr id="i9" class="rowColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#getLastPropagatedTimestamp--">getLastPropagatedTimestamp</a></span>()</code>
 <div class="block">Returns the last timestamp received from a server.</div>
 </td>
 </tr>
-<tr id="i9" class="rowColor">
+<tr id="i10" class="altColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#getLocationString--">getLocationString</a></span>()</code>
 <div class="block">Returns a string representation of this client's location.</div>
 </td>
 </tr>
-<tr id="i10" class="altColor">
+<tr id="i11" class="rowColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#getMasterAddressesAsString--">getMasterAddressesAsString</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i11" class="rowColor">
+<tr id="i12" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/kudu/client/Statistics.html" title="class in org.apache.kudu.client">Statistics</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#getStatistics--">getStatistics</a></span>()</code>
 <div class="block">Get the statistics object of this client.</div>
 </td>
 </tr>
-<tr id="i12" class="altColor">
+<tr id="i13" class="rowColor">
 <td class="colFirst"><code>com.stumbleupon.async.Deferred&lt;<a href="../../../../org/apache/kudu/client/ListTablesResponse.html" title="class in org.apache.kudu.client">ListTablesResponse</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#getTablesList--">getTablesList</a></span>()</code>
 <div class="block">Get the list of all the tables.</div>
 </td>
 </tr>
-<tr id="i13" class="rowColor">
+<tr id="i14" class="altColor">
 <td class="colFirst"><code>com.stumbleupon.async.Deferred&lt;<a href="../../../../org/apache/kudu/client/ListTablesResponse.html" title="class in org.apache.kudu.client">ListTablesResponse</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#getTablesList-java.lang.String-">getTablesList</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;nameFilter)</code>
 <div class="block">Get a list of table names.</div>
 </td>
 </tr>
-<tr id="i14" class="altColor">
+<tr id="i15" class="rowColor">
 <td class="colFirst"><code>com.stumbleupon.async.Deferred&lt;<a href="../../../../org/apache/kudu/client/KuduTableStatistics.html" title="class in org.apache.kudu.client">KuduTableStatistics</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#getTableStatistics-java.lang.String-">getTableStatistics</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
 <div class="block">Get table's statistics from master.</div>
 </td>
 </tr>
-<tr id="i15" class="rowColor">
+<tr id="i16" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#hasLastPropagatedTimestamp--">hasLastPropagatedTimestamp</a></span>()</code>
 <div class="block">Checks if the client received any timestamps from a server.</div>
 </td>
 </tr>
-<tr id="i16" class="altColor">
+<tr id="i17" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#importAuthenticationCredentials-byte:A-">importAuthenticationCredentials</a></span>(byte[]&nbsp;authnData)</code>
 <div class="block">Import data allowing this client to authenticate to the cluster.</div>
 </td>
 </tr>
-<tr id="i17" class="rowColor">
+<tr id="i18" class="altColor">
 <td class="colFirst"><code>com.stumbleupon.async.Deferred&lt;<a href="../../../../org/apache/kudu/client/IsAlterTableDoneResponse.html" title="class in org.apache.kudu.client">IsAlterTableDoneResponse</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#isAlterTableDone-java.lang.String-">isAlterTableDone</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
 <div class="block">Check whether a previously issued alterTable() is done.</div>
 </td>
 </tr>
-<tr id="i18" class="altColor">
+<tr id="i19" class="rowColor">
 <td class="colFirst"><code>com.stumbleupon.async.Deferred&lt;<a href="../../../../org/apache/kudu/client/IsCreateTableDoneResponse.html" title="class in org.apache.kudu.client">IsCreateTableDoneResponse</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#isCreateTableDone-java.lang.String-">isCreateTableDone</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
 <div class="block">Check whether a previously issued createTable() is done.</div>
 </td>
 </tr>
-<tr id="i19" class="rowColor">
+<tr id="i20" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#isStatisticsEnabled--">isStatisticsEnabled</a></span>()</code>
 <div class="block">Check if statistics collection is enabled for this client.</div>
 </td>
 </tr>
-<tr id="i20" class="altColor">
+<tr id="i21" class="rowColor">
 <td class="colFirst"><code>com.stumbleupon.async.Deferred&lt;<a href="../../../../org/apache/kudu/client/ListTabletServersResponse.html" title="class in org.apache.kudu.client">ListTabletServersResponse</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#listTabletServers--">listTabletServers</a></span>()</code>
 <div class="block">Get the list of running tablet servers.</div>
 </td>
 </tr>
-<tr id="i21" class="rowColor">
+<tr id="i22" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/kudu/client/AsyncKuduScanner.AsyncKuduScannerBuilder.html" title="class in org.apache.kudu.client">AsyncKuduScanner.AsyncKuduScannerBuilder</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#newScannerBuilder-org.apache.kudu.client.KuduTable-">newScannerBuilder</a></span>(<a href="../../../../org/apache/kudu/client/KuduTable.html" title="class in org.apache.kudu.client">KuduTable</a>&nbsp;table)</code>
 <div class="block">Creates a new <a href="../../../../org/apache/kudu/client/AsyncKuduScanner.AsyncKuduScannerBuilder.html" title="class in org.apache.kudu.client"><code>AsyncKuduScanner.AsyncKuduScannerBuilder</code></a> for a particular table.</div>
 </td>
 </tr>
-<tr id="i22" class="altColor">
+<tr id="i23" class="rowColor">
 <td class="colFirst"><code><a href="../../../../org/apache/kudu/client/AsyncKuduSession.html" title="class in org.apache.kudu.client">AsyncKuduSession</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#newSession--">newSession</a></span>()</code>
 <div class="block">Create a new session for interacting with the cluster.</div>
 </td>
 </tr>
-<tr id="i23" class="rowColor">
+<tr id="i24" class="altColor">
 <td class="colFirst"><code>com.stumbleupon.async.Deferred&lt;<a href="../../../../org/apache/kudu/client/KuduTable.html" title="class in org.apache.kudu.client">KuduTable</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#openTable-java.lang.String-">openTable</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
 <div class="block">Open the table with the given name.</div>
 </td>
 </tr>
-<tr id="i24" class="altColor">
+<tr id="i25" class="rowColor">
 <td class="colFirst"><code>com.stumbleupon.async.Deferred&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#shutdown--">shutdown</a></span>()</code>
 <div class="block">Performs a graceful shutdown of this instance.</div>
 </td>
 </tr>
-<tr id="i25" class="rowColor">
+<tr id="i26" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/kudu/client/KuduClient.html" title="class in org.apache.kudu.client">KuduClient</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#syncClient--">syncClient</a></span>()</code>
 <div class="block">Returns a synchronous <a href="../../../../org/apache/kudu/client/KuduClient.html" title="class in org.apache.kudu.client"><code>KuduClient</code></a> which wraps this asynchronous client.</div>
 </td>
 </tr>
-<tr id="i26" class="altColor">
+<tr id="i27" class="rowColor">
 <td class="colFirst"><code>com.stumbleupon.async.Deferred&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#tableExists-java.lang.String-">tableExists</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
 <div class="block">Test if a table exists.</div>
 </td>
 </tr>
-<tr id="i27" class="rowColor">
+<tr id="i28" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/AsyncKuduClient.html#updateLastPropagatedTimestamp-long-">updateLastPropagatedTimestamp</a></span>(long&nbsp;lastPropagatedTimestamp)</code>
 <div class="block">Updates the last timestamp received from a server.</div>
@@ -608,6 +644,19 @@
 </dl>
 </li>
 </ul>
+<a name="INVALID_TXN_ID">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>INVALID_TXN_ID</h4>
+<pre>public static final&nbsp;long INVALID_TXN_ID</pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.apache.kudu.client.AsyncKuduClient.INVALID_TXN_ID">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
 <a name="DEFAULT_OPERATION_TIMEOUT_MS">
 <!--   -->
 </a>
@@ -703,6 +752,23 @@
 </dl>
 </li>
 </ul>
+<a name="getClusterId--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getClusterId</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getClusterId()</pre>
+<div class="block">Returns the ID of the cluster that this client is connected to.
+ It will be an empty string if the client is not connected or
+ the client is connected to a cluster that doesn't support
+ cluster IDs.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the ID of the cluster that this client is connected to</dd>
+</dl>
+</li>
+</ul>
 <a name="syncClient--">
 <!--   -->
 </a>
diff --git a/apidocs/org/apache/kudu/client/Delete.html b/apidocs/org/apache/kudu/client/Delete.html
index fb5cd9f..6acf33f 100644
--- a/apidocs/org/apache/kudu/client/Delete.html
+++ b/apidocs/org/apache/kudu/client/Delete.html
@@ -42,7 +42,7 @@
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../org/apache/kudu/client/CreateTableOptions.html" title="class in org.apache.kudu.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../org/apache/kudu/client/DeleteTableResponse.html" title="class in org.apache.kudu.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/kudu/client/DeleteIgnore.html" title="class in org.apache.kudu.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../index.html?org/apache/kudu/client/Delete.html" target="_top">Frames</a></li>
@@ -194,7 +194,7 @@
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../org/apache/kudu/client/CreateTableOptions.html" title="class in org.apache.kudu.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../org/apache/kudu/client/DeleteTableResponse.html" title="class in org.apache.kudu.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/kudu/client/DeleteIgnore.html" title="class in org.apache.kudu.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../index.html?org/apache/kudu/client/Delete.html" target="_top">Frames</a></li>
diff --git a/apidocs/org/apache/kudu/client/DeleteIgnore.html b/apidocs/org/apache/kudu/client/DeleteIgnore.html
new file mode 100644
index 0000000..d6f6de3
--- /dev/null
+++ b/apidocs/org/apache/kudu/client/DeleteIgnore.html
@@ -0,0 +1,238 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<title>DeleteIgnore</title>
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DeleteIgnore";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/kudu/client/Delete.html" title="class in org.apache.kudu.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/kudu/client/DeleteTableResponse.html" title="class in org.apache.kudu.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/kudu/client/DeleteIgnore.html" target="_top">Frames</a></li>
+<li><a href="DeleteIgnore.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields.inherited.from.class.org.apache.kudu.client.KuduRpc">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.kudu.client.Operation">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.kudu.client</div>
+<h2 title="Class DeleteIgnore" class="title">Class DeleteIgnore</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.kudu.client.KuduRpc&lt;<a href="../../../../org/apache/kudu/client/OperationResponse.html" title="class in org.apache.kudu.client">OperationResponse</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/apache/kudu/client/Operation.html" title="class in org.apache.kudu.client">org.apache.kudu.client.Operation</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.kudu.client.DeleteIgnore</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>@InterfaceAudience.Public
+ @InterfaceStability.Evolving
+public class <span class="typeNameLabel">DeleteIgnore</span>
+extends <a href="../../../../org/apache/kudu/client/Operation.html" title="class in org.apache.kudu.client">Operation</a></pre>
+<div class="block">Class of Operation for whole row removals ignoring missing rows.
+ Only columns which are part of the key can be set.
+ Instances of this class should not be reused.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.apache.kudu.client.KuduRpc">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.apache.kudu.client.KuduRpc</h3>
+<code>MASTER_SERVICE_NAME, TABLET_SERVER_SERVICE_NAME</code></li>
+</ul>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.kudu.client.Operation">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.kudu.client.<a href="../../../../org/apache/kudu/client/Operation.html" title="class in org.apache.kudu.client">Operation</a></h3>
+<code><a href="../../../../org/apache/kudu/client/Operation.html#getRow--">getRow</a>, <a href="../../../../org/apache/kudu/client/Operation.html#partitionKey--">partitionKey</a>, <a href="../../../../org/apache/kudu/client/Operation.html#setRow-org.apache.kudu.client.PartialRow-">setRow</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.kudu.client.KuduRpc">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.kudu.client.KuduRpc</h3>
+<code>getExternalConsistencyMode, getTable, setExternalConsistencyMode, setPropagatedTimestamp, toString</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/kudu/client/Delete.html" title="class in org.apache.kudu.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/kudu/client/DeleteTableResponse.html" title="class in org.apache.kudu.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/kudu/client/DeleteIgnore.html" target="_top">Frames</a></li>
+<li><a href="DeleteIgnore.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields.inherited.from.class.org.apache.kudu.client.KuduRpc">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.kudu.client.Operation">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
diff --git a/apidocs/org/apache/kudu/client/DeleteTableResponse.html b/apidocs/org/apache/kudu/client/DeleteTableResponse.html
index f1a776b..ca51443 100644
--- a/apidocs/org/apache/kudu/client/DeleteTableResponse.html
+++ b/apidocs/org/apache/kudu/client/DeleteTableResponse.html
@@ -47,7 +47,7 @@
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../org/apache/kudu/client/Delete.html" title="class in org.apache.kudu.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/kudu/client/DeleteIgnore.html" title="class in org.apache.kudu.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../org/apache/kudu/client/ExternalConsistencyMode.html" title="enum in org.apache.kudu.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
@@ -221,7 +221,7 @@
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../org/apache/kudu/client/Delete.html" title="class in org.apache.kudu.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/kudu/client/DeleteIgnore.html" title="class in org.apache.kudu.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../org/apache/kudu/client/ExternalConsistencyMode.html" title="enum in org.apache.kudu.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
diff --git a/apidocs/org/apache/kudu/client/Insert.html b/apidocs/org/apache/kudu/client/Insert.html
index e653672..022caff 100644
--- a/apidocs/org/apache/kudu/client/Insert.html
+++ b/apidocs/org/apache/kudu/client/Insert.html
@@ -115,7 +115,8 @@
  @InterfaceStability.Evolving
 public class <span class="typeNameLabel">Insert</span>
 extends <a href="../../../../org/apache/kudu/client/Operation.html" title="class in org.apache.kudu.client">Operation</a></pre>
-<div class="block">Represents a single row insert. Instances of this class should not be reused.</div>
+<div class="block">Represents a single row insert.
+ Instances of this class should not be reused.</div>
 </li>
 </ul>
 </div>
diff --git a/apidocs/org/apache/kudu/client/InsertIgnore.html b/apidocs/org/apache/kudu/client/InsertIgnore.html
index 8f07c75..ea1cd0e 100644
--- a/apidocs/org/apache/kudu/client/InsertIgnore.html
+++ b/apidocs/org/apache/kudu/client/InsertIgnore.html
@@ -115,8 +115,8 @@
  @InterfaceStability.Evolving
 public class <span class="typeNameLabel">InsertIgnore</span>
 extends <a href="../../../../org/apache/kudu/client/Operation.html" title="class in org.apache.kudu.client">Operation</a></pre>
-<div class="block">Represents a single row insert ignoring duplicate rows. Instances of this class should not
- be reused.</div>
+<div class="block">Represents a single row insert ignoring duplicate rows.
+ Instances of this class should not be reused.</div>
 </li>
 </ul>
 </div>
diff --git a/apidocs/org/apache/kudu/client/KuduClient.html b/apidocs/org/apache/kudu/client/KuduClient.html
index ea85cd5..862dd55 100644
--- a/apidocs/org/apache/kudu/client/KuduClient.html
+++ b/apidocs/org/apache/kudu/client/KuduClient.html
@@ -17,7 +17,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -214,132 +214,144 @@
 </td>
 </tr>
 <tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/KuduClient.html#getClusterId--">getClusterId</a></span>()</code>
+<div class="block">Returns the ID of the cluster that this client is connected to.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/KuduClient.html#getDefaultAdminOperationTimeoutMs--">getDefaultAdminOperationTimeoutMs</a></span>()</code>
 <div class="block">Get the timeout used for admin operations.</div>
 </td>
 </tr>
-<tr id="i6" class="altColor">
+<tr id="i7" class="rowColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/KuduClient.html#getDefaultOperationTimeoutMs--">getDefaultOperationTimeoutMs</a></span>()</code>
 <div class="block">Get the timeout used for operations on sessions and scanners.</div>
 </td>
 </tr>
-<tr id="i7" class="rowColor">
+<tr id="i8" class="altColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/KuduClient.html#getLastPropagatedTimestamp--">getLastPropagatedTimestamp</a></span>()</code>
 <div class="block">Returns the last timestamp received from a server.</div>
 </td>
 </tr>
-<tr id="i8" class="altColor">
+<tr id="i9" class="rowColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/KuduClient.html#getLocationString--">getLocationString</a></span>()</code>
 <div class="block">Returns a string representation of this client's location.</div>
 </td>
 </tr>
-<tr id="i9" class="rowColor">
+<tr id="i10" class="altColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/KuduClient.html#getMasterAddressesAsString--">getMasterAddressesAsString</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i10" class="altColor">
+<tr id="i11" class="rowColor">
 <td class="colFirst"><code><a href="../../../../org/apache/kudu/client/Statistics.html" title="class in org.apache.kudu.client">Statistics</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/KuduClient.html#getStatistics--">getStatistics</a></span>()</code>
 <div class="block">Get the statistics object of this client.</div>
 </td>
 </tr>
-<tr id="i11" class="rowColor">
+<tr id="i12" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/kudu/client/ListTablesResponse.html" title="class in org.apache.kudu.client">ListTablesResponse</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/KuduClient.html#getTablesList--">getTablesList</a></span>()</code>
 <div class="block">Get the list of all the tables.</div>
 </td>
 </tr>
-<tr id="i12" class="altColor">
+<tr id="i13" class="rowColor">
 <td class="colFirst"><code><a href="../../../../org/apache/kudu/client/ListTablesResponse.html" title="class in org.apache.kudu.client">ListTablesResponse</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/KuduClient.html#getTablesList-java.lang.String-">getTablesList</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;nameFilter)</code>
 <div class="block">Get a list of table names.</div>
 </td>
 </tr>
-<tr id="i13" class="rowColor">
+<tr id="i14" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/kudu/client/KuduTableStatistics.html" title="class in org.apache.kudu.client">KuduTableStatistics</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/KuduClient.html#getTableStatistics-java.lang.String-">getTableStatistics</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
 <div class="block">Get table's statistics from master.</div>
 </td>
 </tr>
-<tr id="i14" class="altColor">
+<tr id="i15" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/KuduClient.html#hasLastPropagatedTimestamp--">hasLastPropagatedTimestamp</a></span>()</code>
 <div class="block">Checks if the client received any timestamps from a server.</div>
 </td>
 </tr>
-<tr id="i15" class="rowColor">
+<tr id="i16" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/KuduClient.html#importAuthenticationCredentials-byte:A-">importAuthenticationCredentials</a></span>(byte[]&nbsp;authnData)</code>
 <div class="block">Import data allowing this client to authenticate to the cluster.</div>
 </td>
 </tr>
-<tr id="i16" class="altColor">
+<tr id="i17" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/KuduClient.html#isAlterTableDone-java.lang.String-">isAlterTableDone</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
 <div class="block">Waits for all of the tablets in a table to be altered, or until the
  default admin operation timeout is reached.</div>
 </td>
 </tr>
-<tr id="i17" class="rowColor">
+<tr id="i18" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/KuduClient.html#isCreateTableDone-java.lang.String-">isCreateTableDone</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
 <div class="block">Waits for all of the tablets in a table to be created, or until the
  default admin operation timeout is reached.</div>
 </td>
 </tr>
-<tr id="i18" class="altColor">
+<tr id="i19" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/KuduClient.html#isStatisticsEnabled--">isStatisticsEnabled</a></span>()</code>
 <div class="block">Check if statistics collection is enabled for this client.</div>
 </td>
 </tr>
-<tr id="i19" class="rowColor">
+<tr id="i20" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/kudu/client/ListTabletServersResponse.html" title="class in org.apache.kudu.client">ListTabletServersResponse</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/KuduClient.html#listTabletServers--">listTabletServers</a></span>()</code>
 <div class="block">Get the list of running tablet servers.</div>
 </td>
 </tr>
-<tr id="i20" class="altColor">
+<tr id="i21" class="rowColor">
 <td class="colFirst"><code><a href="../../../../org/apache/kudu/client/KuduScanner.KuduScannerBuilder.html" title="class in org.apache.kudu.client">KuduScanner.KuduScannerBuilder</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/KuduClient.html#newScannerBuilder-org.apache.kudu.client.KuduTable-">newScannerBuilder</a></span>(<a href="../../../../org/apache/kudu/client/KuduTable.html" title="class in org.apache.kudu.client">KuduTable</a>&nbsp;table)</code>
 <div class="block">Creates a new <a href="../../../../org/apache/kudu/client/KuduScanner.KuduScannerBuilder.html" title="class in org.apache.kudu.client"><code>KuduScanner.KuduScannerBuilder</code></a> for a particular table.</div>
 </td>
 </tr>
-<tr id="i21" class="rowColor">
+<tr id="i22" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/kudu/client/KuduScanToken.KuduScanTokenBuilder.html" title="class in org.apache.kudu.client">KuduScanToken.KuduScanTokenBuilder</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/KuduClient.html#newScanTokenBuilder-org.apache.kudu.client.KuduTable-">newScanTokenBuilder</a></span>(<a href="../../../../org/apache/kudu/client/KuduTable.html" title="class in org.apache.kudu.client">KuduTable</a>&nbsp;table)</code>
 <div class="block">Creates a new <a href="../../../../org/apache/kudu/client/KuduScanToken.KuduScanTokenBuilder.html" title="class in org.apache.kudu.client"><code>KuduScanToken.KuduScanTokenBuilder</code></a> for a particular table.</div>
 </td>
 </tr>
-<tr id="i22" class="altColor">
+<tr id="i23" class="rowColor">
 <td class="colFirst"><code><a href="../../../../org/apache/kudu/client/KuduSession.html" title="class in org.apache.kudu.client">KuduSession</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/KuduClient.html#newSession--">newSession</a></span>()</code>
 <div class="block">Create a new session for interacting with the cluster.</div>
 </td>
 </tr>
-<tr id="i23" class="rowColor">
+<tr id="i24" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/kudu/client/KuduTransaction.html" title="class in org.apache.kudu.client">KuduTransaction</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/KuduClient.html#newTransaction--">newTransaction</a></span>()</code>
+<div class="block">Start a new multi-row distributed transaction.</div>
+</td>
+</tr>
+<tr id="i25" class="rowColor">
 <td class="colFirst"><code><a href="../../../../org/apache/kudu/client/KuduTable.html" title="class in org.apache.kudu.client">KuduTable</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/KuduClient.html#openTable-java.lang.String-">openTable</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
 <div class="block">Open the table with the given name.</div>
 </td>
 </tr>
-<tr id="i24" class="altColor">
+<tr id="i26" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/KuduClient.html#shutdown--">shutdown</a></span>()</code>
 <div class="block">Performs a graceful shutdown of this instance.</div>
 </td>
 </tr>
-<tr id="i25" class="rowColor">
+<tr id="i27" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/KuduClient.html#tableExists-java.lang.String-">tableExists</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
 <div class="block">Test if a table exists.</div>
 </td>
 </tr>
-<tr id="i26" class="altColor">
+<tr id="i28" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/KuduClient.html#updateLastPropagatedTimestamp-long-">updateLastPropagatedTimestamp</a></span>(long&nbsp;lastPropagatedTimestamp)</code>
 <div class="block">Updates the last timestamp received from a server.</div>
@@ -449,6 +461,23 @@
 </dl>
 </li>
 </ul>
+<a name="getClusterId--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getClusterId</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getClusterId()</pre>
+<div class="block">Returns the ID of the cluster that this client is connected to.
+ It will be an empty string if the client is not connected or
+ the client is connected to a cluster that doesn't support
+ cluster IDs.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the ID of the cluster that this client is connected to</dd>
+</dl>
+</li>
+</ul>
 <a name="createTable-java.lang.String-org.apache.kudu.Schema-org.apache.kudu.client.CreateTableOptions-">
 <!--   -->
 </a>
@@ -686,6 +715,28 @@
 </dl>
 </li>
 </ul>
+<a name="newTransaction--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>newTransaction</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/kudu/client/KuduTransaction.html" title="class in org.apache.kudu.client">KuduTransaction</a>&nbsp;newTransaction()
+                               throws <a href="../../../../org/apache/kudu/client/KuduException.html" title="class in org.apache.kudu.client">KuduException</a></pre>
+<div class="block">Start a new multi-row distributed transaction.
+ <p>
+ Start a new multi-row transaction and return a handle for the transactional
+ object to manage the newly started transaction. Under the hood, this makes
+ an RPC call to the Kudu cluster and registers a newly created transaction
+ in the system. This call is blocking.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a handle to the newly started transaction in case of success</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/kudu/client/KuduException.html" title="class in org.apache.kudu.client">KuduException</a></code></dd>
+</dl>
+</li>
+</ul>
 <a name="isStatisticsEnabled--">
 <!--   -->
 </a>
diff --git a/apidocs/org/apache/kudu/client/KuduScanToken.html b/apidocs/org/apache/kudu/client/KuduScanToken.html
index 0c65fe2..08a3478 100644
--- a/apidocs/org/apache/kudu/client/KuduScanToken.html
+++ b/apidocs/org/apache/kudu/client/KuduScanToken.html
@@ -17,7 +17,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":9,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":9};
+var methods = {"i0":10,"i1":9,"i2":9,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":9};
 var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -184,32 +184,39 @@
 </td>
 </tr>
 <tr id="i2" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/apache/kudu/client/KuduScanner.KuduScannerBuilder.html" title="class in org.apache.kudu.client">KuduScanner.KuduScannerBuilder</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/KuduScanToken.html#deserializeIntoScannerBuilder-byte:A-org.apache.kudu.client.KuduClient-">deserializeIntoScannerBuilder</a></span>(byte[]&nbsp;buf,
+                             <a href="../../../../org/apache/kudu/client/KuduClient.html" title="class in org.apache.kudu.client">KuduClient</a>&nbsp;client)</code>
+<div class="block">Deserializes a <code>KuduScanToken</code> into a <a href="../../../../org/apache/kudu/client/KuduScanner.KuduScannerBuilder.html" title="class in org.apache.kudu.client"><code>KuduScanner.KuduScannerBuilder</code></a>.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/KuduScanToken.html#equals-java.lang.Object-">equals</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>&nbsp;</td>
 </tr>
-<tr id="i3" class="rowColor">
+<tr id="i4" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/kudu/client/LocatedTablet.html" title="class in org.apache.kudu.client">LocatedTablet</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/KuduScanToken.html#getTablet--">getTablet</a></span>()</code>
 <div class="block">Returns the tablet which the scanner created from this token will access.</div>
 </td>
 </tr>
-<tr id="i4" class="altColor">
+<tr id="i5" class="rowColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/KuduScanToken.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i5" class="rowColor">
+<tr id="i6" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/kudu/client/KuduScanner.html" title="class in org.apache.kudu.client">KuduScanner</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/KuduScanToken.html#intoScanner-org.apache.kudu.client.KuduClient-">intoScanner</a></span>(<a href="../../../../org/apache/kudu/client/KuduClient.html" title="class in org.apache.kudu.client">KuduClient</a>&nbsp;client)</code>
 <div class="block">Creates a <a href="../../../../org/apache/kudu/client/KuduScanner.html" title="class in org.apache.kudu.client"><code>KuduScanner</code></a> from this scan token.</div>
 </td>
 </tr>
-<tr id="i6" class="altColor">
+<tr id="i7" class="rowColor">
 <td class="colFirst"><code>byte[]</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/KuduScanToken.html#serialize--">serialize</a></span>()</code>
 <div class="block">Serializes this <code>KuduScanToken</code> into a byte array.</div>
 </td>
 </tr>
-<tr id="i7" class="rowColor">
+<tr id="i8" class="altColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/KuduScanToken.html#stringifySerializedToken-byte:A-org.apache.kudu.client.KuduClient-">stringifySerializedToken</a></span>(byte[]&nbsp;buf,
                         <a href="../../../../org/apache/kudu/client/KuduClient.html" title="class in org.apache.kudu.client">KuduClient</a>&nbsp;client)</code>
@@ -259,7 +266,7 @@
 <li class="blockList">
 <h4>intoScanner</h4>
 <pre>public&nbsp;<a href="../../../../org/apache/kudu/client/KuduScanner.html" title="class in org.apache.kudu.client">KuduScanner</a>&nbsp;intoScanner(<a href="../../../../org/apache/kudu/client/KuduClient.html" title="class in org.apache.kudu.client">KuduClient</a>&nbsp;client)
-                        throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+                        throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Creates a <a href="../../../../org/apache/kudu/client/KuduScanner.html" title="class in org.apache.kudu.client"><code>KuduScanner</code></a> from this scan token.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -267,7 +274,7 @@
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>a scanner for the scan token</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
 </dl>
 </li>
 </ul>
@@ -309,6 +316,27 @@
 </dl>
 </li>
 </ul>
+<a name="deserializeIntoScannerBuilder-byte:A-org.apache.kudu.client.KuduClient-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>deserializeIntoScannerBuilder</h4>
+<pre>public static&nbsp;<a href="../../../../org/apache/kudu/client/KuduScanner.KuduScannerBuilder.html" title="class in org.apache.kudu.client">KuduScanner.KuduScannerBuilder</a>&nbsp;deserializeIntoScannerBuilder(byte[]&nbsp;buf,
+                                                                           <a href="../../../../org/apache/kudu/client/KuduClient.html" title="class in org.apache.kudu.client">KuduClient</a>&nbsp;client)
+                                                                    throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<div class="block">Deserializes a <code>KuduScanToken</code> into a <a href="../../../../org/apache/kudu/client/KuduScanner.KuduScannerBuilder.html" title="class in org.apache.kudu.client"><code>KuduScanner.KuduScannerBuilder</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>buf</code> - a byte array containing the serialized scan token.</dd>
+<dd><code>client</code> - a Kudu client for the cluster</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a scanner builder for the serialized scan token</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+</dl>
+</li>
+</ul>
 <a name="stringifySerializedToken-byte:A-org.apache.kudu.client.KuduClient-">
 <!--   -->
 </a>
diff --git a/apidocs/org/apache/kudu/client/KuduTable.html b/apidocs/org/apache/kudu/client/KuduTable.html
index c7b2a9a..b380bed 100644
--- a/apidocs/org/apache/kudu/client/KuduTable.html
+++ b/apidocs/org/apache/kudu/client/KuduTable.html
@@ -17,7 +17,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":42,"i1":42,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":42,"i11":42,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10};
+var methods = {"i0":42,"i1":42,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":42,"i11":42,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -228,24 +228,36 @@
 </td>
 </tr>
 <tr id="i13" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/kudu/client/DeleteIgnore.html" title="class in org.apache.kudu.client">DeleteIgnore</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/KuduTable.html#newDeleteIgnore--">newDeleteIgnore</a></span>()</code>
+<div class="block">Get a new delete ignore configured with this table's schema.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/kudu/client/Insert.html" title="class in org.apache.kudu.client">Insert</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/KuduTable.html#newInsert--">newInsert</a></span>()</code>
 <div class="block">Get a new insert configured with this table's schema.</div>
 </td>
 </tr>
-<tr id="i14" class="altColor">
+<tr id="i15" class="rowColor">
 <td class="colFirst"><code><a href="../../../../org/apache/kudu/client/InsertIgnore.html" title="class in org.apache.kudu.client">InsertIgnore</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/KuduTable.html#newInsertIgnore--">newInsertIgnore</a></span>()</code>
 <div class="block">Get a new insert ignore configured with this table's schema.</div>
 </td>
 </tr>
-<tr id="i15" class="rowColor">
+<tr id="i16" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/kudu/client/Update.html" title="class in org.apache.kudu.client">Update</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/KuduTable.html#newUpdate--">newUpdate</a></span>()</code>
 <div class="block">Get a new update configured with this table's schema.</div>
 </td>
 </tr>
-<tr id="i16" class="altColor">
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/kudu/client/UpdateIgnore.html" title="class in org.apache.kudu.client">UpdateIgnore</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/KuduTable.html#newUpdateIgnore--">newUpdateIgnore</a></span>()</code>
+<div class="block">Get a new update ignore configured with this table's schema.</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/kudu/client/Upsert.html" title="class in org.apache.kudu.client">Upsert</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/KuduTable.html#newUpsert--">newUpsert</a></span>()</code>
 <div class="block">Get a new upsert configured with this table's schema.</div>
@@ -444,6 +456,38 @@
 </dl>
 </li>
 </ul>
+<a name="newUpdateIgnore--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>newUpdateIgnore</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/kudu/client/UpdateIgnore.html" title="class in org.apache.kudu.client">UpdateIgnore</a>&nbsp;newUpdateIgnore()</pre>
+<div class="block">Get a new update ignore configured with this table's schema. An update ignore will
+ ignore missing row errors. This is useful to update a row only if it exists.
+ The returned object should not be reused.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an update ignore with this table's schema</dd>
+</dl>
+</li>
+</ul>
+<a name="newDeleteIgnore--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>newDeleteIgnore</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/kudu/client/DeleteIgnore.html" title="class in org.apache.kudu.client">DeleteIgnore</a>&nbsp;newDeleteIgnore()</pre>
+<div class="block">Get a new delete ignore configured with this table's schema. An delete ignore will
+ ignore missing row errors. This is useful to delete a row only if it exists.
+ The returned object should not be reused.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a delete ignore with this table's schema</dd>
+</dl>
+</li>
+</ul>
 <a name="asyncGetTabletsLocations-long-">
 <!--   -->
 </a>
diff --git a/apidocs/org/apache/kudu/client/KuduTableStatistics.html b/apidocs/org/apache/kudu/client/KuduTableStatistics.html
index 90e02d5..50e3965 100644
--- a/apidocs/org/apache/kudu/client/KuduTableStatistics.html
+++ b/apidocs/org/apache/kudu/client/KuduTableStatistics.html
@@ -48,7 +48,7 @@
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../org/apache/kudu/client/KuduTable.html" title="class in org.apache.kudu.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../org/apache/kudu/client/ListTablesResponse.html" title="class in org.apache.kudu.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/kudu/client/KuduTransaction.html" title="class in org.apache.kudu.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../index.html?org/apache/kudu/client/KuduTableStatistics.html" target="_top">Frames</a></li>
@@ -220,7 +220,7 @@
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../org/apache/kudu/client/KuduTable.html" title="class in org.apache.kudu.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../org/apache/kudu/client/ListTablesResponse.html" title="class in org.apache.kudu.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/kudu/client/KuduTransaction.html" title="class in org.apache.kudu.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../index.html?org/apache/kudu/client/KuduTableStatistics.html" target="_top">Frames</a></li>
diff --git a/apidocs/org/apache/kudu/client/KuduTransaction.html b/apidocs/org/apache/kudu/client/KuduTransaction.html
new file mode 100644
index 0000000..e9c8ea4
--- /dev/null
+++ b/apidocs/org/apache/kudu/client/KuduTransaction.html
@@ -0,0 +1,496 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<title>KuduTransaction</title>
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="KuduTransaction";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":9,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/kudu/client/KuduTableStatistics.html" title="class in org.apache.kudu.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/kudu/client/ListTablesResponse.html" title="class in org.apache.kudu.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/kudu/client/KuduTransaction.html" target="_top">Frames</a></li>
+<li><a href="KuduTransaction.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.kudu.client</div>
+<h2 title="Class KuduTransaction" class="title">Class KuduTransaction</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.kudu.client.KuduTransaction</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang">AutoCloseable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>@InterfaceAudience.Public
+ @InterfaceStability.Unstable
+public class <span class="typeNameLabel">KuduTransaction</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang">AutoCloseable</a></pre>
+<div class="block">A handle for a multi-row transaction in Kudu.
+ <p>
+ Once created using <a href="../../../../org/apache/kudu/client/KuduClient.html#newTransaction--"><code>KuduClient.newTransaction()</code></a> or
+ <a href="../../../../org/apache/kudu/client/KuduTransaction.html#deserialize-byte:A-org.apache.kudu.client.AsyncKuduClient-"><code>deserialize(byte[], org.apache.kudu.client.AsyncKuduClient)</code></a> methods, an instance of this class
+ can be used to commit or rollback the underlying multi-row transaction. To
+ issue write operations as a part of the transaction, use the
+ <a href="../../../../org/apache/kudu/client/KuduTransaction.html#newKuduSession--"><code>newKuduSession()</code></a> or
+ <a href="../../../../org/apache/kudu/client/KuduTransaction.html#newAsyncKuduSession--"><code>newAsyncKuduSession()</code></a> methods to create a new
+ transactional session and apply write operations using it.
+ <p>
+ The <a href="../../../../org/apache/kudu/client/KuduTransaction.html" title="class in org.apache.kudu.client"><code>KuduTransaction</code></a> implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang"><code>AutoCloseable</code></a> and should be
+ used with try-with-resource code construct. Once an object of this class
+ is constructed, it starts sending automatic keep-alive heartbeat messages
+ to keep the underlying transaction open. Once the object goes out of scope
+ and <a href="../../../../org/apache/kudu/client/KuduTransaction.html#close--"><code>close()</code></a> is automatically called by the Java
+ runtime (or the method is called explicitly), the heartbeating stops and the
+ transaction is automatically aborted by the system after not receiving
+ heartbeat messages for a few keep-alive intervals.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/KuduTransaction.html#close--">close</a></span>()</code>
+<div class="block">Stop keepalive heartbeating, if any was in progress for this transaction
+ handle.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/KuduTransaction.html#commit-boolean-">commit</a></span>(boolean&nbsp;wait)</code>
+<div class="block">Commit the multi-row distributed transaction represented by this handle.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/apache/kudu/client/KuduTransaction.html" title="class in org.apache.kudu.client">KuduTransaction</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/KuduTransaction.html#deserialize-byte:A-org.apache.kudu.client.AsyncKuduClient-">deserialize</a></span>(byte[]&nbsp;buf,
+           <a href="../../../../org/apache/kudu/client/AsyncKuduClient.html" title="class in org.apache.kudu.client">AsyncKuduClient</a>&nbsp;client)</code>
+<div class="block">Re-create KuduTransaction object given its serialized representation.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/KuduTransaction.html#isCommitComplete--">isCommitComplete</a></span>()</code>
+<div class="block">Check whether the commit phase for a transaction is complete.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/kudu/client/AsyncKuduSession.html" title="class in org.apache.kudu.client">AsyncKuduSession</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/KuduTransaction.html#newAsyncKuduSession--">newAsyncKuduSession</a></span>()</code>
+<div class="block">Create a new <a href="../../../../org/apache/kudu/client/AsyncKuduSession.html" title="class in org.apache.kudu.client"><code>AsyncKuduSession</code></a> based on this transaction.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/kudu/client/KuduSession.html" title="class in org.apache.kudu.client">KuduSession</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/KuduTransaction.html#newKuduSession--">newKuduSession</a></span>()</code>
+<div class="block">Create a new <a href="../../../../org/apache/kudu/client/KuduSession.html" title="class in org.apache.kudu.client"><code>KuduSession</code></a> based on this transaction.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/KuduTransaction.html#rollback--">rollback</a></span>()</code>
+<div class="block">Rollback the multi-row distributed transaction represented by this object.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/KuduTransaction.html#serialize--">serialize</a></span>()</code>
+<div class="block">A shortcut for the <a href="../../../../org/apache/kudu/client/KuduTransaction.html#serialize-org.apache.kudu.client.KuduTransaction.SerializationOptions-"><code>serialize(SerializationOptions)</code></a>
+ method invoked with default-constructed <code>KuduTransaction.SerializationOptions</code>.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kudu/client/KuduTransaction.html#serialize-org.apache.kudu.client.KuduTransaction.SerializationOptions-">serialize</a></span>(org.apache.kudu.client.KuduTransaction.SerializationOptions&nbsp;options)</code>
+<div class="block">Export information on the underlying transaction in a serialized form.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="newAsyncKuduSession--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>newAsyncKuduSession</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/kudu/client/AsyncKuduSession.html" title="class in org.apache.kudu.client">AsyncKuduSession</a>&nbsp;newAsyncKuduSession()</pre>
+<div class="block">Create a new <a href="../../../../org/apache/kudu/client/AsyncKuduSession.html" title="class in org.apache.kudu.client"><code>AsyncKuduSession</code></a> based on this transaction.
+ <p>
+ All write operations using the result session will be performed in the
+ context of this transaction.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new <a href="../../../../org/apache/kudu/client/AsyncKuduSession.html" title="class in org.apache.kudu.client"><code>AsyncKuduSession</code></a> instance</dd>
+</dl>
+</li>
+</ul>
+<a name="newKuduSession--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>newKuduSession</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/kudu/client/KuduSession.html" title="class in org.apache.kudu.client">KuduSession</a>&nbsp;newKuduSession()</pre>
+<div class="block">Create a new <a href="../../../../org/apache/kudu/client/KuduSession.html" title="class in org.apache.kudu.client"><code>KuduSession</code></a> based on this transaction.
+ <p>
+ All write operations using the result session will be performed in the
+ context of this transaction.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new <a href="../../../../org/apache/kudu/client/KuduSession.html" title="class in org.apache.kudu.client"><code>KuduSession</code></a> instance</dd>
+</dl>
+</li>
+</ul>
+<a name="commit-boolean-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>commit</h4>
+<pre>public&nbsp;void&nbsp;commit(boolean&nbsp;wait)
+            throws <a href="../../../../org/apache/kudu/client/KuduException.html" title="class in org.apache.kudu.client">KuduException</a></pre>
+<div class="block">Commit the multi-row distributed transaction represented by this handle.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>wait</code> - whether to wait for the transaction's commit phase to finalize.
+             If <code>true</code>, this method blocks until the commit is
+             finalized, otherwise it starts committing the transaction and
+             returns. In the latter case, it's possible to check for the
+             transaction status using the
+             <a href="../../../../org/apache/kudu/client/KuduTransaction.html#isCommitComplete--"><code>isCommitComplete()</code></a> method.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/kudu/client/KuduException.html" title="class in org.apache.kudu.client">KuduException</a></code> - if something went wrong</dd>
+</dl>
+</li>
+</ul>
+<a name="isCommitComplete--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isCommitComplete</h4>
+<pre>public&nbsp;boolean&nbsp;isCommitComplete()
+                         throws <a href="../../../../org/apache/kudu/client/KuduException.html" title="class in org.apache.kudu.client">KuduException</a></pre>
+<div class="block">Check whether the commit phase for a transaction is complete.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if transaction has finalized, otherwise <code>false</code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/kudu/client/KuduException.html" title="class in org.apache.kudu.client">KuduException</a></code> - if an error happens while querying the system about
+                       the state of the transaction</dd>
+</dl>
+</li>
+</ul>
+<a name="rollback--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>rollback</h4>
+<pre>public&nbsp;void&nbsp;rollback()
+              throws <a href="../../../../org/apache/kudu/client/KuduException.html" title="class in org.apache.kudu.client">KuduException</a></pre>
+<div class="block">Rollback the multi-row distributed transaction represented by this object.
+ <p>
+ This method initiates rolling back the transaction and returns right after
+ that. The system takes care of the rest. Once the control returns and
+ no exception is thrown, a client have a guarantee that all write
+ operations issued in the context of this transaction cannot be seen seen
+ outside.</div>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/kudu/client/KuduException.html" title="class in org.apache.kudu.client">KuduException</a></code> - if something went wrong</dd>
+</dl>
+</li>
+</ul>
+<a name="serialize-org.apache.kudu.client.KuduTransaction.SerializationOptions-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>serialize</h4>
+<pre>public&nbsp;byte[]&nbsp;serialize(org.apache.kudu.client.KuduTransaction.SerializationOptions&nbsp;options)
+                 throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<div class="block">Export information on the underlying transaction in a serialized form.
+ <p>
+ This method transforms this handle into its serialized representation.
+ <p>
+ The serialized information on a Kudu transaction can be passed among
+ different Kudu clients running at multiple nodes, so those separate
+ Kudu clients can perform operations to be a part of the same distributed
+ transaction. The resulting string is referred as "transaction token" and
+ it can be deserialized into a transaction handle (i.e. an object of this
+ class) via the <a href="../../../../org/apache/kudu/client/KuduTransaction.html#deserialize-byte:A-org.apache.kudu.client.AsyncKuduClient-"><code>deserialize(byte[], org.apache.kudu.client.AsyncKuduClient)</code></a> method.
+ <p>
+ This method doesn't perform any RPC under the hood.
+ <p>
+ The representation of the data in the serialized form (i.e. the format of
+ a Kudu transaction token) is an implementation detail, not a part of the
+ public API and can be changed without notice.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the serialized form of this transaction handle</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - if serialization fails</dd>
+</dl>
+</li>
+</ul>
+<a name="serialize--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>serialize</h4>
+<pre>public&nbsp;byte[]&nbsp;serialize()
+                 throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<div class="block">A shortcut for the <a href="../../../../org/apache/kudu/client/KuduTransaction.html#serialize-org.apache.kudu.client.KuduTransaction.SerializationOptions-"><code>serialize(SerializationOptions)</code></a>
+ method invoked with default-constructed <code>KuduTransaction.SerializationOptions</code>.</div>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="deserialize-byte:A-org.apache.kudu.client.AsyncKuduClient-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>deserialize</h4>
+<pre>public static&nbsp;<a href="../../../../org/apache/kudu/client/KuduTransaction.html" title="class in org.apache.kudu.client">KuduTransaction</a>&nbsp;deserialize(byte[]&nbsp;buf,
+                                          <a href="../../../../org/apache/kudu/client/AsyncKuduClient.html" title="class in org.apache.kudu.client">AsyncKuduClient</a>&nbsp;client)
+                                   throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<div class="block">Re-create KuduTransaction object given its serialized representation.
+ <p>
+ This method doesn't perform any RPC under the hood. The newly created
+ object automatically does or does not send keep-alive messages depending
+ on the <code>KuduTransaction.SerializationOptions.isKeepaliveEnabled()</code> setting when
+ the original <a href="../../../../org/apache/kudu/client/KuduTransaction.html" title="class in org.apache.kudu.client"><code>KuduTransaction</code></a> object was serialized using
+ <a href="../../../../org/apache/kudu/client/KuduTransaction.html#serialize-org.apache.kudu.client.KuduTransaction.SerializationOptions-"><code>serialize(org.apache.kudu.client.KuduTransaction.SerializationOptions)</code></a> method.
+ <p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>client</code> - Client instance to bound the result object to</dd>
+<dd><code>buf</code> - serialized representation of a <a href="../../../../org/apache/kudu/client/KuduTransaction.html" title="class in org.apache.kudu.client"><code>KuduTransaction</code></a> object</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Operation result status.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - if deserialization fails</dd>
+</dl>
+</li>
+</ul>
+<a name="close--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>close</h4>
+<pre>public&nbsp;void&nbsp;close()</pre>
+<div class="block">Stop keepalive heartbeating, if any was in progress for this transaction
+ handle.
+ <p>
+ This method is called automatically when the object goes out of scope
+ as prescribed for <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang"><code>AutoCloseable</code></a>.
+ <p>
+ This method doesn't throw according to the recommendations for
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true#close--" title="class or interface in java.lang"><code>AutoCloseable.close()</code></a>. In case of an error, this method just logs
+ the corresponding error message.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true#close--" title="class or interface in java.lang">close</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang">AutoCloseable</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/kudu/client/KuduTableStatistics.html" title="class in org.apache.kudu.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/kudu/client/ListTablesResponse.html" title="class in org.apache.kudu.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/kudu/client/KuduTransaction.html" target="_top">Frames</a></li>
+<li><a href="KuduTransaction.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
diff --git a/apidocs/org/apache/kudu/client/ListTablesResponse.html b/apidocs/org/apache/kudu/client/ListTablesResponse.html
index c361bb4..b170913 100644
--- a/apidocs/org/apache/kudu/client/ListTablesResponse.html
+++ b/apidocs/org/apache/kudu/client/ListTablesResponse.html
@@ -47,7 +47,7 @@
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../org/apache/kudu/client/KuduTableStatistics.html" title="class in org.apache.kudu.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/kudu/client/KuduTransaction.html" title="class in org.apache.kudu.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../org/apache/kudu/client/ListTabletServersResponse.html" title="class in org.apache.kudu.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
@@ -261,7 +261,7 @@
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../org/apache/kudu/client/KuduTableStatistics.html" title="class in org.apache.kudu.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/kudu/client/KuduTransaction.html" title="class in org.apache.kudu.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../org/apache/kudu/client/ListTabletServersResponse.html" title="class in org.apache.kudu.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
diff --git a/apidocs/org/apache/kudu/client/Operation.html b/apidocs/org/apache/kudu/client/Operation.html
index cc8e49b..8e4083f 100644
--- a/apidocs/org/apache/kudu/client/Operation.html
+++ b/apidocs/org/apache/kudu/client/Operation.html
@@ -112,7 +112,7 @@
 <li class="blockList">
 <dl>
 <dt>Direct Known Subclasses:</dt>
-<dd><a href="../../../../org/apache/kudu/client/Delete.html" title="class in org.apache.kudu.client">Delete</a>, <a href="../../../../org/apache/kudu/client/Insert.html" title="class in org.apache.kudu.client">Insert</a>, <a href="../../../../org/apache/kudu/client/InsertIgnore.html" title="class in org.apache.kudu.client">InsertIgnore</a>, <a href="../../../../org/apache/kudu/client/Update.html" title="class in org.apache.kudu.client">Update</a>, <a href="../../../../org/apache/kudu/client/Upsert.html" title="class in org.apache.kudu.client">Upsert</a></dd>
+<dd><a href="../../../../org/apache/kudu/client/Delete.html" title="class in org.apache.kudu.client">Delete</a>, <a href="../../../../org/apache/kudu/client/DeleteIgnore.html" title="class in org.apache.kudu.client">DeleteIgnore</a>, <a href="../../../../org/apache/kudu/client/Insert.html" title="class in org.apache.kudu.client">Insert</a>, <a href="../../../../org/apache/kudu/client/InsertIgnore.html" title="class in org.apache.kudu.client">InsertIgnore</a>, <a href="../../../../org/apache/kudu/client/Update.html" title="class in org.apache.kudu.client">Update</a>, <a href="../../../../org/apache/kudu/client/UpdateIgnore.html" title="class in org.apache.kudu.client">UpdateIgnore</a>, <a href="../../../../org/apache/kudu/client/Upsert.html" title="class in org.apache.kudu.client">Upsert</a></dd>
 </dl>
 <hr>
 <br>
diff --git a/apidocs/org/apache/kudu/client/Update.html b/apidocs/org/apache/kudu/client/Update.html
index 719585b..d87564f 100644
--- a/apidocs/org/apache/kudu/client/Update.html
+++ b/apidocs/org/apache/kudu/client/Update.html
@@ -42,7 +42,7 @@
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../org/apache/kudu/client/Status.html" title="class in org.apache.kudu.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../org/apache/kudu/client/Upsert.html" title="class in org.apache.kudu.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/kudu/client/UpdateIgnore.html" title="class in org.apache.kudu.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../index.html?org/apache/kudu/client/Update.html" target="_top">Frames</a></li>
@@ -115,7 +115,8 @@
  @InterfaceStability.Evolving
 public class <span class="typeNameLabel">Update</span>
 extends <a href="../../../../org/apache/kudu/client/Operation.html" title="class in org.apache.kudu.client">Operation</a></pre>
-<div class="block">Operation to update columns on an existing row. Instances of this class should not be reused.</div>
+<div class="block">Operation to update columns on an existing row.
+ Instances of this class should not be reused.</div>
 </li>
 </ul>
 </div>
@@ -192,7 +193,7 @@
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../org/apache/kudu/client/Status.html" title="class in org.apache.kudu.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../org/apache/kudu/client/Upsert.html" title="class in org.apache.kudu.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/kudu/client/UpdateIgnore.html" title="class in org.apache.kudu.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../index.html?org/apache/kudu/client/Update.html" target="_top">Frames</a></li>
diff --git a/apidocs/org/apache/kudu/client/UpdateIgnore.html b/apidocs/org/apache/kudu/client/UpdateIgnore.html
new file mode 100644
index 0000000..078de8b
--- /dev/null
+++ b/apidocs/org/apache/kudu/client/UpdateIgnore.html
@@ -0,0 +1,237 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<title>UpdateIgnore</title>
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="UpdateIgnore";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/kudu/client/Update.html" title="class in org.apache.kudu.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/kudu/client/Upsert.html" title="class in org.apache.kudu.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/kudu/client/UpdateIgnore.html" target="_top">Frames</a></li>
+<li><a href="UpdateIgnore.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields.inherited.from.class.org.apache.kudu.client.KuduRpc">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.kudu.client.Operation">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.kudu.client</div>
+<h2 title="Class UpdateIgnore" class="title">Class UpdateIgnore</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.kudu.client.KuduRpc&lt;<a href="../../../../org/apache/kudu/client/OperationResponse.html" title="class in org.apache.kudu.client">OperationResponse</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/apache/kudu/client/Operation.html" title="class in org.apache.kudu.client">org.apache.kudu.client.Operation</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.kudu.client.UpdateIgnore</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>@InterfaceAudience.Public
+ @InterfaceStability.Evolving
+public class <span class="typeNameLabel">UpdateIgnore</span>
+extends <a href="../../../../org/apache/kudu/client/Operation.html" title="class in org.apache.kudu.client">Operation</a></pre>
+<div class="block">Represents a single row update ignoring missing rows.
+ Instances of this class should not be reused.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.apache.kudu.client.KuduRpc">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.apache.kudu.client.KuduRpc</h3>
+<code>MASTER_SERVICE_NAME, TABLET_SERVER_SERVICE_NAME</code></li>
+</ul>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.kudu.client.Operation">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.kudu.client.<a href="../../../../org/apache/kudu/client/Operation.html" title="class in org.apache.kudu.client">Operation</a></h3>
+<code><a href="../../../../org/apache/kudu/client/Operation.html#getRow--">getRow</a>, <a href="../../../../org/apache/kudu/client/Operation.html#partitionKey--">partitionKey</a>, <a href="../../../../org/apache/kudu/client/Operation.html#setRow-org.apache.kudu.client.PartialRow-">setRow</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.kudu.client.KuduRpc">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.kudu.client.KuduRpc</h3>
+<code>getExternalConsistencyMode, getTable, setExternalConsistencyMode, setPropagatedTimestamp, toString</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/kudu/client/Update.html" title="class in org.apache.kudu.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/kudu/client/Upsert.html" title="class in org.apache.kudu.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/kudu/client/UpdateIgnore.html" target="_top">Frames</a></li>
+<li><a href="UpdateIgnore.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields.inherited.from.class.org.apache.kudu.client.KuduRpc">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.kudu.client.Operation">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
diff --git a/apidocs/org/apache/kudu/client/Upsert.html b/apidocs/org/apache/kudu/client/Upsert.html
index 47f5a9a..6ce6e9a 100644
--- a/apidocs/org/apache/kudu/client/Upsert.html
+++ b/apidocs/org/apache/kudu/client/Upsert.html
@@ -41,7 +41,7 @@
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../org/apache/kudu/client/Update.html" title="class in org.apache.kudu.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/kudu/client/UpdateIgnore.html" title="class in org.apache.kudu.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li>Next&nbsp;Class</li>
 </ul>
 <ul class="navList">
@@ -191,7 +191,7 @@
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../org/apache/kudu/client/Update.html" title="class in org.apache.kudu.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/kudu/client/UpdateIgnore.html" title="class in org.apache.kudu.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li>Next&nbsp;Class</li>
 </ul>
 <ul class="navList">
diff --git a/apidocs/org/apache/kudu/client/package-frame.html b/apidocs/org/apache/kudu/client/package-frame.html
index 671ff6b..8e33f18 100644
--- a/apidocs/org/apache/kudu/client/package-frame.html
+++ b/apidocs/org/apache/kudu/client/package-frame.html
@@ -28,6 +28,7 @@
 <li><a href="ColumnRangePredicate.html" title="class in org.apache.kudu.client" target="classFrame">ColumnRangePredicate</a></li>
 <li><a href="CreateTableOptions.html" title="class in org.apache.kudu.client" target="classFrame">CreateTableOptions</a></li>
 <li><a href="Delete.html" title="class in org.apache.kudu.client" target="classFrame">Delete</a></li>
+<li><a href="DeleteIgnore.html" title="class in org.apache.kudu.client" target="classFrame">DeleteIgnore</a></li>
 <li><a href="DeleteTableResponse.html" title="class in org.apache.kudu.client" target="classFrame">DeleteTableResponse</a></li>
 <li><a href="Insert.html" title="class in org.apache.kudu.client" target="classFrame">Insert</a></li>
 <li><a href="InsertIgnore.html" title="class in org.apache.kudu.client" target="classFrame">InsertIgnore</a></li>
@@ -47,6 +48,7 @@
 <li><a href="KuduSession.html" title="class in org.apache.kudu.client" target="classFrame">KuduSession</a></li>
 <li><a href="KuduTable.html" title="class in org.apache.kudu.client" target="classFrame">KuduTable</a></li>
 <li><a href="KuduTableStatistics.html" title="class in org.apache.kudu.client" target="classFrame">KuduTableStatistics</a></li>
+<li><a href="KuduTransaction.html" title="class in org.apache.kudu.client" target="classFrame">KuduTransaction</a></li>
 <li><a href="ListTablesResponse.html" title="class in org.apache.kudu.client" target="classFrame">ListTablesResponse</a></li>
 <li><a href="ListTabletServersResponse.html" title="class in org.apache.kudu.client" target="classFrame">ListTabletServersResponse</a></li>
 <li><a href="LocatedTablet.html" title="class in org.apache.kudu.client" target="classFrame">LocatedTablet</a></li>
@@ -62,6 +64,7 @@
 <li><a href="Statistics.html" title="class in org.apache.kudu.client" target="classFrame">Statistics</a></li>
 <li><a href="Status.html" title="class in org.apache.kudu.client" target="classFrame">Status</a></li>
 <li><a href="Update.html" title="class in org.apache.kudu.client" target="classFrame">Update</a></li>
+<li><a href="UpdateIgnore.html" title="class in org.apache.kudu.client" target="classFrame">UpdateIgnore</a></li>
 <li><a href="Upsert.html" title="class in org.apache.kudu.client" target="classFrame">Upsert</a></li>
 </ul>
 <h2 title="Enums">Enums</h2>
diff --git a/apidocs/org/apache/kudu/client/package-summary.html b/apidocs/org/apache/kudu/client/package-summary.html
index 87d18d7..3b8d7bb 100644
--- a/apidocs/org/apache/kudu/client/package-summary.html
+++ b/apidocs/org/apache/kudu/client/package-summary.html
@@ -170,121 +170,133 @@
 </td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/kudu/client/DeleteIgnore.html" title="class in org.apache.kudu.client">DeleteIgnore</a></td>
+<td class="colLast">
+<div class="block">Class of Operation for whole row removals ignoring missing rows.</div>
+</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/kudu/client/DeleteTableResponse.html" title="class in org.apache.kudu.client">DeleteTableResponse</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/kudu/client/Insert.html" title="class in org.apache.kudu.client">Insert</a></td>
 <td class="colLast">
 <div class="block">Represents a single row insert.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/kudu/client/InsertIgnore.html" title="class in org.apache.kudu.client">InsertIgnore</a></td>
 <td class="colLast">
 <div class="block">Represents a single row insert ignoring duplicate rows.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/kudu/client/IsAlterTableDoneResponse.html" title="class in org.apache.kudu.client">IsAlterTableDoneResponse</a></td>
 <td class="colLast">
 <div class="block">Response to a isAlterTableDone command to use to know if an alter table is currently running on
  the specified table.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/kudu/client/IsCreateTableDoneResponse.html" title="class in org.apache.kudu.client">IsCreateTableDoneResponse</a></td>
 <td class="colLast">
 <div class="block">Response to an isCreateTableDone command.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/kudu/client/KuduClient.html" title="class in org.apache.kudu.client">KuduClient</a></td>
 <td class="colLast">
 <div class="block">A synchronous and thread-safe client for Kudu.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/kudu/client/KuduClient.KuduClientBuilder.html" title="class in org.apache.kudu.client">KuduClient.KuduClientBuilder</a></td>
 <td class="colLast">
 <div class="block">Builder class to use in order to connect to Kudu.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/kudu/client/KuduException.OriginalException.html" title="class in org.apache.kudu.client">KuduException.OriginalException</a></td>
 <td class="colLast">
 <div class="block">When exceptions are thrown by the asynchronous Kudu client, the stack trace is
  typically deep within the internals of the Kudu client and/or Netty.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/kudu/client/KuduPartitioner.html" title="class in org.apache.kudu.client">KuduPartitioner</a></td>
 <td class="colLast">
 <div class="block">A KuduPartitioner allows clients to determine the target partition of a
  row without actually performing a write.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/kudu/client/KuduPartitioner.KuduPartitionerBuilder.html" title="class in org.apache.kudu.client">KuduPartitioner.KuduPartitionerBuilder</a></td>
 <td class="colLast">
 <div class="block">A Builder class to build <a href="../../../../org/apache/kudu/client/KuduPartitioner.html" title="class in org.apache.kudu.client"><code>KuduPartitioner</code></a>.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/kudu/client/KuduPredicate.html" title="class in org.apache.kudu.client">KuduPredicate</a></td>
 <td class="colLast">
 <div class="block">A predicate which can be used to filter rows based on the value of a column.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/kudu/client/KuduScanner.html" title="class in org.apache.kudu.client">KuduScanner</a></td>
 <td class="colLast">
 <div class="block">Synchronous version of <a href="../../../../org/apache/kudu/client/AsyncKuduScanner.html" title="class in org.apache.kudu.client"><code>AsyncKuduScanner</code></a>.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/kudu/client/KuduScanner.KuduScannerBuilder.html" title="class in org.apache.kudu.client">KuduScanner.KuduScannerBuilder</a></td>
 <td class="colLast">
 <div class="block">A Builder class to build <a href="../../../../org/apache/kudu/client/KuduScanner.html" title="class in org.apache.kudu.client"><code>KuduScanner</code></a>.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/kudu/client/KuduScannerIterator.html" title="class in org.apache.kudu.client">KuduScannerIterator</a></td>
 <td class="colLast">
 <div class="block">An iterator for the RowResults of a KuduScanner.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/kudu/client/KuduScanToken.html" title="class in org.apache.kudu.client">KuduScanToken</a></td>
 <td class="colLast">
 <div class="block">A scan token describes a partial scan of a Kudu table limited to a single
  contiguous physical location.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/kudu/client/KuduScanToken.KuduScanTokenBuilder.html" title="class in org.apache.kudu.client">KuduScanToken.KuduScanTokenBuilder</a></td>
 <td class="colLast">
 <div class="block">Builds a sequence of scan tokens.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/kudu/client/KuduSession.html" title="class in org.apache.kudu.client">KuduSession</a></td>
 <td class="colLast">
 <div class="block">Synchronous version of <a href="../../../../org/apache/kudu/client/AsyncKuduSession.html" title="class in org.apache.kudu.client"><code>AsyncKuduSession</code></a>.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/kudu/client/KuduTable.html" title="class in org.apache.kudu.client">KuduTable</a></td>
 <td class="colLast">
 <div class="block">A KuduTable represents a table on a particular cluster.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/kudu/client/KuduTableStatistics.html" title="class in org.apache.kudu.client">KuduTableStatistics</a></td>
 <td class="colLast">
 <div class="block">Represent statistics belongs to a specific kudu table.</div>
 </td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/kudu/client/KuduTransaction.html" title="class in org.apache.kudu.client">KuduTransaction</a></td>
+<td class="colLast">
+<div class="block">A handle for a multi-row transaction in Kudu.</div>
+</td>
+</tr>
 <tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/kudu/client/ListTablesResponse.html" title="class in org.apache.kudu.client">ListTablesResponse</a></td>
 <td class="colLast">&nbsp;</td>
@@ -371,6 +383,12 @@
 </td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/kudu/client/UpdateIgnore.html" title="class in org.apache.kudu.client">UpdateIgnore</a></td>
+<td class="colLast">
+<div class="block">Represents a single row update ignoring missing rows.</div>
+</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/kudu/client/Upsert.html" title="class in org.apache.kudu.client">Upsert</a></td>
 <td class="colLast">
 <div class="block">Represents a single row upsert.</div>
diff --git a/apidocs/org/apache/kudu/client/package-tree.html b/apidocs/org/apache/kudu/client/package-tree.html
index b5508c5..ef8d0a7 100644
--- a/apidocs/org/apache/kudu/client/package-tree.html
+++ b/apidocs/org/apache/kudu/client/package-tree.html
@@ -107,9 +107,11 @@
 <li type="circle">org.apache.kudu.client.<a href="../../../../org/apache/kudu/client/Operation.html" title="class in org.apache.kudu.client"><span class="typeNameLink">Operation</span></a>
 <ul>
 <li type="circle">org.apache.kudu.client.<a href="../../../../org/apache/kudu/client/Delete.html" title="class in org.apache.kudu.client"><span class="typeNameLink">Delete</span></a></li>
+<li type="circle">org.apache.kudu.client.<a href="../../../../org/apache/kudu/client/DeleteIgnore.html" title="class in org.apache.kudu.client"><span class="typeNameLink">DeleteIgnore</span></a></li>
 <li type="circle">org.apache.kudu.client.<a href="../../../../org/apache/kudu/client/Insert.html" title="class in org.apache.kudu.client"><span class="typeNameLink">Insert</span></a></li>
 <li type="circle">org.apache.kudu.client.<a href="../../../../org/apache/kudu/client/InsertIgnore.html" title="class in org.apache.kudu.client"><span class="typeNameLink">InsertIgnore</span></a></li>
 <li type="circle">org.apache.kudu.client.<a href="../../../../org/apache/kudu/client/Update.html" title="class in org.apache.kudu.client"><span class="typeNameLink">Update</span></a></li>
+<li type="circle">org.apache.kudu.client.<a href="../../../../org/apache/kudu/client/UpdateIgnore.html" title="class in org.apache.kudu.client"><span class="typeNameLink">UpdateIgnore</span></a></li>
 <li type="circle">org.apache.kudu.client.<a href="../../../../org/apache/kudu/client/Upsert.html" title="class in org.apache.kudu.client"><span class="typeNameLink">Upsert</span></a></li>
 </ul>
 </li>
@@ -121,6 +123,7 @@
 <li type="circle">org.apache.kudu.client.<a href="../../../../org/apache/kudu/client/KuduSession.html" title="class in org.apache.kudu.client"><span class="typeNameLink">KuduSession</span></a> (implements org.apache.kudu.client.<a href="../../../../org/apache/kudu/client/SessionConfiguration.html" title="interface in org.apache.kudu.client">SessionConfiguration</a>)</li>
 <li type="circle">org.apache.kudu.client.<a href="../../../../org/apache/kudu/client/KuduTable.html" title="class in org.apache.kudu.client"><span class="typeNameLink">KuduTable</span></a></li>
 <li type="circle">org.apache.kudu.client.<a href="../../../../org/apache/kudu/client/KuduTableStatistics.html" title="class in org.apache.kudu.client"><span class="typeNameLink">KuduTableStatistics</span></a></li>
+<li type="circle">org.apache.kudu.client.<a href="../../../../org/apache/kudu/client/KuduTransaction.html" title="class in org.apache.kudu.client"><span class="typeNameLink">KuduTransaction</span></a> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang">AutoCloseable</a>)</li>
 <li type="circle">org.apache.kudu.client.<a href="../../../../org/apache/kudu/client/ListTablesResponse.html" title="class in org.apache.kudu.client"><span class="typeNameLink">ListTablesResponse</span></a></li>
 <li type="circle">org.apache.kudu.client.<a href="../../../../org/apache/kudu/client/ListTabletServersResponse.html" title="class in org.apache.kudu.client"><span class="typeNameLink">ListTabletServersResponse</span></a></li>
 <li type="circle">org.apache.kudu.client.<a href="../../../../org/apache/kudu/client/LocatedTablet.html" title="class in org.apache.kudu.client"><span class="typeNameLink">LocatedTablet</span></a></li>
@@ -166,14 +169,14 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.kudu.client.<a href="../../../../org/apache/kudu/client/AsyncKuduScanner.RowDataFormat.html" title="enum in org.apache.kudu.client"><span class="typeNameLink">AsyncKuduScanner.RowDataFormat</span></a></li>
-<li type="circle">org.apache.kudu.client.<a href="../../../../org/apache/kudu/client/AsyncKuduScanner.ReadMode.html" title="enum in org.apache.kudu.client"><span class="typeNameLink">AsyncKuduScanner.ReadMode</span></a></li>
-<li type="circle">org.apache.kudu.client.<a href="../../../../org/apache/kudu/client/RangePartitionBound.html" title="enum in org.apache.kudu.client"><span class="typeNameLink">RangePartitionBound</span></a></li>
-<li type="circle">org.apache.kudu.client.<a href="../../../../org/apache/kudu/client/Statistics.Statistic.html" title="enum in org.apache.kudu.client"><span class="typeNameLink">Statistics.Statistic</span></a></li>
-<li type="circle">org.apache.kudu.client.<a href="../../../../org/apache/kudu/client/KuduPredicate.ComparisonOp.html" title="enum in org.apache.kudu.client"><span class="typeNameLink">KuduPredicate.ComparisonOp</span></a></li>
-<li type="circle">org.apache.kudu.client.<a href="../../../../org/apache/kudu/client/ExternalConsistencyMode.html" title="enum in org.apache.kudu.client"><span class="typeNameLink">ExternalConsistencyMode</span></a></li>
-<li type="circle">org.apache.kudu.client.<a href="../../../../org/apache/kudu/client/ReplicaSelection.html" title="enum in org.apache.kudu.client"><span class="typeNameLink">ReplicaSelection</span></a></li>
 <li type="circle">org.apache.kudu.client.<a href="../../../../org/apache/kudu/client/SessionConfiguration.FlushMode.html" title="enum in org.apache.kudu.client"><span class="typeNameLink">SessionConfiguration.FlushMode</span></a></li>
+<li type="circle">org.apache.kudu.client.<a href="../../../../org/apache/kudu/client/AsyncKuduScanner.RowDataFormat.html" title="enum in org.apache.kudu.client"><span class="typeNameLink">AsyncKuduScanner.RowDataFormat</span></a></li>
+<li type="circle">org.apache.kudu.client.<a href="../../../../org/apache/kudu/client/KuduPredicate.ComparisonOp.html" title="enum in org.apache.kudu.client"><span class="typeNameLink">KuduPredicate.ComparisonOp</span></a></li>
+<li type="circle">org.apache.kudu.client.<a href="../../../../org/apache/kudu/client/Statistics.Statistic.html" title="enum in org.apache.kudu.client"><span class="typeNameLink">Statistics.Statistic</span></a></li>
+<li type="circle">org.apache.kudu.client.<a href="../../../../org/apache/kudu/client/AsyncKuduScanner.ReadMode.html" title="enum in org.apache.kudu.client"><span class="typeNameLink">AsyncKuduScanner.ReadMode</span></a></li>
+<li type="circle">org.apache.kudu.client.<a href="../../../../org/apache/kudu/client/ReplicaSelection.html" title="enum in org.apache.kudu.client"><span class="typeNameLink">ReplicaSelection</span></a></li>
+<li type="circle">org.apache.kudu.client.<a href="../../../../org/apache/kudu/client/RangePartitionBound.html" title="enum in org.apache.kudu.client"><span class="typeNameLink">RangePartitionBound</span></a></li>
+<li type="circle">org.apache.kudu.client.<a href="../../../../org/apache/kudu/client/ExternalConsistencyMode.html" title="enum in org.apache.kudu.client"><span class="typeNameLink">ExternalConsistencyMode</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/apidocs/org/apache/kudu/mapreduce/KuduTableOutputCommitter.html b/apidocs/org/apache/kudu/mapreduce/KuduTableOutputCommitter.html
index beb014b..9d486c8 100644
--- a/apidocs/org/apache/kudu/mapreduce/KuduTableOutputCommitter.html
+++ b/apidocs/org/apache/kudu/mapreduce/KuduTableOutputCommitter.html
@@ -178,7 +178,7 @@
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.mapreduce.OutputCommitter</h3>
-<code>abortJob, cleanupJob, commitJob, isRecoverySupported, isRecoverySupported, recoverTask</code></li>
+<code>abortJob, cleanupJob, commitJob, isCommitJobRepeatable, isRecoverySupported, isRecoverySupported, recoverTask</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
diff --git a/apidocs/overview-tree.html b/apidocs/overview-tree.html
index 6282eba..d2d5b26 100644
--- a/apidocs/overview-tree.html
+++ b/apidocs/overview-tree.html
@@ -137,9 +137,11 @@
 <li type="circle">org.apache.kudu.client.<a href="org/apache/kudu/client/Operation.html" title="class in org.apache.kudu.client"><span class="typeNameLink">Operation</span></a>
 <ul>
 <li type="circle">org.apache.kudu.client.<a href="org/apache/kudu/client/Delete.html" title="class in org.apache.kudu.client"><span class="typeNameLink">Delete</span></a></li>
+<li type="circle">org.apache.kudu.client.<a href="org/apache/kudu/client/DeleteIgnore.html" title="class in org.apache.kudu.client"><span class="typeNameLink">DeleteIgnore</span></a></li>
 <li type="circle">org.apache.kudu.client.<a href="org/apache/kudu/client/Insert.html" title="class in org.apache.kudu.client"><span class="typeNameLink">Insert</span></a></li>
 <li type="circle">org.apache.kudu.client.<a href="org/apache/kudu/client/InsertIgnore.html" title="class in org.apache.kudu.client"><span class="typeNameLink">InsertIgnore</span></a></li>
 <li type="circle">org.apache.kudu.client.<a href="org/apache/kudu/client/Update.html" title="class in org.apache.kudu.client"><span class="typeNameLink">Update</span></a></li>
+<li type="circle">org.apache.kudu.client.<a href="org/apache/kudu/client/UpdateIgnore.html" title="class in org.apache.kudu.client"><span class="typeNameLink">UpdateIgnore</span></a></li>
 <li type="circle">org.apache.kudu.client.<a href="org/apache/kudu/client/Upsert.html" title="class in org.apache.kudu.client"><span class="typeNameLink">Upsert</span></a></li>
 </ul>
 </li>
@@ -152,6 +154,7 @@
 <li type="circle">org.apache.kudu.client.<a href="org/apache/kudu/client/KuduTable.html" title="class in org.apache.kudu.client"><span class="typeNameLink">KuduTable</span></a></li>
 <li type="circle">org.apache.kudu.mapreduce.<a href="org/apache/kudu/mapreduce/KuduTableMapReduceUtil.html" title="class in org.apache.kudu.mapreduce"><span class="typeNameLink">KuduTableMapReduceUtil</span></a></li>
 <li type="circle">org.apache.kudu.client.<a href="org/apache/kudu/client/KuduTableStatistics.html" title="class in org.apache.kudu.client"><span class="typeNameLink">KuduTableStatistics</span></a></li>
+<li type="circle">org.apache.kudu.client.<a href="org/apache/kudu/client/KuduTransaction.html" title="class in org.apache.kudu.client"><span class="typeNameLink">KuduTransaction</span></a> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang">AutoCloseable</a>)</li>
 <li type="circle">org.apache.kudu.client.<a href="org/apache/kudu/client/ListTablesResponse.html" title="class in org.apache.kudu.client"><span class="typeNameLink">ListTablesResponse</span></a></li>
 <li type="circle">org.apache.kudu.client.<a href="org/apache/kudu/client/ListTabletServersResponse.html" title="class in org.apache.kudu.client"><span class="typeNameLink">ListTabletServersResponse</span></a></li>
 <li type="circle">org.apache.kudu.client.<a href="org/apache/kudu/client/LocatedTablet.html" title="class in org.apache.kudu.client"><span class="typeNameLink">LocatedTablet</span></a></li>
@@ -213,17 +216,17 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.kudu.client.<a href="org/apache/kudu/client/ExternalConsistencyMode.html" title="enum in org.apache.kudu.client"><span class="typeNameLink">ExternalConsistencyMode</span></a></li>
-<li type="circle">org.apache.kudu.client.<a href="org/apache/kudu/client/ReplicaSelection.html" title="enum in org.apache.kudu.client"><span class="typeNameLink">ReplicaSelection</span></a></li>
-<li type="circle">org.apache.kudu.client.<a href="org/apache/kudu/client/RangePartitionBound.html" title="enum in org.apache.kudu.client"><span class="typeNameLink">RangePartitionBound</span></a></li>
-<li type="circle">org.apache.kudu.client.<a href="org/apache/kudu/client/KuduPredicate.ComparisonOp.html" title="enum in org.apache.kudu.client"><span class="typeNameLink">KuduPredicate.ComparisonOp</span></a></li>
-<li type="circle">org.apache.kudu.client.<a href="org/apache/kudu/client/Statistics.Statistic.html" title="enum in org.apache.kudu.client"><span class="typeNameLink">Statistics.Statistic</span></a></li>
-<li type="circle">org.apache.kudu.client.<a href="org/apache/kudu/client/AsyncKuduScanner.ReadMode.html" title="enum in org.apache.kudu.client"><span class="typeNameLink">AsyncKuduScanner.ReadMode</span></a></li>
-<li type="circle">org.apache.kudu.client.<a href="org/apache/kudu/client/AsyncKuduScanner.RowDataFormat.html" title="enum in org.apache.kudu.client"><span class="typeNameLink">AsyncKuduScanner.RowDataFormat</span></a></li>
-<li type="circle">org.apache.kudu.client.<a href="org/apache/kudu/client/SessionConfiguration.FlushMode.html" title="enum in org.apache.kudu.client"><span class="typeNameLink">SessionConfiguration.FlushMode</span></a></li>
-<li type="circle">org.apache.kudu.<a href="org/apache/kudu/Type.html" title="enum in org.apache.kudu"><span class="typeNameLink">Type</span></a></li>
 <li type="circle">org.apache.kudu.<a href="org/apache/kudu/ColumnSchema.Encoding.html" title="enum in org.apache.kudu"><span class="typeNameLink">ColumnSchema.Encoding</span></a></li>
 <li type="circle">org.apache.kudu.<a href="org/apache/kudu/ColumnSchema.CompressionAlgorithm.html" title="enum in org.apache.kudu"><span class="typeNameLink">ColumnSchema.CompressionAlgorithm</span></a></li>
+<li type="circle">org.apache.kudu.<a href="org/apache/kudu/Type.html" title="enum in org.apache.kudu"><span class="typeNameLink">Type</span></a></li>
+<li type="circle">org.apache.kudu.client.<a href="org/apache/kudu/client/AsyncKuduScanner.ReadMode.html" title="enum in org.apache.kudu.client"><span class="typeNameLink">AsyncKuduScanner.ReadMode</span></a></li>
+<li type="circle">org.apache.kudu.client.<a href="org/apache/kudu/client/AsyncKuduScanner.RowDataFormat.html" title="enum in org.apache.kudu.client"><span class="typeNameLink">AsyncKuduScanner.RowDataFormat</span></a></li>
+<li type="circle">org.apache.kudu.client.<a href="org/apache/kudu/client/ExternalConsistencyMode.html" title="enum in org.apache.kudu.client"><span class="typeNameLink">ExternalConsistencyMode</span></a></li>
+<li type="circle">org.apache.kudu.client.<a href="org/apache/kudu/client/KuduPredicate.ComparisonOp.html" title="enum in org.apache.kudu.client"><span class="typeNameLink">KuduPredicate.ComparisonOp</span></a></li>
+<li type="circle">org.apache.kudu.client.<a href="org/apache/kudu/client/RangePartitionBound.html" title="enum in org.apache.kudu.client"><span class="typeNameLink">RangePartitionBound</span></a></li>
+<li type="circle">org.apache.kudu.client.<a href="org/apache/kudu/client/ReplicaSelection.html" title="enum in org.apache.kudu.client"><span class="typeNameLink">ReplicaSelection</span></a></li>
+<li type="circle">org.apache.kudu.client.<a href="org/apache/kudu/client/SessionConfiguration.FlushMode.html" title="enum in org.apache.kudu.client"><span class="typeNameLink">SessionConfiguration.FlushMode</span></a></li>
+<li type="circle">org.apache.kudu.client.<a href="org/apache/kudu/client/Statistics.Statistic.html" title="enum in org.apache.kudu.client"><span class="typeNameLink">Statistics.Statistic</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/blog/index.html b/blog/index.html
index b484708..1a3efe2 100644
--- a/blog/index.html
+++ b/blog/index.html
@@ -119,6 +119,42 @@
 <!-- Articles -->
 <article>
   <header>
+    <h1 class="entry-title"><a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a></h1>
+    <p class="meta">Posted 15 Jan 2021 by Bankim Bhavsar</p>
+  </header>
+  <div class="entry-content">
+    
+    <p>Note: This is a cross-post from the Cloudera Engineering Blog
+<a href="https://blog.cloudera.com/optimized-joins-filtering-with-bloom-filter-predicate-in-kudu/">Optimized joins &amp; filtering with Bloom filter predicate in Kudu</a></p>
+
+<p>Cloudera’s CDP Runtime version 7.1.5 maps to Apache Kudu 1.13 and upcoming Apache Impala 4.0</p>
+
+<h2 id="introduction">Introduction</h2>
+<p>In database systems one of the most effective ways to improve performance is to avoid doing
+unnecessary work, such as network transfers and reading data from disk. One of the ways Apache
+Kudu achieves this is by supporting column predicates with scanners. Pushing down column predicate
+filters to Kudu allows for optimized execution by skipping reading column values for filtered out
+rows and reducing network IO between a client, like the distributed query engine Apache Impala, and
+Kudu. See the documentation on
+<a href="https://docs.cloudera.com/runtime/latest/impala-reference/topics/impala-runtime-filtering.html">runtime filtering in Impala</a>
+for details.</p>
+
+<p>CDP Runtime 7.1.5 and CDP Public Cloud added support for Bloom filter column predicate pushdown in
+Kudu and the associated integration in Impala.</p>
+
+
+    
+  </div>
+  <div class="read-full">
+    <a class="btn btn-info" href="/2021/01/15/bloom-filter-predicate.html">Read full post...</a>
+  </div>
+</article>
+
+
+
+<!-- Articles -->
+<article>
+  <header>
     <h1 class="entry-title"><a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a></h1>
     <p class="meta">Posted 21 Sep 2020 by Attila Bukor</p>
   </header>
@@ -222,29 +258,6 @@
 
 
 
-<!-- Articles -->
-<article>
-  <header>
-    <h1 class="entry-title"><a href="/2019/11/20/apache-kudu-1-11-1-release.html">Apache Kudu 1.11.1 released</a></h1>
-    <p class="meta">Posted 20 Nov 2019 by Alexey Serbin</p>
-  </header>
-  <div class="entry-content">
-    
-    <p>The Apache Kudu team is happy to announce the release of Kudu 1.11.1!</p>
-
-<p>This release contains a fix which addresses a critical issue discovered in
-1.10.0 and 1.11.0 and adds several new features and improvements since 1.10.0.</p>
-
-
-    
-  </div>
-  <div class="read-full">
-    <a class="btn btn-info" href="/2019/11/20/apache-kudu-1-11-1-release.html">Read full post...</a>
-  </div>
-</article>
-
-
-
 <!-- Pagination links -->
 
 <nav>
@@ -263,6 +276,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -291,8 +306,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/blog/page/10/index.html b/blog/page/10/index.html
index d9ff4cd..c13cddf 100644
--- a/blog/page/10/index.html
+++ b/blog/page/10/index.html
@@ -119,6 +119,27 @@
 <!-- Articles -->
 <article>
   <header>
+    <h1 class="entry-title"><a href="/2016/06/27/weekly-update.html">Apache Kudu (incubating) Weekly Update June 27, 2016</a></h1>
+    <p class="meta">Posted 27 Jun 2016 by Todd Lipcon</p>
+  </header>
+  <div class="entry-content">
+    
+    <p>Welcome to the fifteenth edition of the Kudu Weekly Update. This weekly blog post
+covers ongoing development and news in the Apache Kudu (incubating) project.</p>
+
+
+    
+  </div>
+  <div class="read-full">
+    <a class="btn btn-info" href="/2016/06/27/weekly-update.html">Read full post...</a>
+  </div>
+</article>
+
+
+
+<!-- Articles -->
+<article>
+  <header>
     <h1 class="entry-title"><a href="/2016/06/24/multi-master-1-0-0.html">Master fault tolerance in Kudu 1.0</a></h1>
     <p class="meta">Posted 24 Jun 2016 by Adar Dembo</p>
   </header>
@@ -204,36 +225,6 @@
 
 
 
-<!-- Articles -->
-<article>
-  <header>
-    <h1 class="entry-title"><a href="/2016/06/10/apache-kudu-0-9-0-released.html">Apache Kudu (incubating) 0.9.0 released</a></h1>
-    <p class="meta">Posted 10 Jun 2016 by Jean-Daniel Cryans</p>
-  </header>
-  <div class="entry-content">
-    
-    <p>The Apache Kudu (incubating) team is happy to announce the release of Kudu
-0.9.0!</p>
-
-<p>This latest version adds basic UPSERT functionality and an improved Apache Spark Data Source
-that doesn’t rely on the MapReduce I/O formats. It also improves Tablet Server
-restart time as well as write performance under high load. Finally, Kudu now enforces
-the specification of a partitioning scheme for new tables.</p>
-
-<ul>
-  <li>Read the detailed <a href="http://kudu.apache.org/releases/0.9.0/docs/release_notes.html">Kudu 0.9.0 release notes</a></li>
-  <li>Download the <a href="http://kudu.apache.org/releases/0.9.0/">Kudu 0.9.0 source release</a></li>
-</ul>
-
-    
-  </div>
-  <div class="read-full">
-    <a class="btn btn-info" href="/2016/06/10/apache-kudu-0-9-0-released.html">Read full post...</a>
-  </div>
-</article>
-
-
-
 <!-- Pagination links -->
 
 <nav>
@@ -254,6 +245,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -282,8 +275,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/blog/page/11/index.html b/blog/page/11/index.html
index e90ca23..8a26207 100644
--- a/blog/page/11/index.html
+++ b/blog/page/11/index.html
@@ -119,6 +119,36 @@
 <!-- Articles -->
 <article>
   <header>
+    <h1 class="entry-title"><a href="/2016/06/10/apache-kudu-0-9-0-released.html">Apache Kudu (incubating) 0.9.0 released</a></h1>
+    <p class="meta">Posted 10 Jun 2016 by Jean-Daniel Cryans</p>
+  </header>
+  <div class="entry-content">
+    
+    <p>The Apache Kudu (incubating) team is happy to announce the release of Kudu
+0.9.0!</p>
+
+<p>This latest version adds basic UPSERT functionality and an improved Apache Spark Data Source
+that doesn’t rely on the MapReduce I/O formats. It also improves Tablet Server
+restart time as well as write performance under high load. Finally, Kudu now enforces
+the specification of a partitioning scheme for new tables.</p>
+
+<ul>
+  <li>Read the detailed <a href="http://kudu.apache.org/releases/0.9.0/docs/release_notes.html">Kudu 0.9.0 release notes</a></li>
+  <li>Download the <a href="http://kudu.apache.org/releases/0.9.0/">Kudu 0.9.0 source release</a></li>
+</ul>
+
+    
+  </div>
+  <div class="read-full">
+    <a class="btn btn-info" href="/2016/06/10/apache-kudu-0-9-0-released.html">Read full post...</a>
+  </div>
+</article>
+
+
+
+<!-- Articles -->
+<article>
+  <header>
     <h1 class="entry-title"><a href="/2016/06/06/weekly-update.html">Apache Kudu (incubating) Weekly Update June 6, 2016</a></h1>
     <p class="meta">Posted 06 Jun 2016 by Jean-Daniel Cryans</p>
   </header>
@@ -202,27 +232,6 @@
 
 
 
-<!-- Articles -->
-<article>
-  <header>
-    <h1 class="entry-title"><a href="/2016/05/16/weekly-update.html">Apache Kudu (incubating) Weekly Update May 16, 2016</a></h1>
-    <p class="meta">Posted 16 May 2016 by Todd Lipcon</p>
-  </header>
-  <div class="entry-content">
-    
-    <p>Welcome to the ninth edition of the Kudu Weekly Update. This weekly blog post
-covers ongoing development and news in the Apache Kudu (incubating) project.</p>
-
-
-    
-  </div>
-  <div class="read-full">
-    <a class="btn btn-info" href="/2016/05/16/weekly-update.html">Read full post...</a>
-  </div>
-</article>
-
-
-
 <!-- Pagination links -->
 
 <nav>
@@ -243,6 +252,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -271,8 +282,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/blog/page/12/index.html b/blog/page/12/index.html
index 62e1d62..6431f94 100644
--- a/blog/page/12/index.html
+++ b/blog/page/12/index.html
@@ -119,6 +119,27 @@
 <!-- Articles -->
 <article>
   <header>
+    <h1 class="entry-title"><a href="/2016/05/16/weekly-update.html">Apache Kudu (incubating) Weekly Update May 16, 2016</a></h1>
+    <p class="meta">Posted 16 May 2016 by Todd Lipcon</p>
+  </header>
+  <div class="entry-content">
+    
+    <p>Welcome to the ninth edition of the Kudu Weekly Update. This weekly blog post
+covers ongoing development and news in the Apache Kudu (incubating) project.</p>
+
+
+    
+  </div>
+  <div class="read-full">
+    <a class="btn btn-info" href="/2016/05/16/weekly-update.html">Read full post...</a>
+  </div>
+</article>
+
+
+
+<!-- Articles -->
+<article>
+  <header>
     <h1 class="entry-title"><a href="/2016/05/09/weekly-update.html">Apache Kudu (incubating) Weekly Update May 9, 2016</a></h1>
     <p class="meta">Posted 09 May 2016 by Jean-Daniel Cryans</p>
   </header>
@@ -199,29 +220,6 @@
 
 
 
-<!-- Articles -->
-<article>
-  <header>
-    <h1 class="entry-title"><a href="/2016/04/19/kudu-0-8-0-predicate-improvements.html">Predicate Improvements in Kudu 0.8</a></h1>
-    <p class="meta">Posted 19 Apr 2016 by Dan Burkert</p>
-  </header>
-  <div class="entry-content">
-    
-    <p>The recently released Kudu version 0.8 ships with a host of new improvements to
-scan predicates. Performance and usability have been improved, especially for
-tables taking advantage of <a href="http://kudu.apache.org/docs/schema_design.html#data-distribution">advanced partitioning
-options</a>.</p>
-
-
-    
-  </div>
-  <div class="read-full">
-    <a class="btn btn-info" href="/2016/04/19/kudu-0-8-0-predicate-improvements.html">Read full post...</a>
-  </div>
-</article>
-
-
-
 <!-- Pagination links -->
 
 <nav>
@@ -242,6 +240,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -270,8 +270,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/blog/page/13/index.html b/blog/page/13/index.html
index b277f01..45dddc4 100644
--- a/blog/page/13/index.html
+++ b/blog/page/13/index.html
@@ -119,6 +119,29 @@
 <!-- Articles -->
 <article>
   <header>
+    <h1 class="entry-title"><a href="/2016/04/19/kudu-0-8-0-predicate-improvements.html">Predicate Improvements in Kudu 0.8</a></h1>
+    <p class="meta">Posted 19 Apr 2016 by Dan Burkert</p>
+  </header>
+  <div class="entry-content">
+    
+    <p>The recently released Kudu version 0.8 ships with a host of new improvements to
+scan predicates. Performance and usability have been improved, especially for
+tables taking advantage of <a href="http://kudu.apache.org/docs/schema_design.html#data-distribution">advanced partitioning
+options</a>.</p>
+
+
+    
+  </div>
+  <div class="read-full">
+    <a class="btn btn-info" href="/2016/04/19/kudu-0-8-0-predicate-improvements.html">Read full post...</a>
+  </div>
+</article>
+
+
+
+<!-- Articles -->
+<article>
+  <header>
     <h1 class="entry-title"><a href="/2016/04/18/weekly-update.html">Apache Kudu (incubating) Weekly Update April 18, 2016</a></h1>
     <p class="meta">Posted 18 Apr 2016 by Todd Lipcon</p>
   </header>
@@ -218,27 +241,6 @@
 
 
 
-<!-- Articles -->
-<article>
-  <header>
-    <h1 class="entry-title"><a href="/2016/04/04/weekly-update.html">Apache Kudu (incubating) Weekly Update April 4, 2016</a></h1>
-    <p class="meta">Posted 04 Apr 2016 by Todd Lipcon</p>
-  </header>
-  <div class="entry-content">
-    
-    <p>Welcome to the third edition of the Kudu Weekly Update. This weekly blog post
-covers ongoing development and news in the Apache Kudu (incubating) project.</p>
-
-
-    
-  </div>
-  <div class="read-full">
-    <a class="btn btn-info" href="/2016/04/04/weekly-update.html">Read full post...</a>
-  </div>
-</article>
-
-
-
 <!-- Pagination links -->
 
 <nav>
@@ -259,6 +261,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -287,8 +291,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/blog/page/14/index.html b/blog/page/14/index.html
index 8ed44b4..a6fe1a9 100644
--- a/blog/page/14/index.html
+++ b/blog/page/14/index.html
@@ -119,6 +119,27 @@
 <!-- Articles -->
 <article>
   <header>
+    <h1 class="entry-title"><a href="/2016/04/04/weekly-update.html">Apache Kudu (incubating) Weekly Update April 4, 2016</a></h1>
+    <p class="meta">Posted 04 Apr 2016 by Todd Lipcon</p>
+  </header>
+  <div class="entry-content">
+    
+    <p>Welcome to the third edition of the Kudu Weekly Update. This weekly blog post
+covers ongoing development and news in the Apache Kudu (incubating) project.</p>
+
+
+    
+  </div>
+  <div class="read-full">
+    <a class="btn btn-info" href="/2016/04/04/weekly-update.html">Read full post...</a>
+  </div>
+</article>
+
+
+
+<!-- Articles -->
+<article>
+  <header>
     <h1 class="entry-title"><a href="/2016/03/28/weekly-update.html">Apache Kudu (incubating) Weekly Update March 28, 2016</a></h1>
     <p class="meta">Posted 28 Mar 2016 by Todd Lipcon</p>
   </header>
@@ -229,6 +250,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -257,8 +280,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/blog/page/2/index.html b/blog/page/2/index.html
index 93bd13b..0ad40f0 100644
--- a/blog/page/2/index.html
+++ b/blog/page/2/index.html
@@ -119,6 +119,29 @@
 <!-- Articles -->
 <article>
   <header>
+    <h1 class="entry-title"><a href="/2019/11/20/apache-kudu-1-11-1-release.html">Apache Kudu 1.11.1 released</a></h1>
+    <p class="meta">Posted 20 Nov 2019 by Alexey Serbin</p>
+  </header>
+  <div class="entry-content">
+    
+    <p>The Apache Kudu team is happy to announce the release of Kudu 1.11.1!</p>
+
+<p>This release contains a fix which addresses a critical issue discovered in
+1.10.0 and 1.11.0 and adds several new features and improvements since 1.10.0.</p>
+
+
+    
+  </div>
+  <div class="read-full">
+    <a class="btn btn-info" href="/2019/11/20/apache-kudu-1-11-1-release.html">Read full post...</a>
+  </div>
+</article>
+
+
+
+<!-- Articles -->
+<article>
+  <header>
     <h1 class="entry-title"><a href="/2019/11/20/apache-kudu-1-10-1-release.html">Apache Kudu 1.10.1 released</a></h1>
     <p class="meta">Posted 20 Nov 2019 by Alexey Serbin</p>
   </header>
@@ -222,35 +245,6 @@
 
 
 
-<!-- Articles -->
-<article>
-  <header>
-    <h1 class="entry-title"><a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a></h1>
-    <p class="meta">Posted 19 Mar 2019 by Grant Henke & Mike Percy</p>
-  </header>
-  <div class="entry-content">
-    
-    <p>Note: This is a cross-post from the Cloudera Engineering Blog
-<a href="https://blog.cloudera.com/blog/2019/03/testing-apache-kudu-applications-on-the-jvm/">Testing Apache Kudu Applications on the JVM</a></p>
-
-<p>Although the Kudu server is written in C++ for performance and efficiency, developers can write
-client applications in C++, Java, or Python. To make it easier for Java developers to create
-reliable client applications, we’ve added new utilities in Kudu 1.9.0 that allow you to write tests
-using a Kudu cluster without needing to build Kudu yourself, without any knowledge of C++,
-and without any complicated coordination around starting and stopping Kudu clusters for each test.
-This post describes how the new testing utilities work and how you can use them in your application
-tests.</p>
-
-
-    
-  </div>
-  <div class="read-full">
-    <a class="btn btn-info" href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Read full post...</a>
-  </div>
-</article>
-
-
-
 <!-- Pagination links -->
 
 <nav>
@@ -271,6 +265,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -299,8 +295,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/blog/page/3/index.html b/blog/page/3/index.html
index 9888d60..561fd80 100644
--- a/blog/page/3/index.html
+++ b/blog/page/3/index.html
@@ -119,6 +119,35 @@
 <!-- Articles -->
 <article>
   <header>
+    <h1 class="entry-title"><a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a></h1>
+    <p class="meta">Posted 19 Mar 2019 by Grant Henke & Mike Percy</p>
+  </header>
+  <div class="entry-content">
+    
+    <p>Note: This is a cross-post from the Cloudera Engineering Blog
+<a href="https://blog.cloudera.com/blog/2019/03/testing-apache-kudu-applications-on-the-jvm/">Testing Apache Kudu Applications on the JVM</a></p>
+
+<p>Although the Kudu server is written in C++ for performance and efficiency, developers can write
+client applications in C++, Java, or Python. To make it easier for Java developers to create
+reliable client applications, we’ve added new utilities in Kudu 1.9.0 that allow you to write tests
+using a Kudu cluster without needing to build Kudu yourself, without any knowledge of C++,
+and without any complicated coordination around starting and stopping Kudu clusters for each test.
+This post describes how the new testing utilities work and how you can use them in your application
+tests.</p>
+
+
+    
+  </div>
+  <div class="read-full">
+    <a class="btn btn-info" href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Read full post...</a>
+  </div>
+</article>
+
+
+
+<!-- Articles -->
+<article>
+  <header>
     <h1 class="entry-title"><a href="/2019/03/15/apache-kudu-1-9-0-release.html">Apache Kudu 1.9.0 Released</a></h1>
     <p class="meta">Posted 15 Mar 2019 by Andrew Wong</p>
   </header>
@@ -215,29 +244,6 @@
 
 
 
-<!-- Articles -->
-<article>
-  <header>
-    <h1 class="entry-title"><a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a></h1>
-    <p class="meta">Posted 26 Sep 2018 by Anupama Gupta</p>
-  </header>
-  <div class="entry-content">
-    
-    <p>This summer I got the opportunity to intern with the Apache Kudu team at Cloudera.
-My project was to optimize the Kudu scan path by implementing a technique called
-index skip scan (a.k.a. scan-to-seek, see section 4.1 in [1]). I wanted to share
-my experience and the progress we’ve made so far on the approach.</p>
-
-
-    
-  </div>
-  <div class="read-full">
-    <a class="btn btn-info" href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Read full post...</a>
-  </div>
-</article>
-
-
-
 <!-- Pagination links -->
 
 <nav>
@@ -258,6 +264,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -286,8 +294,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/blog/page/4/index.html b/blog/page/4/index.html
index ce40788..28c74ef 100644
--- a/blog/page/4/index.html
+++ b/blog/page/4/index.html
@@ -119,6 +119,29 @@
 <!-- Articles -->
 <article>
   <header>
+    <h1 class="entry-title"><a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a></h1>
+    <p class="meta">Posted 26 Sep 2018 by Anupama Gupta</p>
+  </header>
+  <div class="entry-content">
+    
+    <p>This summer I got the opportunity to intern with the Apache Kudu team at Cloudera.
+My project was to optimize the Kudu scan path by implementing a technique called
+index skip scan (a.k.a. scan-to-seek, see section 4.1 in [1]). I wanted to share
+my experience and the progress we’ve made so far on the approach.</p>
+
+
+    
+  </div>
+  <div class="read-full">
+    <a class="btn btn-info" href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Read full post...</a>
+  </div>
+</article>
+
+
+
+<!-- Articles -->
+<article>
+  <header>
     <h1 class="entry-title"><a href="/2018/09/11/simplified-pipelines-with-kudu.html">Simplified Data Pipelines with Kudu</a></h1>
     <p class="meta">Posted 11 Sep 2018 by Mac Noland</p>
   </header>
@@ -218,31 +241,6 @@
 
 
 
-<!-- Articles -->
-<article>
-  <header>
-    <h1 class="entry-title"><a href="/2017/12/08/apache-kudu-1-6-0-released.html">Apache Kudu 1.6.0 released</a></h1>
-    <p class="meta">Posted 08 Dec 2017 by Mike Percy</p>
-  </header>
-  <div class="entry-content">
-    
-    <p>The Apache Kudu team is happy to announce the release of Kudu 1.6.0!</p>
-
-<p>Apache Kudu 1.6.0 is a minor release that offers new features, performance
-optimizations, incremental improvements, and bug fixes.</p>
-
-<p>Release highlights:</p>
-
-
-    
-  </div>
-  <div class="read-full">
-    <a class="btn btn-info" href="/2017/12/08/apache-kudu-1-6-0-released.html">Read full post...</a>
-  </div>
-</article>
-
-
-
 <!-- Pagination links -->
 
 <nav>
@@ -263,6 +261,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -291,8 +291,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/blog/page/5/index.html b/blog/page/5/index.html
index 80f1354..7c66e1d 100644
--- a/blog/page/5/index.html
+++ b/blog/page/5/index.html
@@ -119,6 +119,31 @@
 <!-- Articles -->
 <article>
   <header>
+    <h1 class="entry-title"><a href="/2017/12/08/apache-kudu-1-6-0-released.html">Apache Kudu 1.6.0 released</a></h1>
+    <p class="meta">Posted 08 Dec 2017 by Mike Percy</p>
+  </header>
+  <div class="entry-content">
+    
+    <p>The Apache Kudu team is happy to announce the release of Kudu 1.6.0!</p>
+
+<p>Apache Kudu 1.6.0 is a minor release that offers new features, performance
+optimizations, incremental improvements, and bug fixes.</p>
+
+<p>Release highlights:</p>
+
+
+    
+  </div>
+  <div class="read-full">
+    <a class="btn btn-info" href="/2017/12/08/apache-kudu-1-6-0-released.html">Read full post...</a>
+  </div>
+</article>
+
+
+
+<!-- Articles -->
+<article>
+  <header>
     <h1 class="entry-title"><a href="/2017/10/23/nosql-kudu-spanner-slides.html">Slides: A brave new world in mutable big data: Relational storage</a></h1>
     <p class="meta">Posted 23 Oct 2017 by Todd Lipcon</p>
   </header>
@@ -219,39 +244,6 @@
 
 
 
-<!-- Articles -->
-<article>
-  <header>
-    <h1 class="entry-title"><a href="/2017/04/19/apache-kudu-1-3-1-released.html">Apache Kudu 1.3.1 released</a></h1>
-    <p class="meta">Posted 19 Apr 2017 by Todd Lipcon</p>
-  </header>
-  <div class="entry-content">
-    
-    <p>The Apache Kudu team is happy to announce the release of Kudu 1.3.1!</p>
-
-<p>Apache Kudu 1.3.1 is a bug fix release which fixes critical issues discovered
-in Apache Kudu 1.3.0. In particular, this fixes a bug in which data could be
-incorrectly deleted after certain sequences of node failures. Several other
-bugs are also fixed. See the release notes for details.</p>
-
-<p>Users of Kudu 1.3.0 are encouraged to upgrade to 1.3.1 immediately.</p>
-
-<ul>
-  <li>Download the <a href="/releases/1.3.1/">Kudu 1.3.1 source release</a></li>
-  <li>Convenience binary artifacts for the Java client and various Java
-integrations (eg Spark, Flume) are also now available via the ASF Maven
-repository.</li>
-</ul>
-
-    
-  </div>
-  <div class="read-full">
-    <a class="btn btn-info" href="/2017/04/19/apache-kudu-1-3-1-released.html">Read full post...</a>
-  </div>
-</article>
-
-
-
 <!-- Pagination links -->
 
 <nav>
@@ -272,6 +264,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -300,8 +294,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/blog/page/6/index.html b/blog/page/6/index.html
index 5abd7a5..3264b33 100644
--- a/blog/page/6/index.html
+++ b/blog/page/6/index.html
@@ -119,6 +119,39 @@
 <!-- Articles -->
 <article>
   <header>
+    <h1 class="entry-title"><a href="/2017/04/19/apache-kudu-1-3-1-released.html">Apache Kudu 1.3.1 released</a></h1>
+    <p class="meta">Posted 19 Apr 2017 by Todd Lipcon</p>
+  </header>
+  <div class="entry-content">
+    
+    <p>The Apache Kudu team is happy to announce the release of Kudu 1.3.1!</p>
+
+<p>Apache Kudu 1.3.1 is a bug fix release which fixes critical issues discovered
+in Apache Kudu 1.3.0. In particular, this fixes a bug in which data could be
+incorrectly deleted after certain sequences of node failures. Several other
+bugs are also fixed. See the release notes for details.</p>
+
+<p>Users of Kudu 1.3.0 are encouraged to upgrade to 1.3.1 immediately.</p>
+
+<ul>
+  <li>Download the <a href="/releases/1.3.1/">Kudu 1.3.1 source release</a></li>
+  <li>Convenience binary artifacts for the Java client and various Java
+integrations (eg Spark, Flume) are also now available via the ASF Maven
+repository.</li>
+</ul>
+
+    
+  </div>
+  <div class="read-full">
+    <a class="btn btn-info" href="/2017/04/19/apache-kudu-1-3-1-released.html">Read full post...</a>
+  </div>
+</article>
+
+
+
+<!-- Articles -->
+<article>
+  <header>
     <h1 class="entry-title"><a href="/2017/03/20/apache-kudu-1-3-0-released.html">Apache Kudu 1.3.0 released</a></h1>
     <p class="meta">Posted 20 Mar 2017 by Todd Lipcon</p>
   </header>
@@ -204,27 +237,6 @@
 
 
 
-<!-- Articles -->
-<article>
-  <header>
-    <h1 class="entry-title"><a href="/2016/10/20/weekly-update.html">Apache Kudu Weekly Update October 20th, 2016</a></h1>
-    <p class="meta">Posted 20 Oct 2016 by Todd Lipcon</p>
-  </header>
-  <div class="entry-content">
-    
-    <p>Welcome to the twenty-second edition of the Kudu Weekly Update. This weekly blog post
-covers ongoing development and news in the Apache Kudu project.</p>
-
-
-    
-  </div>
-  <div class="read-full">
-    <a class="btn btn-info" href="/2016/10/20/weekly-update.html">Read full post...</a>
-  </div>
-</article>
-
-
-
 <!-- Pagination links -->
 
 <nav>
@@ -245,6 +257,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -273,8 +287,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/blog/page/7/index.html b/blog/page/7/index.html
index 6a99b48..adea985 100644
--- a/blog/page/7/index.html
+++ b/blog/page/7/index.html
@@ -119,6 +119,27 @@
 <!-- Articles -->
 <article>
   <header>
+    <h1 class="entry-title"><a href="/2016/10/20/weekly-update.html">Apache Kudu Weekly Update October 20th, 2016</a></h1>
+    <p class="meta">Posted 20 Oct 2016 by Todd Lipcon</p>
+  </header>
+  <div class="entry-content">
+    
+    <p>Welcome to the twenty-second edition of the Kudu Weekly Update. This weekly blog post
+covers ongoing development and news in the Apache Kudu project.</p>
+
+
+    
+  </div>
+  <div class="read-full">
+    <a class="btn btn-info" href="/2016/10/20/weekly-update.html">Read full post...</a>
+  </div>
+</article>
+
+
+
+<!-- Articles -->
+<article>
+  <header>
     <h1 class="entry-title"><a href="/2016/10/11/weekly-update.html">Apache Kudu Weekly Update October 11th, 2016</a></h1>
     <p class="meta">Posted 11 Oct 2016 by Todd Lipcon</p>
   </header>
@@ -212,319 +233,6 @@
 
 
 
-<!-- Articles -->
-<article>
-  <header>
-    <h1 class="entry-title"><a href="/2016/08/31/intro-flume-kudu-sink.html">An Introduction to the Flume Kudu Sink</a></h1>
-    <p class="meta">Posted 31 Aug 2016 by Ara Abrahamian</p>
-  </header>
-  <div class="entry-content">
-    
-    <p>This post discusses the Kudu Flume Sink. First, I’ll give some background on why we considered
-using Kudu, what Flume does for us, and how Flume fits with Kudu in our project.</p>
-
-<h2 id="why-kudu">Why Kudu</h2>
-
-<p>Traditionally in the Hadoop ecosystem we’ve dealt with various <em>batch processing</em> technologies such
-as MapReduce and the many libraries and tools built on top of it in various languages (Apache Pig,
-Apache Hive, Apache Oozie and many others). The main problem with this approach is that it needs to
-process the whole data set in batches, again and again, as soon as new data gets added. Things get
-really complicated when a few such tasks need to get chained together, or when the same data set
-needs to be processed in various ways by different jobs, while all compete for the shared cluster
-resources.</p>
-
-<p>The opposite of this approach is <em>stream processing</em>: process the data as soon as it arrives, not
-in batches. Streaming systems such as Spark Streaming, Storm, Kafka Streams, and many others make
-this possible. But writing streaming services is not trivial. The streaming systems are becoming
-more and more capable and support more complex constructs, but they are not yet easy to use. All
-queries and processes need to be carefully planned and implemented.</p>
-
-<p>To summarize, <em>batch processing</em> is:</p>
-
-<ul>
-  <li>file-based</li>
-  <li>a paradigm that processes large chunks of data as a group</li>
-  <li>high latency and high throughput, both for ingest and query</li>
-  <li>typically easy to program, but hard to orchestrate</li>
-  <li>well suited for writing ad-hoc queries, although they are typically high latency</li>
-</ul>
-
-<p>While <em>stream processing</em> is:</p>
-
-<ul>
-  <li>a totally different paradigm, which involves single events and time windows instead of large groups of events</li>
-  <li>still file-based and not a long-term database</li>
-  <li>not batch-oriented, but incremental</li>
-  <li>ultra-fast ingest and ultra-fast query (query results basically pre-calculated)</li>
-  <li>not so easy to program, relatively easy to orchestrate</li>
-  <li>impossible to write ad-hoc queries</li>
-</ul>
-
-<p>And a Kudu-based <em>near real-time</em> approach is:</p>
-
-<ul>
-  <li>flexible and expressive, thanks to SQL support via Apache Impala (incubating)</li>
-  <li>a table-oriented, mutable data store that feels like a traditional relational database</li>
-  <li>very easy to program, you can even pretend it’s good old MySQL</li>
-  <li>low-latency and relatively high throughput, both for ingest and query</li>
-</ul>
-
-<p>At Argyle Data, we’re dealing with complex fraud detection scenarios. We need to ingest massive
-amounts of data, run machine learning algorithms and generate reports. When we created our current
-architecture two years ago we decided to opt for a database as the backbone of our system. That
-database is Apache Accumulo. It’s a key-value based database which runs on top of Hadoop HDFS,
-quite similar to HBase but with some important improvements such as cell level security and ease
-of deployment and management. To enable querying of this data for quite complex reporting and
-analytics, we used Presto, a distributed query engine with a pluggable architecture open-sourced
-by Facebook. We wrote a connector for it to let it run queries against the Accumulo database. This
-architecture has served us well, but there were a few problems:</p>
-
-<ul>
-  <li>we need to ingest even more massive volumes of data in real-time</li>
-  <li>we need to perform complex machine-learning calculations on even larger data-sets</li>
-  <li>we need to support ad-hoc queries, plus long-term data warehouse functionality</li>
-</ul>
-
-<p>So, we’ve started gradually moving the core machine-learning pipeline to a streaming based
-solution. This way we can ingest and process larger data-sets faster in the real-time. But then how
-would we take care of ad-hoc queries and long-term persistence? This is where Kudu comes in. While
-the machine learning pipeline ingests and processes real-time data, we store a copy of the same
-ingested data in Kudu for long-term access and ad-hoc queries. Kudu is our <em>data warehouse</em>. By
-using Kudu and Impala, we can retire our in-house Presto connector and rely on Impala’s
-super-fast query engine.</p>
-
-<p>But how would we make sure data is reliably ingested into the streaming pipeline <em>and</em> the
-Kudu-based data warehouse? This is where Apache Flume comes in.</p>
-
-<h2 id="why-flume">Why Flume</h2>
-
-<p>According to their <a href="http://flume.apache.org/">website</a> “Flume is a distributed, reliable, and
-available service for efficiently collecting, aggregating, and moving large amounts of log data.
-It has a simple and flexible architecture based on streaming data flows. It is robust and fault
-tolerant with tunable reliability mechanisms and many failover and recovery mechanisms.” As you
-can see, nowhere is Hadoop mentioned but Flume is typically used for ingesting data to Hadoop
-clusters.</p>
-
-<p><img src="https://blogs.apache.org/flume/mediaresource/ab0d50f6-a960-42cc-971e-3da38ba3adad" alt="png" /></p>
-
-<p>Flume has an extensible architecture. An instance of Flume, called an <em>agent</em>, can have multiple
-<em>channels</em>, with each having multiple <em>sources</em> and <em>sinks</em> of various types. Sources queue data
-in channels, which in turn write out data to sinks. Such <em>pipelines</em> can be chained together to
-create even more complex ones. There may be more than one agent and agents can be configured to
-support failover and recovery.</p>
-
-<p>Flume comes with a bunch of built-in types of channels, sources and sinks. Memory channel is the
-default (an in-memory queue with no persistence to disk), but other options such as Kafka- and
-File-based channels are also provided. As for the sources, Avro, JMS, Thrift, spooling directory
-source are some of the built-in ones. Flume also ships with many sinks, including sinks for writing
-data to HDFS, HBase, Hive, Kafka, as well as to other Flume agents.</p>
-
-<p>In the rest of this post I’ll go over the Kudu Flume sink and show you how to configure Flume to
-write ingested data to a Kudu table. The sink has been part of the Kudu distribution since the 0.8
-release and the source code can be found <a href="https://github.com/apache/kudu/tree/master/java/kudu-flume-sink">here</a>.</p>
-
-<h2 id="configuring-the-kudu-flume-sink">Configuring the Kudu Flume Sink</h2>
-
-<p>Here is a sample flume configuration file:</p>
-
-<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>agent1.sources  = source1
-agent1.channels = channel1
-agent1.sinks = sink1
-
-agent1.sources.source1.type = exec
-agent1.sources.source1.command = /usr/bin/vmstat 1
-agent1.sources.source1.channels = channel1
-
-agent1.channels.channel1.type = memory
-agent1.channels.channel1.capacity = 10000
-agent1.channels.channel1.transactionCapacity = 1000
-
-agent1.sinks.sink1.type = org.apache.flume.sink.kudu.KuduSink
-agent1.sinks.sink1.masterAddresses = localhost
-agent1.sinks.sink1.tableName = stats
-agent1.sinks.sink1.channel = channel1
-agent1.sinks.sink1.batchSize = 50
-agent1.sinks.sink1.producer = org.apache.kudu.flume.sink.SimpleKuduEventProducer
-</code></pre></div></div>
-
-<p>We define a source called <code class="language-plaintext highlighter-rouge">source1</code> which simply executes a <code class="language-plaintext highlighter-rouge">vmstat</code> command to continuously generate
-virtual memory statistics for the machine and queue events into an in-memory <code class="language-plaintext highlighter-rouge">channel1</code> channel,
-which in turn is used for writing these events to a Kudu table called <code class="language-plaintext highlighter-rouge">stats</code>. We are using
-<code class="language-plaintext highlighter-rouge">org.apache.kudu.flume.sink.SimpleKuduEventProducer</code> as the producer. <code class="language-plaintext highlighter-rouge">SimpleKuduEventProducer</code> is
-the built-in and default producer, but it’s implemented as a showcase for how to write Flume
-events into Kudu tables. For any serious functionality we’d have to write a custom producer. We
-need to make this producer and the <code class="language-plaintext highlighter-rouge">KuduSink</code> class available to Flume. We can do that by simply
-copying the <code class="language-plaintext highlighter-rouge">kudu-flume-sink-&lt;VERSION&gt;.jar</code> jar file from the Kudu distribution to the
-<code class="language-plaintext highlighter-rouge">$FLUME_HOME/plugins.d/kudu-sink/lib</code> directory in the Flume installation. The jar file contains
-<code class="language-plaintext highlighter-rouge">KuduSink</code> and all of its dependencies (including Kudu java client classes).</p>
-
-<p>At a minimum, the Kudu Flume Sink needs to know where the Kudu masters are
-(<code class="language-plaintext highlighter-rouge">agent1.sinks.sink1.masterAddresses = localhost</code>) and which Kudu table should be used for writing
-Flume events to (<code class="language-plaintext highlighter-rouge">agent1.sinks.sink1.tableName = stats</code>). The Kudu Flume Sink doesn’t create this
-table, it has to be created before the Kudu Flume Sink is started.</p>
-
-<p>You may also notice the <code class="language-plaintext highlighter-rouge">batchSize</code> parameter. Batch size is used for batching up to that many
-Flume events and flushing the entire batch in one shot. Tuning batchSize properly can have a huge
-impact on ingest performance of the Kudu cluster.</p>
-
-<p>Here is a complete list of KuduSink parameters:</p>
-
-<table>
-  <thead>
-    <tr>
-      <th>Parameter Name</th>
-      <th>Default</th>
-      <th>Description</th>
-    </tr>
-  </thead>
-  <tbody>
-    <tr>
-      <td>masterAddresses</td>
-      <td>N/A</td>
-      <td>Comma-separated list of “host:port” pairs of the masters (port optional)</td>
-    </tr>
-    <tr>
-      <td>tableName</td>
-      <td>N/A</td>
-      <td>The name of the table in Kudu to write to</td>
-    </tr>
-    <tr>
-      <td>producer</td>
-      <td>org.apache.kudu.flume.sink.SimpleKuduEventProducer</td>
-      <td>The fully qualified class name of the Kudu event producer the sink should use</td>
-    </tr>
-    <tr>
-      <td>batchSize</td>
-      <td>100</td>
-      <td>Maximum number of events the sink should take from the channel per transaction, if available</td>
-    </tr>
-    <tr>
-      <td>timeoutMillis</td>
-      <td>30000</td>
-      <td>Timeout period for Kudu operations, in milliseconds</td>
-    </tr>
-    <tr>
-      <td>ignoreDuplicateRows</td>
-      <td>true</td>
-      <td>Whether to ignore errors indicating that we attempted to insert duplicate rows into Kudu</td>
-    </tr>
-  </tbody>
-</table>
-
-<p>Let’s take a look at the source code for the built-in producer class:</p>
-
-<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="nc">SimpleKuduEventProducer</span> <span class="kd">implements</span> <span class="nc">KuduEventProducer</span> <span class="o">{</span>
-  <span class="kd">private</span> <span class="kt">byte</span><span class="o">[]</span> <span class="n">payload</span><span class="o">;</span>
-  <span class="kd">private</span> <span class="nc">KuduTable</span> <span class="n">table</span><span class="o">;</span>
-  <span class="kd">private</span> <span class="nc">String</span> <span class="n">payloadColumn</span><span class="o">;</span>
-
-  <span class="kd">public</span> <span class="nf">SimpleKuduEventProducer</span><span class="o">(){</span>
-  <span class="o">}</span>
-
-  <span class="nd">@Override</span>
-  <span class="kd">public</span> <span class="kt">void</span> <span class="nf">configure</span><span class="o">(</span><span class="nc">Context</span> <span class="n">context</span><span class="o">)</span> <span class="o">{</span>
-    <span class="n">payloadColumn</span> <span class="o">=</span> <span class="n">context</span><span class="o">.</span><span class="na">getString</span><span class="o">(</span><span class="s">"payloadColumn"</span><span class="o">,</span><span class="s">"payload"</span><span class="o">);</span>
-  <span class="o">}</span>
-
-  <span class="nd">@Override</span>
-  <span class="kd">public</span> <span class="kt">void</span> <span class="nf">configure</span><span class="o">(</span><span class="nc">ComponentConfiguration</span> <span class="n">conf</span><span class="o">)</span> <span class="o">{</span>
-  <span class="o">}</span>
-
-  <span class="nd">@Override</span>
-  <span class="kd">public</span> <span class="kt">void</span> <span class="nf">initialize</span><span class="o">(</span><span class="nc">Event</span> <span class="n">event</span><span class="o">,</span> <span class="nc">KuduTable</span> <span class="n">table</span><span class="o">)</span> <span class="o">{</span>
-    <span class="k">this</span><span class="o">.</span><span class="na">payload</span> <span class="o">=</span> <span class="n">event</span><span class="o">.</span><span class="na">getBody</span><span class="o">();</span>
-    <span class="k">this</span><span class="o">.</span><span class="na">table</span> <span class="o">=</span> <span class="n">table</span><span class="o">;</span>
-  <span class="o">}</span>
-
-  <span class="nd">@Override</span>
-  <span class="kd">public</span> <span class="nc">List</span><span class="o">&lt;</span><span class="nc">Operation</span><span class="o">&gt;</span> <span class="nf">getOperations</span><span class="o">()</span> <span class="kd">throws</span> <span class="nc">FlumeException</span> <span class="o">{</span>
-    <span class="k">try</span> <span class="o">{</span>
-      <span class="nc">Insert</span> <span class="n">insert</span> <span class="o">=</span> <span class="n">table</span><span class="o">.</span><span class="na">newInsert</span><span class="o">();</span>
-      <span class="nc">PartialRow</span> <span class="n">row</span> <span class="o">=</span> <span class="n">insert</span><span class="o">.</span><span class="na">getRow</span><span class="o">();</span>
-      <span class="n">row</span><span class="o">.</span><span class="na">addBinary</span><span class="o">(</span><span class="n">payloadColumn</span><span class="o">,</span> <span class="n">payload</span><span class="o">);</span>
-
-      <span class="k">return</span> <span class="nc">Collections</span><span class="o">.</span><span class="na">singletonList</span><span class="o">((</span><span class="nc">Operation</span><span class="o">)</span> <span class="n">insert</span><span class="o">);</span>
-    <span class="o">}</span> <span class="k">catch</span> <span class="o">(</span><span class="nc">Exception</span> <span class="n">e</span><span class="o">){</span>
-      <span class="k">throw</span> <span class="k">new</span> <span class="nf">FlumeException</span><span class="o">(</span><span class="s">"Failed to create Kudu Insert object!"</span><span class="o">,</span> <span class="n">e</span><span class="o">);</span>
-    <span class="o">}</span>
-  <span class="o">}</span>
-
-  <span class="nd">@Override</span>
-  <span class="kd">public</span> <span class="kt">void</span> <span class="nf">close</span><span class="o">()</span> <span class="o">{</span>
-  <span class="o">}</span>
-<span class="o">}</span>
-</code></pre></div></div>
-
-<p><code class="language-plaintext highlighter-rouge">SimpleKuduEventProducer</code> implements the <code class="language-plaintext highlighter-rouge">org.apache.kudu.flume.sink.KuduEventProducer</code> interface,
-which itself looks like this:</p>
-
-<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">public</span> <span class="kd">interface</span> <span class="nc">KuduEventProducer</span> <span class="kd">extends</span> <span class="nc">Configurable</span><span class="o">,</span> <span class="nc">ConfigurableComponent</span> <span class="o">{</span>
-  <span class="cm">/**
-   * Initialize the event producer.
-   * @param event to be written to Kudu
-   * @param table the KuduTable object used for creating Kudu Operation objects
-   */</span>
-  <span class="kt">void</span> <span class="nf">initialize</span><span class="o">(</span><span class="nc">Event</span> <span class="n">event</span><span class="o">,</span> <span class="nc">KuduTable</span> <span class="n">table</span><span class="o">);</span>
-
-  <span class="cm">/**
-   * Get the operations that should be written out to Kudu as a result of this
-   * event. This list is written to Kudu using the Kudu client API.
-   * @return List of {@link org.kududb.client.Operation} which
-   * are written as such to Kudu
-   */</span>
-  <span class="nc">List</span><span class="o">&lt;</span><span class="nc">Operation</span><span class="o">&gt;</span> <span class="nf">getOperations</span><span class="o">();</span>
-
-  <span class="cm">/*
-   * Clean up any state. This will be called when the sink is being stopped.
-   */</span>
-  <span class="kt">void</span> <span class="nf">close</span><span class="o">();</span>
-<span class="o">}</span>
-</code></pre></div></div>
-
-<p><code class="language-plaintext highlighter-rouge">public void configure(Context context)</code> is called when an instance of our producer is instantiated
-by the KuduSink. SimpleKuduEventProducer’s implementation looks for a producer parameter named
-<code class="language-plaintext highlighter-rouge">payloadColumn</code> and uses its value (“payload” if not overridden in Flume configuration file) as the
-column which will hold the value of the Flume event payload. If you recall from above, we had
-configured the KuduSink to listen for events generated from the <code class="language-plaintext highlighter-rouge">vmstat</code> command. Each output row
-from that command will be stored as a new row containing a <code class="language-plaintext highlighter-rouge">payload</code> column in the <code class="language-plaintext highlighter-rouge">stats</code> table.
-<code class="language-plaintext highlighter-rouge">SimpleKuduEventProducer</code> does not have any configuration parameters, but if it had any we would
-define them by prefixing it with <code class="language-plaintext highlighter-rouge">producer.</code> (<code class="language-plaintext highlighter-rouge">agent1.sinks.sink1.producer.parameter1</code> for
-example).</p>
-
-<p>The main producer logic resides in the <code class="language-plaintext highlighter-rouge">public List&lt;Operation&gt; getOperations()</code> method. In
-SimpleKuduEventProducer’s implementation we simply insert the binary body of the Flume event into
-the Kudu table. Here we call Kudu’s <code class="language-plaintext highlighter-rouge">newInsert()</code> to initiate an insert, but could have used
-<code class="language-plaintext highlighter-rouge">Upsert</code> if updating an existing row was also an option, in fact there’s another producer
-implementation available for doing just that: <code class="language-plaintext highlighter-rouge">SimpleKeyedKuduEventProducer</code>. Most probably you
-will need to write your own custom producer in the real world, but you can base your implementation
-on the built-in ones.</p>
-
-<p>In the future, we plan to add more flexible event producer implementations so that creation of a
-custom event producer is not required to write data to Kudu. See
-<a href="https://gerrit.cloudera.org/#/c/4034/">here</a> for a work-in-progress generic event producer for
-Avro-encoded Events.</p>
-
-<h2 id="conclusion">Conclusion</h2>
-
-<p>Kudu is a scalable data store which lets us ingest insane amounts of data per second. Apache Flume
-helps us aggregate data from various sources, and the Kudu Flume Sink lets us easily store
-the aggregated Flume events into Kudu. Together they enable us to create a data warehouse out of
-disparate sources.</p>
-
-<p><em>Ara Abrahamian is a software engineer at Argyle Data building fraud detection systems using
-sophisticated machine learning methods. Ara is the original author of the Flume Kudu Sink that
-is included in the Kudu distribution. You can follow him on Twitter at
-<a href="https://twitter.com/ara_e">@ara_e</a>.</em></p>
-
-    
-  </div>
-  <div class="read-full">
-    <a class="btn btn-info" href="/2016/08/31/intro-flume-kudu-sink.html">Read full post...</a>
-  </div>
-</article>
-
-
-
 <!-- Pagination links -->
 
 <nav>
@@ -545,6 +253,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -573,8 +283,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/blog/page/8/index.html b/blog/page/8/index.html
index 3663145..a7b204b 100644
--- a/blog/page/8/index.html
+++ b/blog/page/8/index.html
@@ -119,6 +119,319 @@
 <!-- Articles -->
 <article>
   <header>
+    <h1 class="entry-title"><a href="/2016/08/31/intro-flume-kudu-sink.html">An Introduction to the Flume Kudu Sink</a></h1>
+    <p class="meta">Posted 31 Aug 2016 by Ara Abrahamian</p>
+  </header>
+  <div class="entry-content">
+    
+    <p>This post discusses the Kudu Flume Sink. First, I’ll give some background on why we considered
+using Kudu, what Flume does for us, and how Flume fits with Kudu in our project.</p>
+
+<h2 id="why-kudu">Why Kudu</h2>
+
+<p>Traditionally in the Hadoop ecosystem we’ve dealt with various <em>batch processing</em> technologies such
+as MapReduce and the many libraries and tools built on top of it in various languages (Apache Pig,
+Apache Hive, Apache Oozie and many others). The main problem with this approach is that it needs to
+process the whole data set in batches, again and again, as soon as new data gets added. Things get
+really complicated when a few such tasks need to get chained together, or when the same data set
+needs to be processed in various ways by different jobs, while all compete for the shared cluster
+resources.</p>
+
+<p>The opposite of this approach is <em>stream processing</em>: process the data as soon as it arrives, not
+in batches. Streaming systems such as Spark Streaming, Storm, Kafka Streams, and many others make
+this possible. But writing streaming services is not trivial. The streaming systems are becoming
+more and more capable and support more complex constructs, but they are not yet easy to use. All
+queries and processes need to be carefully planned and implemented.</p>
+
+<p>To summarize, <em>batch processing</em> is:</p>
+
+<ul>
+  <li>file-based</li>
+  <li>a paradigm that processes large chunks of data as a group</li>
+  <li>high latency and high throughput, both for ingest and query</li>
+  <li>typically easy to program, but hard to orchestrate</li>
+  <li>well suited for writing ad-hoc queries, although they are typically high latency</li>
+</ul>
+
+<p>While <em>stream processing</em> is:</p>
+
+<ul>
+  <li>a totally different paradigm, which involves single events and time windows instead of large groups of events</li>
+  <li>still file-based and not a long-term database</li>
+  <li>not batch-oriented, but incremental</li>
+  <li>ultra-fast ingest and ultra-fast query (query results basically pre-calculated)</li>
+  <li>not so easy to program, relatively easy to orchestrate</li>
+  <li>impossible to write ad-hoc queries</li>
+</ul>
+
+<p>And a Kudu-based <em>near real-time</em> approach is:</p>
+
+<ul>
+  <li>flexible and expressive, thanks to SQL support via Apache Impala (incubating)</li>
+  <li>a table-oriented, mutable data store that feels like a traditional relational database</li>
+  <li>very easy to program, you can even pretend it’s good old MySQL</li>
+  <li>low-latency and relatively high throughput, both for ingest and query</li>
+</ul>
+
+<p>At Argyle Data, we’re dealing with complex fraud detection scenarios. We need to ingest massive
+amounts of data, run machine learning algorithms and generate reports. When we created our current
+architecture two years ago we decided to opt for a database as the backbone of our system. That
+database is Apache Accumulo. It’s a key-value based database which runs on top of Hadoop HDFS,
+quite similar to HBase but with some important improvements such as cell level security and ease
+of deployment and management. To enable querying of this data for quite complex reporting and
+analytics, we used Presto, a distributed query engine with a pluggable architecture open-sourced
+by Facebook. We wrote a connector for it to let it run queries against the Accumulo database. This
+architecture has served us well, but there were a few problems:</p>
+
+<ul>
+  <li>we need to ingest even more massive volumes of data in real-time</li>
+  <li>we need to perform complex machine-learning calculations on even larger data-sets</li>
+  <li>we need to support ad-hoc queries, plus long-term data warehouse functionality</li>
+</ul>
+
+<p>So, we’ve started gradually moving the core machine-learning pipeline to a streaming based
+solution. This way we can ingest and process larger data-sets faster in the real-time. But then how
+would we take care of ad-hoc queries and long-term persistence? This is where Kudu comes in. While
+the machine learning pipeline ingests and processes real-time data, we store a copy of the same
+ingested data in Kudu for long-term access and ad-hoc queries. Kudu is our <em>data warehouse</em>. By
+using Kudu and Impala, we can retire our in-house Presto connector and rely on Impala’s
+super-fast query engine.</p>
+
+<p>But how would we make sure data is reliably ingested into the streaming pipeline <em>and</em> the
+Kudu-based data warehouse? This is where Apache Flume comes in.</p>
+
+<h2 id="why-flume">Why Flume</h2>
+
+<p>According to their <a href="http://flume.apache.org/">website</a> “Flume is a distributed, reliable, and
+available service for efficiently collecting, aggregating, and moving large amounts of log data.
+It has a simple and flexible architecture based on streaming data flows. It is robust and fault
+tolerant with tunable reliability mechanisms and many failover and recovery mechanisms.” As you
+can see, nowhere is Hadoop mentioned but Flume is typically used for ingesting data to Hadoop
+clusters.</p>
+
+<p><img src="https://blogs.apache.org/flume/mediaresource/ab0d50f6-a960-42cc-971e-3da38ba3adad" alt="png" /></p>
+
+<p>Flume has an extensible architecture. An instance of Flume, called an <em>agent</em>, can have multiple
+<em>channels</em>, with each having multiple <em>sources</em> and <em>sinks</em> of various types. Sources queue data
+in channels, which in turn write out data to sinks. Such <em>pipelines</em> can be chained together to
+create even more complex ones. There may be more than one agent and agents can be configured to
+support failover and recovery.</p>
+
+<p>Flume comes with a bunch of built-in types of channels, sources and sinks. Memory channel is the
+default (an in-memory queue with no persistence to disk), but other options such as Kafka- and
+File-based channels are also provided. As for the sources, Avro, JMS, Thrift, spooling directory
+source are some of the built-in ones. Flume also ships with many sinks, including sinks for writing
+data to HDFS, HBase, Hive, Kafka, as well as to other Flume agents.</p>
+
+<p>In the rest of this post I’ll go over the Kudu Flume sink and show you how to configure Flume to
+write ingested data to a Kudu table. The sink has been part of the Kudu distribution since the 0.8
+release and the source code can be found <a href="https://github.com/apache/kudu/tree/master/java/kudu-flume-sink">here</a>.</p>
+
+<h2 id="configuring-the-kudu-flume-sink">Configuring the Kudu Flume Sink</h2>
+
+<p>Here is a sample flume configuration file:</p>
+
+<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>agent1.sources  = source1
+agent1.channels = channel1
+agent1.sinks = sink1
+
+agent1.sources.source1.type = exec
+agent1.sources.source1.command = /usr/bin/vmstat 1
+agent1.sources.source1.channels = channel1
+
+agent1.channels.channel1.type = memory
+agent1.channels.channel1.capacity = 10000
+agent1.channels.channel1.transactionCapacity = 1000
+
+agent1.sinks.sink1.type = org.apache.flume.sink.kudu.KuduSink
+agent1.sinks.sink1.masterAddresses = localhost
+agent1.sinks.sink1.tableName = stats
+agent1.sinks.sink1.channel = channel1
+agent1.sinks.sink1.batchSize = 50
+agent1.sinks.sink1.producer = org.apache.kudu.flume.sink.SimpleKuduEventProducer
+</code></pre></div></div>
+
+<p>We define a source called <code class="language-plaintext highlighter-rouge">source1</code> which simply executes a <code class="language-plaintext highlighter-rouge">vmstat</code> command to continuously generate
+virtual memory statistics for the machine and queue events into an in-memory <code class="language-plaintext highlighter-rouge">channel1</code> channel,
+which in turn is used for writing these events to a Kudu table called <code class="language-plaintext highlighter-rouge">stats</code>. We are using
+<code class="language-plaintext highlighter-rouge">org.apache.kudu.flume.sink.SimpleKuduEventProducer</code> as the producer. <code class="language-plaintext highlighter-rouge">SimpleKuduEventProducer</code> is
+the built-in and default producer, but it’s implemented as a showcase for how to write Flume
+events into Kudu tables. For any serious functionality we’d have to write a custom producer. We
+need to make this producer and the <code class="language-plaintext highlighter-rouge">KuduSink</code> class available to Flume. We can do that by simply
+copying the <code class="language-plaintext highlighter-rouge">kudu-flume-sink-&lt;VERSION&gt;.jar</code> jar file from the Kudu distribution to the
+<code class="language-plaintext highlighter-rouge">$FLUME_HOME/plugins.d/kudu-sink/lib</code> directory in the Flume installation. The jar file contains
+<code class="language-plaintext highlighter-rouge">KuduSink</code> and all of its dependencies (including Kudu java client classes).</p>
+
+<p>At a minimum, the Kudu Flume Sink needs to know where the Kudu masters are
+(<code class="language-plaintext highlighter-rouge">agent1.sinks.sink1.masterAddresses = localhost</code>) and which Kudu table should be used for writing
+Flume events to (<code class="language-plaintext highlighter-rouge">agent1.sinks.sink1.tableName = stats</code>). The Kudu Flume Sink doesn’t create this
+table, it has to be created before the Kudu Flume Sink is started.</p>
+
+<p>You may also notice the <code class="language-plaintext highlighter-rouge">batchSize</code> parameter. Batch size is used for batching up to that many
+Flume events and flushing the entire batch in one shot. Tuning batchSize properly can have a huge
+impact on ingest performance of the Kudu cluster.</p>
+
+<p>Here is a complete list of KuduSink parameters:</p>
+
+<table>
+  <thead>
+    <tr>
+      <th>Parameter Name</th>
+      <th>Default</th>
+      <th>Description</th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>masterAddresses</td>
+      <td>N/A</td>
+      <td>Comma-separated list of “host:port” pairs of the masters (port optional)</td>
+    </tr>
+    <tr>
+      <td>tableName</td>
+      <td>N/A</td>
+      <td>The name of the table in Kudu to write to</td>
+    </tr>
+    <tr>
+      <td>producer</td>
+      <td>org.apache.kudu.flume.sink.SimpleKuduEventProducer</td>
+      <td>The fully qualified class name of the Kudu event producer the sink should use</td>
+    </tr>
+    <tr>
+      <td>batchSize</td>
+      <td>100</td>
+      <td>Maximum number of events the sink should take from the channel per transaction, if available</td>
+    </tr>
+    <tr>
+      <td>timeoutMillis</td>
+      <td>30000</td>
+      <td>Timeout period for Kudu operations, in milliseconds</td>
+    </tr>
+    <tr>
+      <td>ignoreDuplicateRows</td>
+      <td>true</td>
+      <td>Whether to ignore errors indicating that we attempted to insert duplicate rows into Kudu</td>
+    </tr>
+  </tbody>
+</table>
+
+<p>Let’s take a look at the source code for the built-in producer class:</p>
+
+<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="nc">SimpleKuduEventProducer</span> <span class="kd">implements</span> <span class="nc">KuduEventProducer</span> <span class="o">{</span>
+  <span class="kd">private</span> <span class="kt">byte</span><span class="o">[]</span> <span class="n">payload</span><span class="o">;</span>
+  <span class="kd">private</span> <span class="nc">KuduTable</span> <span class="n">table</span><span class="o">;</span>
+  <span class="kd">private</span> <span class="nc">String</span> <span class="n">payloadColumn</span><span class="o">;</span>
+
+  <span class="kd">public</span> <span class="nf">SimpleKuduEventProducer</span><span class="o">(){</span>
+  <span class="o">}</span>
+
+  <span class="nd">@Override</span>
+  <span class="kd">public</span> <span class="kt">void</span> <span class="nf">configure</span><span class="o">(</span><span class="nc">Context</span> <span class="n">context</span><span class="o">)</span> <span class="o">{</span>
+    <span class="n">payloadColumn</span> <span class="o">=</span> <span class="n">context</span><span class="o">.</span><span class="na">getString</span><span class="o">(</span><span class="s">"payloadColumn"</span><span class="o">,</span><span class="s">"payload"</span><span class="o">);</span>
+  <span class="o">}</span>
+
+  <span class="nd">@Override</span>
+  <span class="kd">public</span> <span class="kt">void</span> <span class="nf">configure</span><span class="o">(</span><span class="nc">ComponentConfiguration</span> <span class="n">conf</span><span class="o">)</span> <span class="o">{</span>
+  <span class="o">}</span>
+
+  <span class="nd">@Override</span>
+  <span class="kd">public</span> <span class="kt">void</span> <span class="nf">initialize</span><span class="o">(</span><span class="nc">Event</span> <span class="n">event</span><span class="o">,</span> <span class="nc">KuduTable</span> <span class="n">table</span><span class="o">)</span> <span class="o">{</span>
+    <span class="k">this</span><span class="o">.</span><span class="na">payload</span> <span class="o">=</span> <span class="n">event</span><span class="o">.</span><span class="na">getBody</span><span class="o">();</span>
+    <span class="k">this</span><span class="o">.</span><span class="na">table</span> <span class="o">=</span> <span class="n">table</span><span class="o">;</span>
+  <span class="o">}</span>
+
+  <span class="nd">@Override</span>
+  <span class="kd">public</span> <span class="nc">List</span><span class="o">&lt;</span><span class="nc">Operation</span><span class="o">&gt;</span> <span class="nf">getOperations</span><span class="o">()</span> <span class="kd">throws</span> <span class="nc">FlumeException</span> <span class="o">{</span>
+    <span class="k">try</span> <span class="o">{</span>
+      <span class="nc">Insert</span> <span class="n">insert</span> <span class="o">=</span> <span class="n">table</span><span class="o">.</span><span class="na">newInsert</span><span class="o">();</span>
+      <span class="nc">PartialRow</span> <span class="n">row</span> <span class="o">=</span> <span class="n">insert</span><span class="o">.</span><span class="na">getRow</span><span class="o">();</span>
+      <span class="n">row</span><span class="o">.</span><span class="na">addBinary</span><span class="o">(</span><span class="n">payloadColumn</span><span class="o">,</span> <span class="n">payload</span><span class="o">);</span>
+
+      <span class="k">return</span> <span class="nc">Collections</span><span class="o">.</span><span class="na">singletonList</span><span class="o">((</span><span class="nc">Operation</span><span class="o">)</span> <span class="n">insert</span><span class="o">);</span>
+    <span class="o">}</span> <span class="k">catch</span> <span class="o">(</span><span class="nc">Exception</span> <span class="n">e</span><span class="o">){</span>
+      <span class="k">throw</span> <span class="k">new</span> <span class="nf">FlumeException</span><span class="o">(</span><span class="s">"Failed to create Kudu Insert object!"</span><span class="o">,</span> <span class="n">e</span><span class="o">);</span>
+    <span class="o">}</span>
+  <span class="o">}</span>
+
+  <span class="nd">@Override</span>
+  <span class="kd">public</span> <span class="kt">void</span> <span class="nf">close</span><span class="o">()</span> <span class="o">{</span>
+  <span class="o">}</span>
+<span class="o">}</span>
+</code></pre></div></div>
+
+<p><code class="language-plaintext highlighter-rouge">SimpleKuduEventProducer</code> implements the <code class="language-plaintext highlighter-rouge">org.apache.kudu.flume.sink.KuduEventProducer</code> interface,
+which itself looks like this:</p>
+
+<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">public</span> <span class="kd">interface</span> <span class="nc">KuduEventProducer</span> <span class="kd">extends</span> <span class="nc">Configurable</span><span class="o">,</span> <span class="nc">ConfigurableComponent</span> <span class="o">{</span>
+  <span class="cm">/**
+   * Initialize the event producer.
+   * @param event to be written to Kudu
+   * @param table the KuduTable object used for creating Kudu Operation objects
+   */</span>
+  <span class="kt">void</span> <span class="nf">initialize</span><span class="o">(</span><span class="nc">Event</span> <span class="n">event</span><span class="o">,</span> <span class="nc">KuduTable</span> <span class="n">table</span><span class="o">);</span>
+
+  <span class="cm">/**
+   * Get the operations that should be written out to Kudu as a result of this
+   * event. This list is written to Kudu using the Kudu client API.
+   * @return List of {@link org.kududb.client.Operation} which
+   * are written as such to Kudu
+   */</span>
+  <span class="nc">List</span><span class="o">&lt;</span><span class="nc">Operation</span><span class="o">&gt;</span> <span class="nf">getOperations</span><span class="o">();</span>
+
+  <span class="cm">/*
+   * Clean up any state. This will be called when the sink is being stopped.
+   */</span>
+  <span class="kt">void</span> <span class="nf">close</span><span class="o">();</span>
+<span class="o">}</span>
+</code></pre></div></div>
+
+<p><code class="language-plaintext highlighter-rouge">public void configure(Context context)</code> is called when an instance of our producer is instantiated
+by the KuduSink. SimpleKuduEventProducer’s implementation looks for a producer parameter named
+<code class="language-plaintext highlighter-rouge">payloadColumn</code> and uses its value (“payload” if not overridden in Flume configuration file) as the
+column which will hold the value of the Flume event payload. If you recall from above, we had
+configured the KuduSink to listen for events generated from the <code class="language-plaintext highlighter-rouge">vmstat</code> command. Each output row
+from that command will be stored as a new row containing a <code class="language-plaintext highlighter-rouge">payload</code> column in the <code class="language-plaintext highlighter-rouge">stats</code> table.
+<code class="language-plaintext highlighter-rouge">SimpleKuduEventProducer</code> does not have any configuration parameters, but if it had any we would
+define them by prefixing it with <code class="language-plaintext highlighter-rouge">producer.</code> (<code class="language-plaintext highlighter-rouge">agent1.sinks.sink1.producer.parameter1</code> for
+example).</p>
+
+<p>The main producer logic resides in the <code class="language-plaintext highlighter-rouge">public List&lt;Operation&gt; getOperations()</code> method. In
+SimpleKuduEventProducer’s implementation we simply insert the binary body of the Flume event into
+the Kudu table. Here we call Kudu’s <code class="language-plaintext highlighter-rouge">newInsert()</code> to initiate an insert, but could have used
+<code class="language-plaintext highlighter-rouge">Upsert</code> if updating an existing row was also an option, in fact there’s another producer
+implementation available for doing just that: <code class="language-plaintext highlighter-rouge">SimpleKeyedKuduEventProducer</code>. Most probably you
+will need to write your own custom producer in the real world, but you can base your implementation
+on the built-in ones.</p>
+
+<p>In the future, we plan to add more flexible event producer implementations so that creation of a
+custom event producer is not required to write data to Kudu. See
+<a href="https://gerrit.cloudera.org/#/c/4034/">here</a> for a work-in-progress generic event producer for
+Avro-encoded Events.</p>
+
+<h2 id="conclusion">Conclusion</h2>
+
+<p>Kudu is a scalable data store which lets us ingest insane amounts of data per second. Apache Flume
+helps us aggregate data from various sources, and the Kudu Flume Sink lets us easily store
+the aggregated Flume events into Kudu. Together they enable us to create a data warehouse out of
+disparate sources.</p>
+
+<p><em>Ara Abrahamian is a software engineer at Argyle Data building fraud detection systems using
+sophisticated machine learning methods. Ara is the original author of the Flume Kudu Sink that
+is included in the Kudu distribution. You can follow him on Twitter at
+<a href="https://twitter.com/ara_e">@ara_e</a>.</em></p>
+
+    
+  </div>
+  <div class="read-full">
+    <a class="btn btn-info" href="/2016/08/31/intro-flume-kudu-sink.html">Read full post...</a>
+  </div>
+</article>
+
+
+
+<!-- Articles -->
+<article>
+  <header>
     <h1 class="entry-title"><a href="/2016/08/23/new-range-partitioning-features.html">New Range Partitioning Features in Kudu 0.10</a></h1>
     <p class="meta">Posted 23 Aug 2016 by Dan Burkert</p>
   </header>
@@ -202,27 +515,6 @@
 
 
 
-<!-- Articles -->
-<article>
-  <header>
-    <h1 class="entry-title"><a href="/2016/07/26/weekly-update.html">Apache Kudu Weekly Update July 26, 2016</a></h1>
-    <p class="meta">Posted 26 Jul 2016 by Jean-Daniel Cryans</p>
-  </header>
-  <div class="entry-content">
-    
-    <p>Welcome to the eighteenth edition of the Kudu Weekly Update. This weekly blog post
-covers ongoing development and news in the Apache Kudu project.</p>
-
-
-    
-  </div>
-  <div class="read-full">
-    <a class="btn btn-info" href="/2016/07/26/weekly-update.html">Read full post...</a>
-  </div>
-</article>
-
-
-
 <!-- Pagination links -->
 
 <nav>
@@ -243,6 +535,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -271,8 +565,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/blog/page/9/index.html b/blog/page/9/index.html
index 5cef358..b99be24 100644
--- a/blog/page/9/index.html
+++ b/blog/page/9/index.html
@@ -119,6 +119,27 @@
 <!-- Articles -->
 <article>
   <header>
+    <h1 class="entry-title"><a href="/2016/07/26/weekly-update.html">Apache Kudu Weekly Update July 26, 2016</a></h1>
+    <p class="meta">Posted 26 Jul 2016 by Jean-Daniel Cryans</p>
+  </header>
+  <div class="entry-content">
+    
+    <p>Welcome to the eighteenth edition of the Kudu Weekly Update. This weekly blog post
+covers ongoing development and news in the Apache Kudu project.</p>
+
+
+    
+  </div>
+  <div class="read-full">
+    <a class="btn btn-info" href="/2016/07/26/weekly-update.html">Read full post...</a>
+  </div>
+</article>
+
+
+
+<!-- Articles -->
+<article>
+  <header>
     <h1 class="entry-title"><a href="/2016/07/25/asf-graduation.html">The Apache Software Foundation Announces Apache&reg; Kudu&trade; as a Top-Level Project</a></h1>
     <p class="meta">Posted 25 Jul 2016 by Jean-Daniel Cryans</p>
   </header>
@@ -210,27 +231,6 @@
 
 
 
-<!-- Articles -->
-<article>
-  <header>
-    <h1 class="entry-title"><a href="/2016/06/27/weekly-update.html">Apache Kudu (incubating) Weekly Update June 27, 2016</a></h1>
-    <p class="meta">Posted 27 Jun 2016 by Todd Lipcon</p>
-  </header>
-  <div class="entry-content">
-    
-    <p>Welcome to the fifteenth edition of the Kudu Weekly Update. This weekly blog post
-covers ongoing development and news in the Apache Kudu (incubating) project.</p>
-
-
-    
-  </div>
-  <div class="read-full">
-    <a class="btn btn-info" href="/2016/06/27/weekly-update.html">Read full post...</a>
-  </div>
-</article>
-
-
-
 <!-- Pagination links -->
 
 <nav>
@@ -251,6 +251,8 @@
     <h3>Recent posts</h3>
     <ul>
     
+      <li> <a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a> </li>
+    
       <li> <a href="/2020/09/21/apache-kudu-1-13-0-release.html">Apache Kudu 1.13.0 released</a> </li>
     
       <li> <a href="/2020/08/11/fine-grained-authz-ranger.html">Fine-Grained Authorization with Apache Kudu and Apache Ranger</a> </li>
@@ -279,8 +281,6 @@
     
       <li> <a href="/2018/10/26/apache-kudu-1-8-0-released.html">Apache Kudu 1.8.0 Released</a> </li>
     
-      <li> <a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a> </li>
-    
     </ul>
   </div>
 </div>
diff --git a/cpp-client-api/annotated.html b/cpp-client-api/annotated.html
index e8a9499..923bc58 100644
--- a/cpp-client-api/annotated.html
+++ b/cpp-client-api/annotated.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.19"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>Kudu C++ client API: Class List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -29,10 +29,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.19 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -71,66 +71,71 @@
 <tr id="row_0_0_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_0_" class="arrow" onclick="toggleFolder('0_0_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><b>client</b></td><td class="desc"></td></tr>
 <tr id="row_0_0_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_0_0_0_" class="arrow" onclick="toggleFolder('0_0_0_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><b>internal</b></td><td class="desc"></td></tr>
 <tr id="row_0_0_0_0_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1internal_1_1AsyncLeaderMasterRpc.html" target="_self">AsyncLeaderMasterRpc</a></td><td class="desc"></td></tr>
-<tr id="row_0_0_1_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduBloomFilter.html" target="_self">KuduBloomFilter</a></td><td class="desc">Bloom filter to be used with IN Bloom filter predicate </td></tr>
-<tr id="row_0_0_2_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduBloomFilterBuilder.html" target="_self">KuduBloomFilterBuilder</a></td><td class="desc">Builder class to help build <code><a class="el" href="classkudu_1_1client_1_1KuduBloomFilter.html" title="Bloom filter to be used with IN Bloom filter predicate.">KuduBloomFilter</a></code> to be used with IN Bloom filter predicate </td></tr>
-<tr id="row_0_0_3_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduClient.html" target="_self">KuduClient</a></td><td class="desc">A handle for a connection to a cluster </td></tr>
-<tr id="row_0_0_4_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html" target="_self">KuduClientBuilder</a></td><td class="desc">A "factory" for <a class="el" href="classkudu_1_1client_1_1KuduClient.html" title="A handle for a connection to a cluster.">KuduClient</a> objects </td></tr>
-<tr id="row_0_0_5_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduColumnarScanBatch.html" target="_self">KuduColumnarScanBatch</a></td><td class="desc">A batch of columnar data returned from a scanner </td></tr>
-<tr id="row_0_0_6_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduColumnSchema.html" target="_self">KuduColumnSchema</a></td><td class="desc">Representation of the column schema </td></tr>
-<tr id="row_0_0_7_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduColumnSpec.html" target="_self">KuduColumnSpec</a></td><td class="desc">Builder API for specifying or altering a column within a table schema </td></tr>
-<tr id="row_0_0_8_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduColumnStorageAttributes.html" target="_self">KuduColumnStorageAttributes</a></td><td class="desc">Representation of column storage attributes </td></tr>
-<tr id="row_0_0_9_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduColumnTypeAttributes.html" target="_self">KuduColumnTypeAttributes</a></td><td class="desc">Representation of column type attributes </td></tr>
-<tr id="row_0_0_10_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduDelete.html" target="_self">KuduDelete</a></td><td class="desc">A single row delete to be sent to the cluster </td></tr>
-<tr id="row_0_0_11_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduError.html" target="_self">KuduError</a></td><td class="desc">This class represents an error which occurred in a write operation </td></tr>
-<tr id="row_0_0_12_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduInsert.html" target="_self">KuduInsert</a></td><td class="desc">A single row insert to be sent to the cluster </td></tr>
-<tr id="row_0_0_13_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduInsertIgnore.html" target="_self">KuduInsertIgnore</a></td><td class="desc">A single row insert ignore to be sent to the cluster, duplicate row errors are ignored </td></tr>
-<tr id="row_0_0_14_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduLoggingCallback.html" target="_self">KuduLoggingCallback</a></td><td class="desc">The interface for all logging callbacks </td></tr>
-<tr id="row_0_0_15_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduLoggingFunctionCallback.html" target="_self">KuduLoggingFunctionCallback</a></td><td class="desc">The logging callback that invokes a function by pointer with a single argument </td></tr>
-<tr id="row_0_0_16_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduLoggingMemberCallback.html" target="_self">KuduLoggingMemberCallback</a></td><td class="desc">The logging callback that invokes a member function of an object </td></tr>
-<tr id="row_0_0_17_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduPartitioner.html" target="_self">KuduPartitioner</a></td><td class="desc"></td></tr>
-<tr id="row_0_0_18_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduPartitionerBuilder.html" target="_self">KuduPartitionerBuilder</a></td><td class="desc">Builder for Partitioner instances </td></tr>
-<tr id="row_0_0_19_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduPredicate.html" target="_self">KuduPredicate</a></td><td class="desc">A representation of comparison predicate for Kudu queries </td></tr>
-<tr id="row_0_0_20_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduReplica.html" target="_self">KuduReplica</a></td><td class="desc">In-memory representation of a remote tablet's replica </td></tr>
-<tr id="row_0_0_21_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduScanBatch.html" target="_self">KuduScanBatch</a></td><td class="desc">A batch of zero or more rows returned by a scan operation </td></tr>
-<tr id="row_0_0_22_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduScanner.html" target="_self">KuduScanner</a></td><td class="desc">This class is a representation of a single scan </td></tr>
-<tr id="row_0_0_23_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduScanToken.html" target="_self">KuduScanToken</a></td><td class="desc">A scan descriptor limited to a single physical contiguous location </td></tr>
-<tr id="row_0_0_24_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduScanTokenBuilder.html" target="_self">KuduScanTokenBuilder</a></td><td class="desc">Builds scan tokens for a table </td></tr>
-<tr id="row_0_0_25_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduSchema.html" target="_self">KuduSchema</a></td><td class="desc">A representation of a table's schema </td></tr>
-<tr id="row_0_0_26_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduSchemaBuilder.html" target="_self">KuduSchemaBuilder</a></td><td class="desc">Builder API for constructing a <a class="el" href="classkudu_1_1client_1_1KuduSchema.html" title="A representation of a table&#39;s schema.">KuduSchema</a> object </td></tr>
-<tr id="row_0_0_27_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduSession.html" target="_self">KuduSession</a></td><td class="desc">Representation of a Kudu client session </td></tr>
-<tr id="row_0_0_28_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduStatusCallback.html" target="_self">KuduStatusCallback</a></td><td class="desc">The interface for all status callbacks </td></tr>
-<tr id="row_0_0_29_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduStatusFunctionCallback.html" target="_self">KuduStatusFunctionCallback</a></td><td class="desc">The status callback that invokes a function by pointer with a single argument </td></tr>
-<tr id="row_0_0_30_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduStatusMemberCallback.html" target="_self">KuduStatusMemberCallback</a></td><td class="desc">The status callback that invokes a member function of an object </td></tr>
-<tr id="row_0_0_31_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduTable.html" target="_self">KuduTable</a></td><td class="desc">A representation of a table on a particular cluster </td></tr>
-<tr id="row_0_0_32_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduTableAlterer.html" target="_self">KuduTableAlterer</a></td><td class="desc">Alters an existing table based on the provided steps </td></tr>
-<tr id="row_0_0_33_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduTableCreator.html" target="_self">KuduTableCreator</a></td><td class="desc">A helper class to create a new table with the desired options </td></tr>
-<tr id="row_0_0_34_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduTableStatistics.html" target="_self">KuduTableStatistics</a></td><td class="desc">In-memory statistics of table </td></tr>
-<tr id="row_0_0_35_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduTablet.html" target="_self">KuduTablet</a></td><td class="desc">In-memory representation of a remote tablet </td></tr>
-<tr id="row_0_0_36_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduTabletServer.html" target="_self">KuduTabletServer</a></td><td class="desc">In-memory representation of a remote tablet server </td></tr>
-<tr id="row_0_0_37_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduUpdate.html" target="_self">KuduUpdate</a></td><td class="desc">A single row update to be sent to the cluster </td></tr>
-<tr id="row_0_0_38_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduUpsert.html" target="_self">KuduUpsert</a></td><td class="desc">A single row upsert to be sent to the cluster </td></tr>
-<tr id="row_0_0_39_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduValue.html" target="_self">KuduValue</a></td><td class="desc">A constant cell value with a specific type </td></tr>
-<tr id="row_0_0_40_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html" target="_self">KuduWriteOperation</a></td><td class="desc">A single-row write operation to be sent to a Kudu table </td></tr>
-<tr id="row_0_0_41_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1ResourceMetrics.html" target="_self">ResourceMetrics</a></td><td class="desc">A generic catalog of simple metrics </td></tr>
-<tr id="row_0_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_1_" class="arrow" onclick="toggleFolder('0_1_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><b>internal_logging</b></td><td class="desc"></td></tr>
-<tr id="row_0_1_0_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1internal__logging_1_1CerrLog.html" target="_self">CerrLog</a></td><td class="desc">A helper for stderr log sink </td></tr>
-<tr id="row_0_1_1_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1internal__logging_1_1NullLog.html" target="_self">NullLog</a></td><td class="desc">A helper for the nil log sink </td></tr>
-<tr id="row_0_2_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1MonoDelta.html" target="_self">MonoDelta</a></td><td class="desc">A representation of a time interval </td></tr>
-<tr id="row_0_3_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1MonoTime.html" target="_self">MonoTime</a></td><td class="desc">Representation of a particular point in time </td></tr>
-<tr id="row_0_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_4_" class="arrow" onclick="toggleFolder('0_4_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1Slice.html" target="_self">Slice</a></td><td class="desc">A wrapper around externally allocated data </td></tr>
-<tr id="row_0_4_0_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structkudu_1_1Slice_1_1Comparator.html" target="_self">Comparator</a></td><td class="desc"><a class="el" href="structkudu_1_1Slice_1_1Comparator.html" title="Comparator struct, useful for ordered collections (like STL maps).">Comparator</a> struct, useful for ordered collections (like STL maps) </td></tr>
-<tr id="row_0_5_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structkudu_1_1SliceMap.html" target="_self">SliceMap</a></td><td class="desc">STL map whose keys are Slices </td></tr>
-<tr id="row_0_6_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1Status.html" target="_self">Status</a></td><td class="desc">A representation of an operation's outcome </td></tr>
-<tr id="row_1_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classKuduPartialRow.html" target="_self">KuduPartialRow</a></td><td class="desc">A row which may only contain values for a subset of the columns </td></tr>
+<tr id="row_0_0_0_1_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1internal_1_1AsyncRandomTxnManagerRpc.html" target="_self">AsyncRandomTxnManagerRpc</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_1_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduLoggingCallback.html" target="_self">KuduLoggingCallback</a></td><td class="desc">The interface for all logging callbacks </td></tr>
+<tr id="row_0_0_2_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduLoggingMemberCallback.html" target="_self">KuduLoggingMemberCallback</a></td><td class="desc">The logging callback that invokes a member function of an object </td></tr>
+<tr id="row_0_0_3_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduLoggingFunctionCallback.html" target="_self">KuduLoggingFunctionCallback</a></td><td class="desc">The logging callback that invokes a function by pointer with a single argument </td></tr>
+<tr id="row_0_0_4_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduStatusCallback.html" target="_self">KuduStatusCallback</a></td><td class="desc">The interface for all status callbacks </td></tr>
+<tr id="row_0_0_5_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduStatusMemberCallback.html" target="_self">KuduStatusMemberCallback</a></td><td class="desc">The status callback that invokes a member function of an object </td></tr>
+<tr id="row_0_0_6_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduStatusFunctionCallback.html" target="_self">KuduStatusFunctionCallback</a></td><td class="desc">The status callback that invokes a function by pointer with a single argument </td></tr>
+<tr id="row_0_0_7_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html" target="_self">KuduClientBuilder</a></td><td class="desc">A "factory" for <a class="el" href="classkudu_1_1client_1_1KuduClient.html" title="A handle for a connection to a cluster.">KuduClient</a> objects </td></tr>
+<tr id="row_0_0_8_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_0_0_8_" class="arrow" onclick="toggleFolder('0_0_8_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduTransaction.html" target="_self">KuduTransaction</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_8_0_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduTransaction_1_1SerializationOptions.html" target="_self">SerializationOptions</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_9_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduClient.html" target="_self">KuduClient</a></td><td class="desc">A handle for a connection to a cluster </td></tr>
+<tr id="row_0_0_10_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduTabletServer.html" target="_self">KuduTabletServer</a></td><td class="desc">In-memory representation of a remote tablet server </td></tr>
+<tr id="row_0_0_11_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduReplica.html" target="_self">KuduReplica</a></td><td class="desc">In-memory representation of a remote tablet's replica </td></tr>
+<tr id="row_0_0_12_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduTablet.html" target="_self">KuduTablet</a></td><td class="desc">In-memory representation of a remote tablet </td></tr>
+<tr id="row_0_0_13_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduTableCreator.html" target="_self">KuduTableCreator</a></td><td class="desc">A helper class to create a new table with the desired options </td></tr>
+<tr id="row_0_0_14_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduTableStatistics.html" target="_self">KuduTableStatistics</a></td><td class="desc">In-memory statistics of table </td></tr>
+<tr id="row_0_0_15_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduTable.html" target="_self">KuduTable</a></td><td class="desc">A representation of a table on a particular cluster </td></tr>
+<tr id="row_0_0_16_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduTableAlterer.html" target="_self">KuduTableAlterer</a></td><td class="desc">Alters an existing table based on the provided steps </td></tr>
+<tr id="row_0_0_17_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduError.html" target="_self">KuduError</a></td><td class="desc">This class represents an error which occurred in a write operation </td></tr>
+<tr id="row_0_0_18_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduSession.html" target="_self">KuduSession</a></td><td class="desc">Representation of a Kudu client session </td></tr>
+<tr id="row_0_0_19_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduScanner.html" target="_self">KuduScanner</a></td><td class="desc">This class is a representation of a single scan </td></tr>
+<tr id="row_0_0_20_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduScanToken.html" target="_self">KuduScanToken</a></td><td class="desc">A scan descriptor limited to a single physical contiguous location </td></tr>
+<tr id="row_0_0_21_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduScanTokenBuilder.html" target="_self">KuduScanTokenBuilder</a></td><td class="desc">Builds scan tokens for a table </td></tr>
+<tr id="row_0_0_22_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduPartitionerBuilder.html" target="_self">KuduPartitionerBuilder</a></td><td class="desc">Builder for Partitioner instances </td></tr>
+<tr id="row_0_0_23_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduPartitioner.html" target="_self">KuduPartitioner</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_24_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduColumnarScanBatch.html" target="_self">KuduColumnarScanBatch</a></td><td class="desc">A batch of columnar data returned from a scanner </td></tr>
+<tr id="row_0_0_25_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1ResourceMetrics.html" target="_self">ResourceMetrics</a></td><td class="desc">A generic catalog of simple metrics </td></tr>
+<tr id="row_0_0_26_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduScanBatch.html" target="_self">KuduScanBatch</a></td><td class="desc">A batch of zero or more rows returned by a scan operation </td></tr>
+<tr id="row_0_0_27_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduPredicate.html" target="_self">KuduPredicate</a></td><td class="desc">A representation of comparison predicate for Kudu queries </td></tr>
+<tr id="row_0_0_28_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduBloomFilter.html" target="_self">KuduBloomFilter</a></td><td class="desc">Bloom filter to be used with IN Bloom filter predicate </td></tr>
+<tr id="row_0_0_29_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduBloomFilterBuilder.html" target="_self">KuduBloomFilterBuilder</a></td><td class="desc">Builder class to help build <code><a class="el" href="classkudu_1_1client_1_1KuduBloomFilter.html" title="Bloom filter to be used with IN Bloom filter predicate.">KuduBloomFilter</a></code> to be used with IN Bloom filter predicate </td></tr>
+<tr id="row_0_0_30_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduColumnTypeAttributes.html" target="_self">KuduColumnTypeAttributes</a></td><td class="desc">Representation of column type attributes </td></tr>
+<tr id="row_0_0_31_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduColumnStorageAttributes.html" target="_self">KuduColumnStorageAttributes</a></td><td class="desc">Representation of column storage attributes </td></tr>
+<tr id="row_0_0_32_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduColumnSchema.html" target="_self">KuduColumnSchema</a></td><td class="desc">Representation of the column schema </td></tr>
+<tr id="row_0_0_33_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduColumnSpec.html" target="_self">KuduColumnSpec</a></td><td class="desc">Builder API for specifying or altering a column within a table schema </td></tr>
+<tr id="row_0_0_34_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduSchemaBuilder.html" target="_self">KuduSchemaBuilder</a></td><td class="desc">Builder API for constructing a <a class="el" href="classkudu_1_1client_1_1KuduSchema.html" title="A representation of a table&#39;s schema.">KuduSchema</a> object </td></tr>
+<tr id="row_0_0_35_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduSchema.html" target="_self">KuduSchema</a></td><td class="desc">A representation of a table's schema </td></tr>
+<tr id="row_0_0_36_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduValue.html" target="_self">KuduValue</a></td><td class="desc">A constant cell value with a specific type </td></tr>
+<tr id="row_0_0_37_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html" target="_self">KuduWriteOperation</a></td><td class="desc">A single-row write operation to be sent to a Kudu table </td></tr>
+<tr id="row_0_0_38_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduInsert.html" target="_self">KuduInsert</a></td><td class="desc">A single row insert to be sent to the cluster </td></tr>
+<tr id="row_0_0_39_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduInsertIgnore.html" target="_self">KuduInsertIgnore</a></td><td class="desc">A single row insert ignore to be sent to the cluster, duplicate row errors are ignored </td></tr>
+<tr id="row_0_0_40_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduUpsert.html" target="_self">KuduUpsert</a></td><td class="desc">A single row upsert to be sent to the cluster </td></tr>
+<tr id="row_0_0_41_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduUpdate.html" target="_self">KuduUpdate</a></td><td class="desc">A single row update to be sent to the cluster </td></tr>
+<tr id="row_0_0_42_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduUpdateIgnore.html" target="_self">KuduUpdateIgnore</a></td><td class="desc">A single row update ignore to be sent to the cluster, missing row errors are ignored </td></tr>
+<tr id="row_0_0_43_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduDelete.html" target="_self">KuduDelete</a></td><td class="desc">A single row delete to be sent to the cluster </td></tr>
+<tr id="row_0_0_44_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1client_1_1KuduDeleteIgnore.html" target="_self">KuduDeleteIgnore</a></td><td class="desc">A single row delete ignore to be sent to the cluster </td></tr>
+<tr id="row_0_1_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_1_" class="arrow" onclick="toggleFolder('0_1_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><b>internal_logging</b></td><td class="desc"></td></tr>
+<tr id="row_0_1_0_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1internal__logging_1_1NullLog.html" target="_self">NullLog</a></td><td class="desc">A helper for the nil log sink </td></tr>
+<tr id="row_0_1_1_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1internal__logging_1_1CerrLog.html" target="_self">CerrLog</a></td><td class="desc">A helper for stderr log sink </td></tr>
+<tr id="row_0_2_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1MonoDelta.html" target="_self">MonoDelta</a></td><td class="desc">A representation of a time interval </td></tr>
+<tr id="row_0_3_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1MonoTime.html" target="_self">MonoTime</a></td><td class="desc">Representation of a particular point in time </td></tr>
+<tr id="row_0_4_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_4_" class="arrow" onclick="toggleFolder('0_4_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1Slice.html" target="_self">Slice</a></td><td class="desc">A wrapper around externally allocated data </td></tr>
+<tr id="row_0_4_0_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structkudu_1_1Slice_1_1Comparator.html" target="_self">Comparator</a></td><td class="desc"><a class="el" href="structkudu_1_1Slice_1_1Comparator.html" title="Comparator struct, useful for ordered collections (like STL maps).">Comparator</a> struct, useful for ordered collections (like STL maps) </td></tr>
+<tr id="row_0_5_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structkudu_1_1SliceMap.html" target="_self">SliceMap</a></td><td class="desc">STL map whose keys are Slices </td></tr>
+<tr id="row_0_6_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classkudu_1_1Status.html" target="_self">Status</a></td><td class="desc">A representation of an operation's outcome </td></tr>
+<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classKuduPartialRow.html" target="_self">KuduPartialRow</a></td><td class="desc">A row which may only contain values for a subset of the columns </td></tr>
 </table>
 </div><!-- directory -->
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/>
 <address class="footer">
-  <small>Generated for Kudu version 1.13.0 on Fri Sep 18 2020 15:03:20 by Doxygen 1.8.19</small>
+  <small>Generated for Kudu version 1.14.0 on Thu Jan 28 2021 11:11:20 by Doxygen 1.9.1</small>
   <br>
-  <small>Copyright © 2020 The Apache Software Foundation.</small>
+  <small>Copyright © 2021 The Apache Software Foundation.</small>
 </address>
 </body>
 </html>
diff --git a/cpp-client-api/callbacks_8h_source.html b/cpp-client-api/callbacks_8h_source.html
index 28cb67e..b907276 100644
--- a/cpp-client-api/callbacks_8h_source.html
+++ b/cpp-client-api/callbacks_8h_source.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.19"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>Kudu C++ client API: include/kudu/client/callbacks.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -29,10 +29,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.19 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -247,30 +247,30 @@
 <div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;} <span class="comment">// namespace kudu</span></div>
 <div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160; </div>
 <div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;<span class="preprocessor">#endif</span></div>
-</div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="aclasskudu_1_1client_1_1KuduStatusMemberCallback_html_acdb02b9798adf2c80b39cfb024f199aa"><div class="ttname"><a href="classkudu_1_1client_1_1KuduStatusMemberCallback.html#acdb02b9798adf2c80b39cfb024f199aa">kudu::client::KuduStatusMemberCallback::KuduStatusMemberCallback</a></div><div class="ttdeci">KuduStatusMemberCallback(T *object, MemberType member)</div><div class="ttdef"><b>Definition:</b> callbacks.h:192</div></div>
-<div class="ttc" id="aclasskudu_1_1client_1_1KuduStatusMemberCallback_html_a94bde1bdcb3cde6f78b11d822be19232"><div class="ttname"><a href="classkudu_1_1client_1_1KuduStatusMemberCallback.html#a94bde1bdcb3cde6f78b11d822be19232">kudu::client::KuduStatusMemberCallback::Run</a></div><div class="ttdeci">virtual void Run(const Status &amp;s) OVERRIDE</div><div class="ttdef"><b>Definition:</b> callbacks.h:198</div></div>
-<div class="ttc" id="aclasskudu_1_1client_1_1KuduStatusCallback_html_a2333beedb1d0c08a8c127b4552fbeb07"><div class="ttname"><a href="classkudu_1_1client_1_1KuduStatusCallback.html#a2333beedb1d0c08a8c127b4552fbeb07">kudu::client::KuduStatusCallback::Run</a></div><div class="ttdeci">virtual void Run(const Status &amp;s)=0</div></div>
-<div class="ttc" id="aclasskudu_1_1client_1_1KuduStatusMemberCallback_html"><div class="ttname"><a href="classkudu_1_1client_1_1KuduStatusMemberCallback.html">kudu::client::KuduStatusMemberCallback</a></div><div class="ttdoc">The status callback that invokes a member function of an object.</div><div class="ttdef"><b>Definition:</b> callbacks.h:181</div></div>
-<div class="ttc" id="aclasskudu_1_1client_1_1KuduLoggingMemberCallback_html_aafb1373a805d6e05c0fc5715927677c9"><div class="ttname"><a href="classkudu_1_1client_1_1KuduLoggingMemberCallback.html#aafb1373a805d6e05c0fc5715927677c9">kudu::client::KuduLoggingMemberCallback::Run</a></div><div class="ttdeci">virtual void Run(KuduLogSeverity severity, const char *filename, int line_number, const struct ::tm *time, const char *message, size_t message_len) OVERRIDE</div><div class="ttdef"><b>Definition:</b> callbacks.h:104</div></div>
-<div class="ttc" id="aclasskudu_1_1client_1_1KuduLoggingFunctionCallback_html_a4263c504b21e0e5827f47a902e908a2c"><div class="ttname"><a href="classkudu_1_1client_1_1KuduLoggingFunctionCallback.html#a4263c504b21e0e5827f47a902e908a2c">kudu::client::KuduLoggingFunctionCallback::KuduLoggingFunctionCallback</a></div><div class="ttdeci">KuduLoggingFunctionCallback(FunctionType function, T arg)</div><div class="ttdef"><b>Definition:</b> callbacks.h:139</div></div>
-<div class="ttc" id="aclasskudu_1_1client_1_1KuduLoggingCallback_html_a59db98413fb312d260fcb08299bae89c"><div class="ttname"><a href="classkudu_1_1client_1_1KuduLoggingCallback.html#a59db98413fb312d260fcb08299bae89c">kudu::client::KuduLoggingCallback::Run</a></div><div class="ttdeci">virtual void Run(KuduLogSeverity severity, const char *filename, int line_number, const struct ::tm *time, const char *message, size_t message_len)=0</div></div>
-<div class="ttc" id="aclasskudu_1_1client_1_1KuduStatusCallback_html"><div class="ttname"><a href="classkudu_1_1client_1_1KuduStatusCallback.html">kudu::client::KuduStatusCallback</a></div><div class="ttdoc">The interface for all status callbacks.</div><div class="ttdef"><b>Definition:</b> callbacks.h:161</div></div>
-<div class="ttc" id="aclasskudu_1_1client_1_1KuduLoggingFunctionCallback_html_ae22e9139102f60d049c29e888c6a528d"><div class="ttname"><a href="classkudu_1_1client_1_1KuduLoggingFunctionCallback.html#ae22e9139102f60d049c29e888c6a528d">kudu::client::KuduLoggingFunctionCallback::Run</a></div><div class="ttdeci">virtual void Run(KuduLogSeverity severity, const char *filename, int line_number, const struct ::tm *time, const char *message, size_t message_len) OVERRIDE</div><div class="ttdef"><b>Definition:</b> callbacks.h:145</div></div>
-<div class="ttc" id="aclasskudu_1_1client_1_1KuduStatusFunctionCallback_html"><div class="ttname"><a href="classkudu_1_1client_1_1KuduStatusFunctionCallback.html">kudu::client::KuduStatusFunctionCallback</a></div><div class="ttdoc">The status callback that invokes a function by pointer with a single argument.</div><div class="ttdef"><b>Definition:</b> callbacks.h:210</div></div>
-<div class="ttc" id="aclasskudu_1_1client_1_1KuduLoggingCallback_html"><div class="ttname"><a href="classkudu_1_1client_1_1KuduLoggingCallback.html">kudu::client::KuduLoggingCallback</a></div><div class="ttdoc">The interface for all logging callbacks.</div><div class="ttdef"><b>Definition:</b> callbacks.h:44</div></div>
-<div class="ttc" id="aclasskudu_1_1client_1_1KuduLoggingFunctionCallback_html"><div class="ttname"><a href="classkudu_1_1client_1_1KuduLoggingFunctionCallback.html">kudu::client::KuduLoggingFunctionCallback</a></div><div class="ttdoc">The logging callback that invokes a function by pointer with a single argument.</div><div class="ttdef"><b>Definition:</b> callbacks.h:122</div></div>
 <div class="ttc" id="aclasskudu_1_1Status_html"><div class="ttname"><a href="classkudu_1_1Status.html">kudu::Status</a></div><div class="ttdoc">A representation of an operation's outcome.</div><div class="ttdef"><b>Definition:</b> status.h:165</div></div>
+<div class="ttc" id="aclasskudu_1_1client_1_1KuduLoggingCallback_html"><div class="ttname"><a href="classkudu_1_1client_1_1KuduLoggingCallback.html">kudu::client::KuduLoggingCallback</a></div><div class="ttdoc">The interface for all logging callbacks.</div><div class="ttdef"><b>Definition:</b> callbacks.h:44</div></div>
+<div class="ttc" id="aclasskudu_1_1client_1_1KuduLoggingCallback_html_a59db98413fb312d260fcb08299bae89c"><div class="ttname"><a href="classkudu_1_1client_1_1KuduLoggingCallback.html#a59db98413fb312d260fcb08299bae89c">kudu::client::KuduLoggingCallback::Run</a></div><div class="ttdeci">virtual void Run(KuduLogSeverity severity, const char *filename, int line_number, const struct ::tm *time, const char *message, size_t message_len)=0</div></div>
+<div class="ttc" id="aclasskudu_1_1client_1_1KuduLoggingFunctionCallback_html"><div class="ttname"><a href="classkudu_1_1client_1_1KuduLoggingFunctionCallback.html">kudu::client::KuduLoggingFunctionCallback</a></div><div class="ttdoc">The logging callback that invokes a function by pointer with a single argument.</div><div class="ttdef"><b>Definition:</b> callbacks.h:122</div></div>
+<div class="ttc" id="aclasskudu_1_1client_1_1KuduLoggingFunctionCallback_html_a4263c504b21e0e5827f47a902e908a2c"><div class="ttname"><a href="classkudu_1_1client_1_1KuduLoggingFunctionCallback.html#a4263c504b21e0e5827f47a902e908a2c">kudu::client::KuduLoggingFunctionCallback::KuduLoggingFunctionCallback</a></div><div class="ttdeci">KuduLoggingFunctionCallback(FunctionType function, T arg)</div><div class="ttdef"><b>Definition:</b> callbacks.h:139</div></div>
+<div class="ttc" id="aclasskudu_1_1client_1_1KuduLoggingFunctionCallback_html_ae22e9139102f60d049c29e888c6a528d"><div class="ttname"><a href="classkudu_1_1client_1_1KuduLoggingFunctionCallback.html#ae22e9139102f60d049c29e888c6a528d">kudu::client::KuduLoggingFunctionCallback::Run</a></div><div class="ttdeci">virtual void Run(KuduLogSeverity severity, const char *filename, int line_number, const struct ::tm *time, const char *message, size_t message_len) OVERRIDE</div><div class="ttdef"><b>Definition:</b> callbacks.h:145</div></div>
 <div class="ttc" id="aclasskudu_1_1client_1_1KuduLoggingMemberCallback_html"><div class="ttname"><a href="classkudu_1_1client_1_1KuduLoggingMemberCallback.html">kudu::client::KuduLoggingMemberCallback</a></div><div class="ttdoc">The logging callback that invokes a member function of an object.</div><div class="ttdef"><b>Definition:</b> callbacks.h:81</div></div>
+<div class="ttc" id="aclasskudu_1_1client_1_1KuduLoggingMemberCallback_html_aafb1373a805d6e05c0fc5715927677c9"><div class="ttname"><a href="classkudu_1_1client_1_1KuduLoggingMemberCallback.html#aafb1373a805d6e05c0fc5715927677c9">kudu::client::KuduLoggingMemberCallback::Run</a></div><div class="ttdeci">virtual void Run(KuduLogSeverity severity, const char *filename, int line_number, const struct ::tm *time, const char *message, size_t message_len) OVERRIDE</div><div class="ttdef"><b>Definition:</b> callbacks.h:104</div></div>
 <div class="ttc" id="aclasskudu_1_1client_1_1KuduLoggingMemberCallback_html_aeda4119b1288db0d055c9800e3485fd8"><div class="ttname"><a href="classkudu_1_1client_1_1KuduLoggingMemberCallback.html#aeda4119b1288db0d055c9800e3485fd8">kudu::client::KuduLoggingMemberCallback::KuduLoggingMemberCallback</a></div><div class="ttdeci">KuduLoggingMemberCallback(T *object, MemberType member)</div><div class="ttdef"><b>Definition:</b> callbacks.h:98</div></div>
+<div class="ttc" id="aclasskudu_1_1client_1_1KuduStatusCallback_html"><div class="ttname"><a href="classkudu_1_1client_1_1KuduStatusCallback.html">kudu::client::KuduStatusCallback</a></div><div class="ttdoc">The interface for all status callbacks.</div><div class="ttdef"><b>Definition:</b> callbacks.h:161</div></div>
+<div class="ttc" id="aclasskudu_1_1client_1_1KuduStatusCallback_html_a2333beedb1d0c08a8c127b4552fbeb07"><div class="ttname"><a href="classkudu_1_1client_1_1KuduStatusCallback.html#a2333beedb1d0c08a8c127b4552fbeb07">kudu::client::KuduStatusCallback::Run</a></div><div class="ttdeci">virtual void Run(const Status &amp;s)=0</div></div>
+<div class="ttc" id="aclasskudu_1_1client_1_1KuduStatusFunctionCallback_html"><div class="ttname"><a href="classkudu_1_1client_1_1KuduStatusFunctionCallback.html">kudu::client::KuduStatusFunctionCallback</a></div><div class="ttdoc">The status callback that invokes a function by pointer with a single argument.</div><div class="ttdef"><b>Definition:</b> callbacks.h:210</div></div>
 <div class="ttc" id="aclasskudu_1_1client_1_1KuduStatusFunctionCallback_html_aca289bbf6ad9720bd74a90550f6c9b3b"><div class="ttname"><a href="classkudu_1_1client_1_1KuduStatusFunctionCallback.html#aca289bbf6ad9720bd74a90550f6c9b3b">kudu::client::KuduStatusFunctionCallback::KuduStatusFunctionCallback</a></div><div class="ttdeci">KuduStatusFunctionCallback(FunctionType function, T arg)</div><div class="ttdef"><b>Definition:</b> callbacks.h:222</div></div>
 <div class="ttc" id="aclasskudu_1_1client_1_1KuduStatusFunctionCallback_html_af4c3e7fbd4fed52bcba220f95a27f70a"><div class="ttname"><a href="classkudu_1_1client_1_1KuduStatusFunctionCallback.html#af4c3e7fbd4fed52bcba220f95a27f70a">kudu::client::KuduStatusFunctionCallback::Run</a></div><div class="ttdeci">virtual void Run(const Status &amp;s) OVERRIDE</div><div class="ttdef"><b>Definition:</b> callbacks.h:228</div></div>
+<div class="ttc" id="aclasskudu_1_1client_1_1KuduStatusMemberCallback_html"><div class="ttname"><a href="classkudu_1_1client_1_1KuduStatusMemberCallback.html">kudu::client::KuduStatusMemberCallback</a></div><div class="ttdoc">The status callback that invokes a member function of an object.</div><div class="ttdef"><b>Definition:</b> callbacks.h:181</div></div>
+<div class="ttc" id="aclasskudu_1_1client_1_1KuduStatusMemberCallback_html_a94bde1bdcb3cde6f78b11d822be19232"><div class="ttname"><a href="classkudu_1_1client_1_1KuduStatusMemberCallback.html#a94bde1bdcb3cde6f78b11d822be19232">kudu::client::KuduStatusMemberCallback::Run</a></div><div class="ttdeci">virtual void Run(const Status &amp;s) OVERRIDE</div><div class="ttdef"><b>Definition:</b> callbacks.h:198</div></div>
+<div class="ttc" id="aclasskudu_1_1client_1_1KuduStatusMemberCallback_html_acdb02b9798adf2c80b39cfb024f199aa"><div class="ttname"><a href="classkudu_1_1client_1_1KuduStatusMemberCallback.html#acdb02b9798adf2c80b39cfb024f199aa">kudu::client::KuduStatusMemberCallback::KuduStatusMemberCallback</a></div><div class="ttdeci">KuduStatusMemberCallback(T *object, MemberType member)</div><div class="ttdef"><b>Definition:</b> callbacks.h:192</div></div>
+</div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/>
 <address class="footer">
-  <small>Generated for Kudu version 1.13.0 on Fri Sep 18 2020 15:03:20 by Doxygen 1.8.19</small>
+  <small>Generated for Kudu version 1.14.0 on Thu Jan 28 2021 11:11:20 by Doxygen 1.9.1</small>
   <br>
-  <small>Copyright © 2020 The Apache Software Foundation.</small>
+  <small>Copyright © 2021 The Apache Software Foundation.</small>
 </address>
 </body>
 </html>
diff --git a/cpp-client-api/classKuduPartialRow-members.html b/cpp-client-api/classKuduPartialRow-members.html
index 16fbd8b..2753c21 100644
--- a/cpp-client-api/classKuduPartialRow-members.html
+++ b/cpp-client-api/classKuduPartialRow-members.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.19"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>Kudu C++ client API: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -29,10 +29,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.19 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -148,9 +148,9 @@
 <!-- start footer part -->
 <hr class="footer"/>
 <address class="footer">
-  <small>Generated for Kudu version 1.13.0 on Fri Sep 18 2020 15:03:20 by Doxygen 1.8.19</small>
+  <small>Generated for Kudu version 1.14.0 on Thu Jan 28 2021 11:11:20 by Doxygen 1.9.1</small>
   <br>
-  <small>Copyright © 2020 The Apache Software Foundation.</small>
+  <small>Copyright © 2021 The Apache Software Foundation.</small>
 </address>
 </body>
 </html>
diff --git a/cpp-client-api/classKuduPartialRow.html b/cpp-client-api/classKuduPartialRow.html
index 9a4288d..7b97046 100644
--- a/cpp-client-api/classKuduPartialRow.html
+++ b/cpp-client-api/classKuduPartialRow.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.19"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>Kudu C++ client API: KuduPartialRow Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -29,10 +29,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.19 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -2957,9 +2957,9 @@
 <!-- start footer part -->
 <hr class="footer"/>
 <address class="footer">
-  <small>Generated for Kudu version 1.13.0 on Fri Sep 18 2020 15:03:20 by Doxygen 1.8.19</small>
+  <small>Generated for Kudu version 1.14.0 on Thu Jan 28 2021 11:11:20 by Doxygen 1.9.1</small>
   <br>
-  <small>Copyright © 2020 The Apache Software Foundation.</small>
+  <small>Copyright © 2021 The Apache Software Foundation.</small>
 </address>
 </body>
 </html>
diff --git a/cpp-client-api/classes.html b/cpp-client-api/classes.html
index f495bfb..62f7442 100644
--- a/cpp-client-api/classes.html
+++ b/cpp-client-api/classes.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.19"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>Kudu C++ client API: Class Index</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -29,10 +29,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.19 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -65,97 +65,37 @@
 <div class="title">Class Index</div>  </div>
 </div><!--header-->
 <div class="contents">
-<div class="qindex"><a class="qindex" href="#letter_a">a</a>&#160;|&#160;<a class="qindex" href="#letter_c">c</a>&#160;|&#160;<a class="qindex" href="#letter_k">k</a>&#160;|&#160;<a class="qindex" href="#letter_m">m</a>&#160;|&#160;<a class="qindex" href="#letter_n">n</a>&#160;|&#160;<a class="qindex" href="#letter_r">r</a>&#160;|&#160;<a class="qindex" href="#letter_s">s</a></div>
-<table class="classindex">
-<tr><td rowspan="2" valign="bottom"><a name="letter_a"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;a&#160;&#160;</div></td></tr></table>
-</td>
-<td valign="top"><a class="el" href="classkudu_1_1client_1_1KuduColumnarScanBatch.html">KuduColumnarScanBatch</a> (kudu::client)&#160;&#160;&#160;</td>
-<td valign="top"><a class="el" href="classkudu_1_1client_1_1KuduPartitioner.html">KuduPartitioner</a> (kudu::client)&#160;&#160;&#160;</td>
-<td valign="top"><a class="el" href="classkudu_1_1client_1_1KuduStatusMemberCallback.html">KuduStatusMemberCallback</a> (kudu::client)&#160;&#160;&#160;</td>
-<td valign="top"><a class="el" href="classkudu_1_1MonoTime.html">MonoTime</a> (kudu)&#160;&#160;&#160;</td>
-</tr>
-<tr><td valign="top"><a class="el" href="classkudu_1_1client_1_1KuduColumnSchema.html">KuduColumnSchema</a> (kudu::client)&#160;&#160;&#160;</td>
-<td valign="top"><a class="el" href="classkudu_1_1client_1_1KuduPartitionerBuilder.html">KuduPartitionerBuilder</a> (kudu::client)&#160;&#160;&#160;</td>
-<td valign="top"><a class="el" href="classkudu_1_1client_1_1KuduTable.html">KuduTable</a> (kudu::client)&#160;&#160;&#160;</td>
-<td rowspan="2" valign="bottom"><a name="letter_n"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;n&#160;&#160;</div></td></tr></table>
-</td>
-</tr>
-<tr><td valign="top"><a class="el" href="classkudu_1_1client_1_1internal_1_1AsyncLeaderMasterRpc.html">AsyncLeaderMasterRpc</a> (kudu::client::internal)&#160;&#160;&#160;</td>
-<td valign="top"><a class="el" href="classkudu_1_1client_1_1KuduColumnSpec.html">KuduColumnSpec</a> (kudu::client)&#160;&#160;&#160;</td>
-<td valign="top"><a class="el" href="classkudu_1_1client_1_1KuduPredicate.html">KuduPredicate</a> (kudu::client)&#160;&#160;&#160;</td>
-<td valign="top"><a class="el" href="classkudu_1_1client_1_1KuduTableAlterer.html">KuduTableAlterer</a> (kudu::client)&#160;&#160;&#160;</td>
-</tr>
-<tr><td rowspan="2" valign="bottom"><a name="letter_c"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;c&#160;&#160;</div></td></tr></table>
-</td>
-<td valign="top"><a class="el" href="classkudu_1_1client_1_1KuduColumnStorageAttributes.html">KuduColumnStorageAttributes</a> (kudu::client)&#160;&#160;&#160;</td>
-<td valign="top"><a class="el" href="classkudu_1_1client_1_1KuduReplica.html">KuduReplica</a> (kudu::client)&#160;&#160;&#160;</td>
-<td valign="top"><a class="el" href="classkudu_1_1client_1_1KuduTableCreator.html">KuduTableCreator</a> (kudu::client)&#160;&#160;&#160;</td>
-<td valign="top"><a class="el" href="classkudu_1_1internal__logging_1_1NullLog.html">NullLog</a> (kudu::internal_logging)&#160;&#160;&#160;</td>
-</tr>
-<tr><td valign="top"><a class="el" href="classkudu_1_1client_1_1KuduColumnTypeAttributes.html">KuduColumnTypeAttributes</a> (kudu::client)&#160;&#160;&#160;</td>
-<td valign="top"><a class="el" href="classkudu_1_1client_1_1KuduScanBatch.html">KuduScanBatch</a> (kudu::client)&#160;&#160;&#160;</td>
-<td valign="top"><a class="el" href="classkudu_1_1client_1_1KuduTableStatistics.html">KuduTableStatistics</a> (kudu::client)&#160;&#160;&#160;</td>
-<td rowspan="2" valign="bottom"><a name="letter_r"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;r&#160;&#160;</div></td></tr></table>
-</td>
-</tr>
-<tr><td valign="top"><a class="el" href="classkudu_1_1internal__logging_1_1CerrLog.html">CerrLog</a> (kudu::internal_logging)&#160;&#160;&#160;</td>
-<td valign="top"><a class="el" href="classkudu_1_1client_1_1KuduDelete.html">KuduDelete</a> (kudu::client)&#160;&#160;&#160;</td>
-<td valign="top"><a class="el" href="classkudu_1_1client_1_1KuduScanner.html">KuduScanner</a> (kudu::client)&#160;&#160;&#160;</td>
-<td valign="top"><a class="el" href="classkudu_1_1client_1_1KuduTablet.html">KuduTablet</a> (kudu::client)&#160;&#160;&#160;</td>
-</tr>
-<tr><td valign="top"><a class="el" href="structkudu_1_1Slice_1_1Comparator.html">Slice::Comparator</a> (kudu)&#160;&#160;&#160;</td>
-<td valign="top"><a class="el" href="classkudu_1_1client_1_1KuduError.html">KuduError</a> (kudu::client)&#160;&#160;&#160;</td>
-<td valign="top"><a class="el" href="classkudu_1_1client_1_1KuduScanToken.html">KuduScanToken</a> (kudu::client)&#160;&#160;&#160;</td>
-<td valign="top"><a class="el" href="classkudu_1_1client_1_1KuduTabletServer.html">KuduTabletServer</a> (kudu::client)&#160;&#160;&#160;</td>
-<td valign="top"><a class="el" href="classkudu_1_1client_1_1ResourceMetrics.html">ResourceMetrics</a> (kudu::client)&#160;&#160;&#160;</td>
-</tr>
-<tr><td rowspan="2" valign="bottom"><a name="letter_k"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;k&#160;&#160;</div></td></tr></table>
-</td>
-<td valign="top"><a class="el" href="classkudu_1_1client_1_1KuduInsert.html">KuduInsert</a> (kudu::client)&#160;&#160;&#160;</td>
-<td valign="top"><a class="el" href="classkudu_1_1client_1_1KuduScanTokenBuilder.html">KuduScanTokenBuilder</a> (kudu::client)&#160;&#160;&#160;</td>
-<td valign="top"><a class="el" href="classkudu_1_1client_1_1KuduUpdate.html">KuduUpdate</a> (kudu::client)&#160;&#160;&#160;</td>
-<td rowspan="2" valign="bottom"><a name="letter_s"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;s&#160;&#160;</div></td></tr></table>
-</td>
-</tr>
-<tr><td valign="top"><a class="el" href="classkudu_1_1client_1_1KuduInsertIgnore.html">KuduInsertIgnore</a> (kudu::client)&#160;&#160;&#160;</td>
-<td valign="top"><a class="el" href="classkudu_1_1client_1_1KuduSchema.html">KuduSchema</a> (kudu::client)&#160;&#160;&#160;</td>
-<td valign="top"><a class="el" href="classkudu_1_1client_1_1KuduUpsert.html">KuduUpsert</a> (kudu::client)&#160;&#160;&#160;</td>
-</tr>
-<tr><td valign="top"><a class="el" href="classkudu_1_1client_1_1KuduBloomFilter.html">KuduBloomFilter</a> (kudu::client)&#160;&#160;&#160;</td>
-<td valign="top"><a class="el" href="classkudu_1_1client_1_1KuduLoggingCallback.html">KuduLoggingCallback</a> (kudu::client)&#160;&#160;&#160;</td>
-<td valign="top"><a class="el" href="classkudu_1_1client_1_1KuduSchemaBuilder.html">KuduSchemaBuilder</a> (kudu::client)&#160;&#160;&#160;</td>
-<td valign="top"><a class="el" href="classkudu_1_1client_1_1KuduValue.html">KuduValue</a> (kudu::client)&#160;&#160;&#160;</td>
-<td valign="top"><a class="el" href="classkudu_1_1Slice.html">Slice</a> (kudu)&#160;&#160;&#160;</td>
-</tr>
-<tr><td valign="top"><a class="el" href="classkudu_1_1client_1_1KuduBloomFilterBuilder.html">KuduBloomFilterBuilder</a> (kudu::client)&#160;&#160;&#160;</td>
-<td valign="top"><a class="el" href="classkudu_1_1client_1_1KuduLoggingFunctionCallback.html">KuduLoggingFunctionCallback</a> (kudu::client)&#160;&#160;&#160;</td>
-<td valign="top"><a class="el" href="classkudu_1_1client_1_1KuduSession.html">KuduSession</a> (kudu::client)&#160;&#160;&#160;</td>
-<td valign="top"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">KuduWriteOperation</a> (kudu::client)&#160;&#160;&#160;</td>
-<td valign="top"><a class="el" href="structkudu_1_1SliceMap.html">SliceMap</a> (kudu)&#160;&#160;&#160;</td>
-</tr>
-<tr><td valign="top"><a class="el" href="classkudu_1_1client_1_1KuduClient.html">KuduClient</a> (kudu::client)&#160;&#160;&#160;</td>
-<td valign="top"><a class="el" href="classkudu_1_1client_1_1KuduLoggingMemberCallback.html">KuduLoggingMemberCallback</a> (kudu::client)&#160;&#160;&#160;</td>
-<td valign="top"><a class="el" href="classkudu_1_1client_1_1KuduStatusCallback.html">KuduStatusCallback</a> (kudu::client)&#160;&#160;&#160;</td>
-<td rowspan="2" valign="bottom"><a name="letter_m"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;m&#160;&#160;</div></td></tr></table>
-</td>
-<td valign="top"><a class="el" href="classkudu_1_1Status.html">Status</a> (kudu)&#160;&#160;&#160;</td>
-</tr>
-<tr><td valign="top"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html">KuduClientBuilder</a> (kudu::client)&#160;&#160;&#160;</td>
-<td valign="top"><a class="el" href="classKuduPartialRow.html">KuduPartialRow</a>&#160;&#160;&#160;</td>
-<td valign="top"><a class="el" href="classkudu_1_1client_1_1KuduStatusFunctionCallback.html">KuduStatusFunctionCallback</a> (kudu::client)&#160;&#160;&#160;</td>
-<td></td></tr>
-<tr><td></td><td></td><td></td><td valign="top"><a class="el" href="classkudu_1_1MonoDelta.html">MonoDelta</a> (kudu)&#160;&#160;&#160;</td>
-<td></td></tr>
-<tr><td></td><td></td><td></td><td></td><td></td></tr>
-</table>
-<div class="qindex"><a class="qindex" href="#letter_a">a</a>&#160;|&#160;<a class="qindex" href="#letter_c">c</a>&#160;|&#160;<a class="qindex" href="#letter_k">k</a>&#160;|&#160;<a class="qindex" href="#letter_m">m</a>&#160;|&#160;<a class="qindex" href="#letter_n">n</a>&#160;|&#160;<a class="qindex" href="#letter_r">r</a>&#160;|&#160;<a class="qindex" href="#letter_s">s</a></div>
+<div class="qindex"><a class="qindex" href="#letter_A">A</a>&#160;|&#160;<a class="qindex" href="#letter_C">C</a>&#160;|&#160;<a class="qindex" href="#letter_K">K</a>&#160;|&#160;<a class="qindex" href="#letter_M">M</a>&#160;|&#160;<a class="qindex" href="#letter_N">N</a>&#160;|&#160;<a class="qindex" href="#letter_R">R</a>&#160;|&#160;<a class="qindex" href="#letter_S">S</a></div>
+<div class="classindex">
+<dl class="classindex even">
+<dt class="alphachar"><a name="letter_A">A</a></dt>
+<dd><a class="el" href="classkudu_1_1client_1_1internal_1_1AsyncLeaderMasterRpc.html">AsyncLeaderMasterRpc</a> (kudu::client::internal)</dd><dd><a class="el" href="classkudu_1_1client_1_1internal_1_1AsyncRandomTxnManagerRpc.html">AsyncRandomTxnManagerRpc</a> (kudu::client::internal)</dd></dl>
+<dl class="classindex odd">
+<dt class="alphachar"><a name="letter_C">C</a></dt>
+<dd><a class="el" href="classkudu_1_1internal__logging_1_1CerrLog.html">CerrLog</a> (kudu::internal_logging)</dd><dd><a class="el" href="structkudu_1_1Slice_1_1Comparator.html">Slice::Comparator</a> (kudu)</dd></dl>
+<dl class="classindex even">
+<dt class="alphachar"><a name="letter_K">K</a></dt>
+<dd><a class="el" href="classkudu_1_1client_1_1KuduBloomFilter.html">KuduBloomFilter</a> (kudu::client)</dd><dd><a class="el" href="classkudu_1_1client_1_1KuduBloomFilterBuilder.html">KuduBloomFilterBuilder</a> (kudu::client)</dd><dd><a class="el" href="classkudu_1_1client_1_1KuduClient.html">KuduClient</a> (kudu::client)</dd><dd><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html">KuduClientBuilder</a> (kudu::client)</dd><dd><a class="el" href="classkudu_1_1client_1_1KuduColumnarScanBatch.html">KuduColumnarScanBatch</a> (kudu::client)</dd><dd><a class="el" href="classkudu_1_1client_1_1KuduColumnSchema.html">KuduColumnSchema</a> (kudu::client)</dd><dd><a class="el" href="classkudu_1_1client_1_1KuduColumnSpec.html">KuduColumnSpec</a> (kudu::client)</dd><dd><a class="el" href="classkudu_1_1client_1_1KuduColumnStorageAttributes.html">KuduColumnStorageAttributes</a> (kudu::client)</dd><dd><a class="el" href="classkudu_1_1client_1_1KuduColumnTypeAttributes.html">KuduColumnTypeAttributes</a> (kudu::client)</dd><dd><a class="el" href="classkudu_1_1client_1_1KuduDelete.html">KuduDelete</a> (kudu::client)</dd><dd><a class="el" href="classkudu_1_1client_1_1KuduDeleteIgnore.html">KuduDeleteIgnore</a> (kudu::client)</dd><dd><a class="el" href="classkudu_1_1client_1_1KuduError.html">KuduError</a> (kudu::client)</dd><dd><a class="el" href="classkudu_1_1client_1_1KuduInsert.html">KuduInsert</a> (kudu::client)</dd><dd><a class="el" href="classkudu_1_1client_1_1KuduInsertIgnore.html">KuduInsertIgnore</a> (kudu::client)</dd><dd><a class="el" href="classkudu_1_1client_1_1KuduLoggingCallback.html">KuduLoggingCallback</a> (kudu::client)</dd><dd><a class="el" href="classkudu_1_1client_1_1KuduLoggingFunctionCallback.html">KuduLoggingFunctionCallback</a> (kudu::client)</dd><dd><a class="el" href="classkudu_1_1client_1_1KuduLoggingMemberCallback.html">KuduLoggingMemberCallback</a> (kudu::client)</dd><dd><a class="el" href="classKuduPartialRow.html">KuduPartialRow</a></dd><dd><a class="el" href="classkudu_1_1client_1_1KuduPartitioner.html">KuduPartitioner</a> (kudu::client)</dd><dd><a class="el" href="classkudu_1_1client_1_1KuduPartitionerBuilder.html">KuduPartitionerBuilder</a> (kudu::client)</dd><dd><a class="el" href="classkudu_1_1client_1_1KuduPredicate.html">KuduPredicate</a> (kudu::client)</dd><dd><a class="el" href="classkudu_1_1client_1_1KuduReplica.html">KuduReplica</a> (kudu::client)</dd><dd><a class="el" href="classkudu_1_1client_1_1KuduScanBatch.html">KuduScanBatch</a> (kudu::client)</dd><dd><a class="el" href="classkudu_1_1client_1_1KuduScanner.html">KuduScanner</a> (kudu::client)</dd><dd><a class="el" href="classkudu_1_1client_1_1KuduScanToken.html">KuduScanToken</a> (kudu::client)</dd><dd><a class="el" href="classkudu_1_1client_1_1KuduScanTokenBuilder.html">KuduScanTokenBuilder</a> (kudu::client)</dd><dd><a class="el" href="classkudu_1_1client_1_1KuduSchema.html">KuduSchema</a> (kudu::client)</dd><dd><a class="el" href="classkudu_1_1client_1_1KuduSchemaBuilder.html">KuduSchemaBuilder</a> (kudu::client)</dd><dd><a class="el" href="classkudu_1_1client_1_1KuduSession.html">KuduSession</a> (kudu::client)</dd><dd><a class="el" href="classkudu_1_1client_1_1KuduStatusCallback.html">KuduStatusCallback</a> (kudu::client)</dd><dd><a class="el" href="classkudu_1_1client_1_1KuduStatusFunctionCallback.html">KuduStatusFunctionCallback</a> (kudu::client)</dd><dd><a class="el" href="classkudu_1_1client_1_1KuduStatusMemberCallback.html">KuduStatusMemberCallback</a> (kudu::client)</dd><dd><a class="el" href="classkudu_1_1client_1_1KuduTable.html">KuduTable</a> (kudu::client)</dd><dd><a class="el" href="classkudu_1_1client_1_1KuduTableAlterer.html">KuduTableAlterer</a> (kudu::client)</dd><dd><a class="el" href="classkudu_1_1client_1_1KuduTableCreator.html">KuduTableCreator</a> (kudu::client)</dd><dd><a class="el" href="classkudu_1_1client_1_1KuduTableStatistics.html">KuduTableStatistics</a> (kudu::client)</dd><dd><a class="el" href="classkudu_1_1client_1_1KuduTablet.html">KuduTablet</a> (kudu::client)</dd><dd><a class="el" href="classkudu_1_1client_1_1KuduTabletServer.html">KuduTabletServer</a> (kudu::client)</dd><dd><a class="el" href="classkudu_1_1client_1_1KuduTransaction.html">KuduTransaction</a> (kudu::client)</dd><dd><a class="el" href="classkudu_1_1client_1_1KuduUpdate.html">KuduUpdate</a> (kudu::client)</dd><dd><a class="el" href="classkudu_1_1client_1_1KuduUpdateIgnore.html">KuduUpdateIgnore</a> (kudu::client)</dd><dd><a class="el" href="classkudu_1_1client_1_1KuduUpsert.html">KuduUpsert</a> (kudu::client)</dd><dd><a class="el" href="classkudu_1_1client_1_1KuduValue.html">KuduValue</a> (kudu::client)</dd><dd><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">KuduWriteOperation</a> (kudu::client)</dd></dl>
+<dl class="classindex odd">
+<dt class="alphachar"><a name="letter_M">M</a></dt>
+<dd><a class="el" href="classkudu_1_1MonoDelta.html">MonoDelta</a> (kudu)</dd><dd><a class="el" href="classkudu_1_1MonoTime.html">MonoTime</a> (kudu)</dd></dl>
+<dl class="classindex even">
+<dt class="alphachar"><a name="letter_N">N</a></dt>
+<dd><a class="el" href="classkudu_1_1internal__logging_1_1NullLog.html">NullLog</a> (kudu::internal_logging)</dd></dl>
+<dl class="classindex odd">
+<dt class="alphachar"><a name="letter_R">R</a></dt>
+<dd><a class="el" href="classkudu_1_1client_1_1ResourceMetrics.html">ResourceMetrics</a> (kudu::client)</dd></dl>
+<dl class="classindex even">
+<dt class="alphachar"><a name="letter_S">S</a></dt>
+<dd><a class="el" href="classkudu_1_1client_1_1KuduTransaction_1_1SerializationOptions.html">KuduTransaction::SerializationOptions</a> (kudu::client)</dd><dd><a class="el" href="classkudu_1_1Slice.html">Slice</a> (kudu)</dd><dd><a class="el" href="structkudu_1_1SliceMap.html">SliceMap</a> (kudu)</dd><dd><a class="el" href="classkudu_1_1Status.html">Status</a> (kudu)</dd></dl>
+</div>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/>
 <address class="footer">
-  <small>Generated for Kudu version 1.13.0 on Fri Sep 18 2020 15:03:20 by Doxygen 1.8.19</small>
+  <small>Generated for Kudu version 1.14.0 on Thu Jan 28 2021 11:11:20 by Doxygen 1.9.1</small>
   <br>
-  <small>Copyright © 2020 The Apache Software Foundation.</small>
+  <small>Copyright © 2021 The Apache Software Foundation.</small>
 </address>
 </body>
 </html>
diff --git a/cpp-client-api/classkudu_1_1MonoDelta-members.html b/cpp-client-api/classkudu_1_1MonoDelta-members.html
index 8f3728f..3bc7a2f 100644
--- a/cpp-client-api/classkudu_1_1MonoDelta-members.html
+++ b/cpp-client-api/classkudu_1_1MonoDelta-members.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.19"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>Kudu C++ client API: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -29,10 +29,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.19 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -98,9 +98,9 @@
 <!-- start footer part -->
 <hr class="footer"/>
 <address class="footer">
-  <small>Generated for Kudu version 1.13.0 on Fri Sep 18 2020 15:03:20 by Doxygen 1.8.19</small>
+  <small>Generated for Kudu version 1.14.0 on Thu Jan 28 2021 11:11:20 by Doxygen 1.9.1</small>
   <br>
-  <small>Copyright © 2020 The Apache Software Foundation.</small>
+  <small>Copyright © 2021 The Apache Software Foundation.</small>
 </address>
 </body>
 </html>
diff --git a/cpp-client-api/classkudu_1_1MonoDelta.html b/cpp-client-api/classkudu_1_1MonoDelta.html
index 2c89aff..0cbbb11 100644
--- a/cpp-client-api/classkudu_1_1MonoDelta.html
+++ b/cpp-client-api/classkudu_1_1MonoDelta.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.19"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>Kudu C++ client API: kudu::MonoDelta Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -29,10 +29,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.19 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -621,9 +621,9 @@
 <!-- start footer part -->
 <hr class="footer"/>
 <address class="footer">
-  <small>Generated for Kudu version 1.13.0 on Fri Sep 18 2020 15:03:20 by Doxygen 1.8.19</small>
+  <small>Generated for Kudu version 1.14.0 on Thu Jan 28 2021 11:11:20 by Doxygen 1.9.1</small>
   <br>
-  <small>Copyright © 2020 The Apache Software Foundation.</small>
+  <small>Copyright © 2021 The Apache Software Foundation.</small>
 </address>
 </body>
 </html>
diff --git a/cpp-client-api/classkudu_1_1MonoTime-members.html b/cpp-client-api/classkudu_1_1MonoTime-members.html
index 82e0caa..a549ddc 100644
--- a/cpp-client-api/classkudu_1_1MonoTime-members.html
+++ b/cpp-client-api/classkudu_1_1MonoTime-members.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.19"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>Kudu C++ client API: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -29,10 +29,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.19 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -83,9 +83,9 @@
 <!-- start footer part -->
 <hr class="footer"/>
 <address class="footer">
-  <small>Generated for Kudu version 1.13.0 on Fri Sep 18 2020 15:03:20 by Doxygen 1.8.19</small>
+  <small>Generated for Kudu version 1.14.0 on Thu Jan 28 2021 11:11:20 by Doxygen 1.9.1</small>
   <br>
-  <small>Copyright © 2020 The Apache Software Foundation.</small>
+  <small>Copyright © 2021 The Apache Software Foundation.</small>
 </address>
 </body>
 </html>
diff --git a/cpp-client-api/classkudu_1_1MonoTime.html b/cpp-client-api/classkudu_1_1MonoTime.html
index 5435952..1461d6b 100644
--- a/cpp-client-api/classkudu_1_1MonoTime.html
+++ b/cpp-client-api/classkudu_1_1MonoTime.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.19"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>Kudu C++ client API: kudu::MonoTime Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -29,10 +29,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.19 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -198,9 +198,9 @@
 <!-- start footer part -->
 <hr class="footer"/>
 <address class="footer">
-  <small>Generated for Kudu version 1.13.0 on Fri Sep 18 2020 15:03:20 by Doxygen 1.8.19</small>
+  <small>Generated for Kudu version 1.14.0 on Thu Jan 28 2021 11:11:20 by Doxygen 1.9.1</small>
   <br>
-  <small>Copyright © 2020 The Apache Software Foundation.</small>
+  <small>Copyright © 2021 The Apache Software Foundation.</small>
 </address>
 </body>
 </html>
diff --git a/cpp-client-api/classkudu_1_1Slice-members.html b/cpp-client-api/classkudu_1_1Slice-members.html
index 3059a3b..ddaa7d5 100644
--- a/cpp-client-api/classkudu_1_1Slice-members.html
+++ b/cpp-client-api/classkudu_1_1Slice-members.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.19"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>Kudu C++ client API: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -29,10 +29,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.19 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -96,9 +96,9 @@
 <!-- start footer part -->
 <hr class="footer"/>
 <address class="footer">
-  <small>Generated for Kudu version 1.13.0 on Fri Sep 18 2020 15:03:20 by Doxygen 1.8.19</small>
+  <small>Generated for Kudu version 1.14.0 on Thu Jan 28 2021 11:11:20 by Doxygen 1.9.1</small>
   <br>
-  <small>Copyright © 2020 The Apache Software Foundation.</small>
+  <small>Copyright © 2021 The Apache Software Foundation.</small>
 </address>
 </body>
 </html>
diff --git a/cpp-client-api/classkudu_1_1Slice.html b/cpp-client-api/classkudu_1_1Slice.html
index 3d57413..d61e551 100644
--- a/cpp-client-api/classkudu_1_1Slice.html
+++ b/cpp-client-api/classkudu_1_1Slice.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.19"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>Kudu C++ client API: kudu::Slice Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -29,10 +29,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.19 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -681,9 +681,9 @@
 <!-- start footer part -->
 <hr class="footer"/>
 <address class="footer">
-  <small>Generated for Kudu version 1.13.0 on Fri Sep 18 2020 15:03:20 by Doxygen 1.8.19</small>
+  <small>Generated for Kudu version 1.14.0 on Thu Jan 28 2021 11:11:20 by Doxygen 1.9.1</small>
   <br>
-  <small>Copyright © 2020 The Apache Software Foundation.</small>
+  <small>Copyright © 2021 The Apache Software Foundation.</small>
 </address>
 </body>
 </html>
diff --git a/cpp-client-api/classkudu_1_1Status-members.html b/cpp-client-api/classkudu_1_1Status-members.html
index bfdae0b..0641922 100644
--- a/cpp-client-api/classkudu_1_1Status-members.html
+++ b/cpp-client-api/classkudu_1_1Status-members.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.19"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>Kudu C++ client API: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -29,10 +29,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.19 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -127,9 +127,9 @@
 <!-- start footer part -->
 <hr class="footer"/>
 <address class="footer">
-  <small>Generated for Kudu version 1.13.0 on Fri Sep 18 2020 15:03:20 by Doxygen 1.8.19</small>
+  <small>Generated for Kudu version 1.14.0 on Thu Jan 28 2021 11:11:20 by Doxygen 1.9.1</small>
   <br>
-  <small>Copyright © 2020 The Apache Software Foundation.</small>
+  <small>Copyright © 2021 The Apache Software Foundation.</small>
 </address>
 </body>
 </html>
diff --git a/cpp-client-api/classkudu_1_1Status.html b/cpp-client-api/classkudu_1_1Status.html
index 385ad6e..b43458b 100644
--- a/cpp-client-api/classkudu_1_1Status.html
+++ b/cpp-client-api/classkudu_1_1Status.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.19"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>Kudu C++ client API: kudu::Status Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -29,10 +29,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.19 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -1894,9 +1894,9 @@
 <!-- start footer part -->
 <hr class="footer"/>
 <address class="footer">
-  <small>Generated for Kudu version 1.13.0 on Fri Sep 18 2020 15:03:20 by Doxygen 1.8.19</small>
+  <small>Generated for Kudu version 1.14.0 on Thu Jan 28 2021 11:11:20 by Doxygen 1.9.1</small>
   <br>
-  <small>Copyright © 2020 The Apache Software Foundation.</small>
+  <small>Copyright © 2021 The Apache Software Foundation.</small>
 </address>
 </body>
 </html>
diff --git a/cpp-client-api/classkudu_1_1client_1_1KuduBloomFilter-members.html b/cpp-client-api/classkudu_1_1client_1_1KuduBloomFilter-members.html
index 36286fd..f41cac0 100644
--- a/cpp-client-api/classkudu_1_1client_1_1KuduBloomFilter-members.html
+++ b/cpp-client-api/classkudu_1_1client_1_1KuduBloomFilter-members.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.19"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>Kudu C++ client API: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -29,10 +29,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.19 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -78,9 +78,9 @@
 <!-- start footer part -->
 <hr class="footer"/>
 <address class="footer">
-  <small>Generated for Kudu version 1.13.0 on Fri Sep 18 2020 15:03:20 by Doxygen 1.8.19</small>
+  <small>Generated for Kudu version 1.14.0 on Thu Jan 28 2021 11:11:20 by Doxygen 1.9.1</small>
   <br>
-  <small>Copyright © 2020 The Apache Software Foundation.</small>
+  <small>Copyright © 2021 The Apache Software Foundation.</small>
 </address>
 </body>
 </html>
diff --git a/cpp-client-api/classkudu_1_1client_1_1KuduBloomFilter.html b/cpp-client-api/classkudu_1_1client_1_1KuduBloomFilter.html
index 135a73b..1ac246d 100644
--- a/cpp-client-api/classkudu_1_1client_1_1KuduBloomFilter.html
+++ b/cpp-client-api/classkudu_1_1client_1_1KuduBloomFilter.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.19"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>Kudu C++ client API: kudu::client::KuduBloomFilter Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -29,10 +29,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.19 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -121,9 +121,9 @@
 <!-- start footer part -->
 <hr class="footer"/>
 <address class="footer">
-  <small>Generated for Kudu version 1.13.0 on Fri Sep 18 2020 15:03:20 by Doxygen 1.8.19</small>
+  <small>Generated for Kudu version 1.14.0 on Thu Jan 28 2021 11:11:20 by Doxygen 1.9.1</small>
   <br>
-  <small>Copyright © 2020 The Apache Software Foundation.</small>
+  <small>Copyright © 2021 The Apache Software Foundation.</small>
 </address>
 </body>
 </html>
diff --git a/cpp-client-api/classkudu_1_1client_1_1KuduBloomFilterBuilder-members.html b/cpp-client-api/classkudu_1_1client_1_1KuduBloomFilterBuilder-members.html
index 644b683..9448d72 100644
--- a/cpp-client-api/classkudu_1_1client_1_1KuduBloomFilterBuilder-members.html
+++ b/cpp-client-api/classkudu_1_1client_1_1KuduBloomFilterBuilder-members.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.19"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>Kudu C++ client API: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -29,10 +29,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.19 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -82,9 +82,9 @@
 <!-- start footer part -->
 <hr class="footer"/>
 <address class="footer">
-  <small>Generated for Kudu version 1.13.0 on Fri Sep 18 2020 15:03:20 by Doxygen 1.8.19</small>
+  <small>Generated for Kudu version 1.14.0 on Thu Jan 28 2021 11:11:20 by Doxygen 1.9.1</small>
   <br>
-  <small>Copyright © 2020 The Apache Software Foundation.</small>
+  <small>Copyright © 2021 The Apache Software Foundation.</small>
 </address>
 </body>
 </html>
diff --git a/cpp-client-api/classkudu_1_1client_1_1KuduBloomFilterBuilder.html b/cpp-client-api/classkudu_1_1client_1_1KuduBloomFilterBuilder.html
index db9f9df..796d6f4 100644
--- a/cpp-client-api/classkudu_1_1client_1_1KuduBloomFilterBuilder.html
+++ b/cpp-client-api/classkudu_1_1client_1_1KuduBloomFilterBuilder.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.19"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>Kudu C++ client API: kudu::client::KuduBloomFilterBuilder Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -29,10 +29,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.19 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -236,9 +236,9 @@
 <!-- start footer part -->
 <hr class="footer"/>
 <address class="footer">
-  <small>Generated for Kudu version 1.13.0 on Fri Sep 18 2020 15:03:20 by Doxygen 1.8.19</small>
+  <small>Generated for Kudu version 1.14.0 on Thu Jan 28 2021 11:11:20 by Doxygen 1.9.1</small>
   <br>
-  <small>Copyright © 2020 The Apache Software Foundation.</small>
+  <small>Copyright © 2021 The Apache Software Foundation.</small>
 </address>
 </body>
 </html>
diff --git a/cpp-client-api/classkudu_1_1client_1_1KuduClient-members.html b/cpp-client-api/classkudu_1_1client_1_1KuduClient-members.html
index 080c3aa..0539653 100644
--- a/cpp-client-api/classkudu_1_1client_1_1KuduClient-members.html
+++ b/cpp-client-api/classkudu_1_1client_1_1KuduClient-members.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.19"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>Kudu C++ client API: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -29,10 +29,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.19 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -73,23 +73,25 @@
 <p>This is the complete list of members for <a class="el" href="classkudu_1_1client_1_1KuduClient.html">kudu::client::KuduClient</a>, including all inherited members.</p>
 <table class="directory">
   <tr class="even"><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#aef70c7f3a596ecda4040f9d46514b11aa801886067da41dacd0c9c2b8091f08d8">CLOSEST_REPLICA</a> enum value</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html">kudu::client::KuduClient</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#a0646b1b93edeb92cf7ea46a1bb433838">default_admin_operation_timeout</a>() const</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html">kudu::client::KuduClient</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#aaae3d73831a41d260d2578fef68bcd49">default_rpc_timeout</a>() const</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html">kudu::client::KuduClient</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#a9d7cbad036bc74c71873a428abce5c1d">DeleteTable</a>(const std::string &amp;table_name)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html">kudu::client::KuduClient</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#ae932971967e58a8a7b85f6a56ee44cd0">ExportAuthenticationCredentials</a>(std::string *authn_creds) const</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html">kudu::client::KuduClient</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#aef70c7f3a596ecda4040f9d46514b11aaa060fb6126a3e3fa80079f885dc7d48f">FIRST_REPLICA</a> enum value</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html">kudu::client::KuduClient</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#aa4af2abf2a56d92d8795662fa090baa9">GetLatestObservedTimestamp</a>() const</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html">kudu::client::KuduClient</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#a2aa649e05e0cfb0e10ebce98fb4d7a65">GetTableSchema</a>(const std::string &amp;table_name, KuduSchema *schema)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html">kudu::client::KuduClient</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#a7a331e528759296089837b4611c01809">IsAlterTableInProgress</a>(const std::string &amp;table_name, bool *alter_in_progress)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html">kudu::client::KuduClient</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#a2f0323b439d8658b2ac31fde7f46de63">IsCreateTableInProgress</a>(const std::string &amp;table_name, bool *create_in_progress)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html">kudu::client::KuduClient</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#a1e1363d5dfab959b0d9ca98bfd390433">IsMultiMaster</a>() const</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html">kudu::client::KuduClient</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#a196f1a18c000cdca309d05161caaddaa">kNoTimestamp</a></td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html">kudu::client::KuduClient</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#aef70c7f3a596ecda4040f9d46514b11aafb912836db348061379d0e0a9055e239">LEADER_ONLY</a> enum value</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html">kudu::client::KuduClient</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#a3ab09f69753b8c99ac7b2eeed03faa1d">ListTables</a>(std::vector&lt; std::string &gt; *tables, const std::string &amp;filter=&quot;&quot;)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html">kudu::client::KuduClient</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#ae283a49551a081524b41f5d8e51e68d9">ListTabletServers</a>(std::vector&lt; KuduTabletServer * &gt; *tablet_servers)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html">kudu::client::KuduClient</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#a1f5b9bf8767b44f03f4d3220dfd5f925">NewSession</a>()</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html">kudu::client::KuduClient</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#a116bbcf13dc0991ad2a3129630075aea">NewTableAlterer</a>(const std::string &amp;table_name)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html">kudu::client::KuduClient</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#a003f13604b4fb378f61e133a9b49d153">NewTableCreator</a>()</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html">kudu::client::KuduClient</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#a68b569dd6749ec61805e3b0a691eacac">connection_negotiation_timeout</a>() const</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html">kudu::client::KuduClient</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#a0646b1b93edeb92cf7ea46a1bb433838">default_admin_operation_timeout</a>() const</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html">kudu::client::KuduClient</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#aaae3d73831a41d260d2578fef68bcd49">default_rpc_timeout</a>() const</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html">kudu::client::KuduClient</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#a9d7cbad036bc74c71873a428abce5c1d">DeleteTable</a>(const std::string &amp;table_name)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html">kudu::client::KuduClient</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#ae932971967e58a8a7b85f6a56ee44cd0">ExportAuthenticationCredentials</a>(std::string *authn_creds) const</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html">kudu::client::KuduClient</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#aef70c7f3a596ecda4040f9d46514b11aaa060fb6126a3e3fa80079f885dc7d48f">FIRST_REPLICA</a> enum value</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html">kudu::client::KuduClient</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#aa4af2abf2a56d92d8795662fa090baa9">GetLatestObservedTimestamp</a>() const</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html">kudu::client::KuduClient</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#a2aa649e05e0cfb0e10ebce98fb4d7a65">GetTableSchema</a>(const std::string &amp;table_name, KuduSchema *schema)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html">kudu::client::KuduClient</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#a7a331e528759296089837b4611c01809">IsAlterTableInProgress</a>(const std::string &amp;table_name, bool *alter_in_progress)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html">kudu::client::KuduClient</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#a2f0323b439d8658b2ac31fde7f46de63">IsCreateTableInProgress</a>(const std::string &amp;table_name, bool *create_in_progress)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html">kudu::client::KuduClient</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#a1e1363d5dfab959b0d9ca98bfd390433">IsMultiMaster</a>() const</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html">kudu::client::KuduClient</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#a196f1a18c000cdca309d05161caaddaa">kNoTimestamp</a></td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html">kudu::client::KuduClient</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#aef70c7f3a596ecda4040f9d46514b11aafb912836db348061379d0e0a9055e239">LEADER_ONLY</a> enum value</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html">kudu::client::KuduClient</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#a3ab09f69753b8c99ac7b2eeed03faa1d">ListTables</a>(std::vector&lt; std::string &gt; *tables, const std::string &amp;filter=&quot;&quot;)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html">kudu::client::KuduClient</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#ae283a49551a081524b41f5d8e51e68d9">ListTabletServers</a>(std::vector&lt; KuduTabletServer * &gt; *tablet_servers)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html">kudu::client::KuduClient</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#a1f5b9bf8767b44f03f4d3220dfd5f925">NewSession</a>()</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html">kudu::client::KuduClient</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#a116bbcf13dc0991ad2a3129630075aea">NewTableAlterer</a>(const std::string &amp;table_name)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html">kudu::client::KuduClient</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#a003f13604b4fb378f61e133a9b49d153">NewTableCreator</a>()</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html">kudu::client::KuduClient</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#acce5fd87acb241d2ce2686545f423345">NewTransaction</a>(sp::shared_ptr&lt; KuduTransaction &gt; *txn) WARN_UNUSED_RESULT</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html">kudu::client::KuduClient</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#aa82a09718ffe68d3255195e736aec8d7">OpenTable</a>(const std::string &amp;table_name, sp::shared_ptr&lt; KuduTable &gt; *table)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html">kudu::client::KuduClient</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#aef70c7f3a596ecda4040f9d46514b11a">ReplicaSelection</a> enum name</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html">kudu::client::KuduClient</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#a0809b055eda76fd68988462f2a9791dd">SetLatestObservedTimestamp</a>(uint64_t ht_timestamp)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClient.html">kudu::client::KuduClient</a></td><td class="entry"></td></tr>
@@ -99,9 +101,9 @@
 <!-- start footer part -->
 <hr class="footer"/>
 <address class="footer">
-  <small>Generated for Kudu version 1.13.0 on Fri Sep 18 2020 15:03:20 by Doxygen 1.8.19</small>
+  <small>Generated for Kudu version 1.14.0 on Thu Jan 28 2021 11:11:20 by Doxygen 1.9.1</small>
   <br>
-  <small>Copyright © 2020 The Apache Software Foundation.</small>
+  <small>Copyright © 2021 The Apache Software Foundation.</small>
 </address>
 </body>
 </html>
diff --git a/cpp-client-api/classkudu_1_1client_1_1KuduClient.html b/cpp-client-api/classkudu_1_1client_1_1KuduClient.html
index 277689f..8117b4d 100644
--- a/cpp-client-api/classkudu_1_1client_1_1KuduClient.html
+++ b/cpp-client-api/classkudu_1_1client_1_1KuduClient.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.19"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>Kudu C++ client API: kudu::client::KuduClient Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -29,10 +29,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.19 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -88,9 +88,9 @@
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
 Public Types</h2></td></tr>
-<tr class="memitem:aef70c7f3a596ecda4040f9d46514b11a"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#aef70c7f3a596ecda4040f9d46514b11a">ReplicaSelection</a> { <a class="el" href="classkudu_1_1client_1_1KuduClient.html#aef70c7f3a596ecda4040f9d46514b11aafb912836db348061379d0e0a9055e239">LEADER_ONLY</a>, 
-<a class="el" href="classkudu_1_1client_1_1KuduClient.html#aef70c7f3a596ecda4040f9d46514b11aa801886067da41dacd0c9c2b8091f08d8">CLOSEST_REPLICA</a>, 
-<a class="el" href="classkudu_1_1client_1_1KuduClient.html#aef70c7f3a596ecda4040f9d46514b11aaa060fb6126a3e3fa80079f885dc7d48f">FIRST_REPLICA</a>
+<tr class="memitem:aef70c7f3a596ecda4040f9d46514b11a"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#aef70c7f3a596ecda4040f9d46514b11a">ReplicaSelection</a> { <a class="el" href="classkudu_1_1client_1_1KuduClient.html#aef70c7f3a596ecda4040f9d46514b11aafb912836db348061379d0e0a9055e239">LEADER_ONLY</a>
+, <a class="el" href="classkudu_1_1client_1_1KuduClient.html#aef70c7f3a596ecda4040f9d46514b11aa801886067da41dacd0c9c2b8091f08d8">CLOSEST_REPLICA</a>
+, <a class="el" href="classkudu_1_1client_1_1KuduClient.html#aef70c7f3a596ecda4040f9d46514b11aaa060fb6126a3e3fa80079f885dc7d48f">FIRST_REPLICA</a>
  }</td></tr>
 <tr class="memdesc:aef70c7f3a596ecda4040f9d46514b11a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Policy with which to choose amongst multiple replicas.  <a href="classkudu_1_1client_1_1KuduClient.html#aef70c7f3a596ecda4040f9d46514b11a">More...</a><br /></td></tr>
 <tr class="separator:aef70c7f3a596ecda4040f9d46514b11a"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -119,12 +119,16 @@
 <tr class="separator:aa82a09718ffe68d3255195e736aec8d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a1f5b9bf8767b44f03f4d3220dfd5f925"><td class="memItemLeft" align="right" valign="top">sp::shared_ptr&lt; <a class="el" href="classkudu_1_1client_1_1KuduSession.html">KuduSession</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#a1f5b9bf8767b44f03f4d3220dfd5f925">NewSession</a> ()</td></tr>
 <tr class="separator:a1f5b9bf8767b44f03f4d3220dfd5f925"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acce5fd87acb241d2ce2686545f423345"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#acce5fd87acb241d2ce2686545f423345">NewTransaction</a> (sp::shared_ptr&lt; <a class="el" href="classkudu_1_1client_1_1KuduTransaction.html">KuduTransaction</a> &gt; *txn) WARN_UNUSED_RESULT</td></tr>
+<tr class="separator:acce5fd87acb241d2ce2686545f423345"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a1e1363d5dfab959b0d9ca98bfd390433"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#a1e1363d5dfab959b0d9ca98bfd390433">IsMultiMaster</a> () const</td></tr>
 <tr class="separator:a1e1363d5dfab959b0d9ca98bfd390433"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a0646b1b93edeb92cf7ea46a1bb433838"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classkudu_1_1MonoDelta.html">MonoDelta</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#a0646b1b93edeb92cf7ea46a1bb433838">default_admin_operation_timeout</a> () const</td></tr>
 <tr class="separator:a0646b1b93edeb92cf7ea46a1bb433838"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:aaae3d73831a41d260d2578fef68bcd49"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classkudu_1_1MonoDelta.html">MonoDelta</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#aaae3d73831a41d260d2578fef68bcd49">default_rpc_timeout</a> () const</td></tr>
 <tr class="separator:aaae3d73831a41d260d2578fef68bcd49"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a68b569dd6749ec61805e3b0a691eacac"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1MonoDelta.html">MonoDelta</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#a68b569dd6749ec61805e3b0a691eacac">connection_negotiation_timeout</a> () const</td></tr>
+<tr class="separator:a68b569dd6749ec61805e3b0a691eacac"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:aa4af2abf2a56d92d8795662fa090baa9"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#aa4af2abf2a56d92d8795662fa090baa9">GetLatestObservedTimestamp</a> () const</td></tr>
 <tr class="separator:aa4af2abf2a56d92d8795662fa090baa9"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a0809b055eda76fd68988462f2a9791dd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduClient.html#a0809b055eda76fd68988462f2a9791dd">SetLatestObservedTimestamp</a> (uint64_t ht_timestamp)</td></tr>
@@ -174,6 +178,24 @@
 </div>
 </div>
 <h2 class="groupheader">Member Function Documentation</h2>
+<a id="a68b569dd6749ec61805e3b0a691eacac"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a68b569dd6749ec61805e3b0a691eacac">&#9670;&nbsp;</a></span>connection_negotiation_timeout()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classkudu_1_1MonoDelta.html">MonoDelta</a> kudu::client::KuduClient::connection_negotiation_timeout </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="section return"><dt>Returns</dt><dd>Timeout for connection negotiation to a remote server. </dd></dl>
+
+</div>
+</div>
 <a id="a0646b1b93edeb92cf7ea46a1bb433838"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#a0646b1b93edeb92cf7ea46a1bb433838">&#9670;&nbsp;</a></span>default_admin_operation_timeout()</h2>
 
@@ -541,6 +563,35 @@
 
 </div>
 </div>
+<a id="acce5fd87acb241d2ce2686545f423345"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#acce5fd87acb241d2ce2686545f423345">&#9670;&nbsp;</a></span>NewTransaction()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classkudu_1_1Status.html">Status</a> kudu::client::KuduClient::NewTransaction </td>
+          <td>(</td>
+          <td class="paramtype">sp::shared_ptr&lt; <a class="el" href="classkudu_1_1client_1_1KuduTransaction.html">KuduTransaction</a> &gt; *&#160;</td>
+          <td class="paramname"><em>txn</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Start a multi-row transaction.</p>
+<p>This method results in an RPC sent to a Kudu cluster to begin a multi-row distributed transaction. In case of success, the resulting transaction handle is output into the 'txn' parameter. That handle can be used to create a new <code><a class="el" href="classkudu_1_1client_1_1KuduSession.html" title="Representation of a Kudu client session.">KuduSession</a></code> using the <code>NewSession(const sp::shared_ptr&lt;KuduSession&gt;&amp;)</code> method. To commit or rollback all single-row write operations performed in the context of the newly created transaction, use <code><a class="el" href="classkudu_1_1client_1_1KuduTransaction.html#a408faa78430a38314881ae51450893c2">KuduTransaction::Commit()</a></code> and <code><a class="el" href="classkudu_1_1client_1_1KuduTransaction.html#a68b5c532b44f84beabe7ae7ca46889f8">KuduTransaction::Rollback()</a></code> methods correspondingly.</p>
+<dl class="section note"><dt>Note</dt><dd>The newly created object starts sending keep-alive messages for the newly opened transaction as required by the keep-alive interval assigned to the transaction by the system. To keep the heartbeating, the newly created <code><a class="el" href="classkudu_1_1client_1_1KuduTransaction.html">KuduTransaction</a></code> should be kept in scope.</dd></dl>
+<dl class="section warning"><dt>Warning</dt><dd>This method is experimental and may change or disappear in future.</dd></dl>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">txn</td><td>[out] The resulting <code><a class="el" href="classkudu_1_1client_1_1KuduTransaction.html">KuduTransaction</a></code> object wrapped into a smart pointer. This 'out' parameter is populated iff the operation to begin a transaction was successful. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The status of underlying "begin transaction" operation. </dd></dl>
+
+</div>
+</div>
 <a id="aa82a09718ffe68d3255195e736aec8d7"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#aa82a09718ffe68d3255195e736aec8d7">&#9670;&nbsp;</a></span>OpenTable()</h2>
 
@@ -577,8 +628,9 @@
   </dd>
 </dl>
 <dl class="section return"><dt>Returns</dt><dd>Operation status.</dd></dl>
-<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000002">Todo:</a></b></dt><dd>Should we offer an async version of this as well? </dd></dl>
-<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000003">Todo:</a></b></dt><dd>Probably should have a configurable timeout in <a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html" title="A &quot;factory&quot; for KuduClient objects.">KuduClientBuilder</a>? </dd></dl>
+<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000002">Todo:</a></b></dt><dd><p class="startdd">Should we offer an async version of this as well? </p>
+<p class="enddd">Probably should have a configurable timeout in <a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html" title="A &quot;factory&quot; for KuduClient objects.">KuduClientBuilder</a>? </p>
+</dd></dl>
 
 </div>
 </div>
@@ -678,9 +730,9 @@
 <!-- start footer part -->
 <hr class="footer"/>
 <address class="footer">
-  <small>Generated for Kudu version 1.13.0 on Fri Sep 18 2020 15:03:20 by Doxygen 1.8.19</small>
+  <small>Generated for Kudu version 1.14.0 on Thu Jan 28 2021 11:11:20 by Doxygen 1.9.1</small>
   <br>
-  <small>Copyright © 2020 The Apache Software Foundation.</small>
+  <small>Copyright © 2021 The Apache Software Foundation.</small>
 </address>
 </body>
 </html>
diff --git a/cpp-client-api/classkudu_1_1client_1_1KuduClientBuilder-members.html b/cpp-client-api/classkudu_1_1client_1_1KuduClientBuilder-members.html
index 307a3e3..1666b98 100644
--- a/cpp-client-api/classkudu_1_1client_1_1KuduClientBuilder-members.html
+++ b/cpp-client-api/classkudu_1_1client_1_1KuduClientBuilder-members.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.19"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>Kudu C++ client API: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -29,10 +29,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.19 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -75,20 +75,21 @@
   <tr class="even"><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html#add149f1c1c2d3653e6a6cae4f44fa90c">add_master_server_addr</a>(const std::string &amp;addr)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html">kudu::client::KuduClientBuilder</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html#a1585dd6eff82519fe81088d1cfd35b77">Build</a>(sp::shared_ptr&lt; KuduClient &gt; *client)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html">kudu::client::KuduClientBuilder</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html#a08f4d2bf7053c6336e625ee2e6eeddd1">clear_master_server_addrs</a>()</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html">kudu::client::KuduClientBuilder</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html#a6114bb56e4d9d1231df0ef73c9aec752">default_admin_operation_timeout</a>(const MonoDelta &amp;timeout)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html">kudu::client::KuduClientBuilder</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html#a1813e8c8d24e92a0a710724000e2b3df">default_rpc_timeout</a>(const MonoDelta &amp;timeout)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html">kudu::client::KuduClientBuilder</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html#a5c411bc4638cbf77e5d318f5049b0b7e">import_authentication_credentials</a>(std::string authn_creds)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html">kudu::client::KuduClientBuilder</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>KuduClientBuilder</b>() (defined in <a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html">kudu::client::KuduClientBuilder</a>)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html">kudu::client::KuduClientBuilder</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html#a0c1b92afad7a6e21c5ea781fb7d42114">master_server_addrs</a>(const std::vector&lt; std::string &gt; &amp;addrs)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html">kudu::client::KuduClientBuilder</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html#a66ba0fb68608ebc4a6c7e9148848cddb">num_reactors</a>(int num_reactors)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html">kudu::client::KuduClientBuilder</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>~KuduClientBuilder</b>() (defined in <a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html">kudu::client::KuduClientBuilder</a>)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html">kudu::client::KuduClientBuilder</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html#af2dcfb700c52d531f0da7146f331521f">connection_negotiation_timeout</a>(const MonoDelta &amp;timeout)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html">kudu::client::KuduClientBuilder</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html#a6114bb56e4d9d1231df0ef73c9aec752">default_admin_operation_timeout</a>(const MonoDelta &amp;timeout)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html">kudu::client::KuduClientBuilder</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html#a1813e8c8d24e92a0a710724000e2b3df">default_rpc_timeout</a>(const MonoDelta &amp;timeout)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html">kudu::client::KuduClientBuilder</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html#a5c411bc4638cbf77e5d318f5049b0b7e">import_authentication_credentials</a>(std::string authn_creds)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html">kudu::client::KuduClientBuilder</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>KuduClientBuilder</b>() (defined in <a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html">kudu::client::KuduClientBuilder</a>)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html">kudu::client::KuduClientBuilder</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html#a0c1b92afad7a6e21c5ea781fb7d42114">master_server_addrs</a>(const std::vector&lt; std::string &gt; &amp;addrs)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html">kudu::client::KuduClientBuilder</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html#a66ba0fb68608ebc4a6c7e9148848cddb">num_reactors</a>(int num_reactors)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html">kudu::client::KuduClientBuilder</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~KuduClientBuilder</b>() (defined in <a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html">kudu::client::KuduClientBuilder</a>)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html">kudu::client::KuduClientBuilder</a></td><td class="entry"></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/>
 <address class="footer">
-  <small>Generated for Kudu version 1.13.0 on Fri Sep 18 2020 15:03:20 by Doxygen 1.8.19</small>
+  <small>Generated for Kudu version 1.14.0 on Thu Jan 28 2021 11:11:20 by Doxygen 1.9.1</small>
   <br>
-  <small>Copyright © 2020 The Apache Software Foundation.</small>
+  <small>Copyright © 2021 The Apache Software Foundation.</small>
 </address>
 </body>
 </html>
diff --git a/cpp-client-api/classkudu_1_1client_1_1KuduClientBuilder.html b/cpp-client-api/classkudu_1_1client_1_1KuduClientBuilder.html
index c4d570b..39994da 100644
--- a/cpp-client-api/classkudu_1_1client_1_1KuduClientBuilder.html
+++ b/cpp-client-api/classkudu_1_1client_1_1KuduClientBuilder.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.19"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>Kudu C++ client API: kudu::client::KuduClientBuilder Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -29,10 +29,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.19 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -90,6 +90,8 @@
 <tr class="separator:a6114bb56e4d9d1231df0ef73c9aec752"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a1813e8c8d24e92a0a710724000e2b3df"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html">KuduClientBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html#a1813e8c8d24e92a0a710724000e2b3df">default_rpc_timeout</a> (const <a class="el" href="classkudu_1_1MonoDelta.html">MonoDelta</a> &amp;timeout)</td></tr>
 <tr class="separator:a1813e8c8d24e92a0a710724000e2b3df"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af2dcfb700c52d531f0da7146f331521f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html">KuduClientBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html#af2dcfb700c52d531f0da7146f331521f">connection_negotiation_timeout</a> (const <a class="el" href="classkudu_1_1MonoDelta.html">MonoDelta</a> &amp;timeout)</td></tr>
+<tr class="separator:af2dcfb700c52d531f0da7146f331521f"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a5c411bc4638cbf77e5d318f5049b0b7e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html">KuduClientBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html#a5c411bc4638cbf77e5d318f5049b0b7e">import_authentication_credentials</a> (std::string authn_creds)</td></tr>
 <tr class="separator:a5c411bc4638cbf77e5d318f5049b0b7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a66ba0fb68608ebc4a6c7e9148848cddb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html">KuduClientBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html#a66ba0fb68608ebc4a6c7e9148848cddb">num_reactors</a> (int num_reactors)</td></tr>
@@ -175,6 +177,33 @@
 
 </div>
 </div>
+<a id="af2dcfb700c52d531f0da7146f331521f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af2dcfb700c52d531f0da7146f331521f">&#9670;&nbsp;</a></span>connection_negotiation_timeout()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classkudu_1_1client_1_1KuduClientBuilder.html">KuduClientBuilder</a>&amp; kudu::client::KuduClientBuilder::connection_negotiation_timeout </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="classkudu_1_1MonoDelta.html">MonoDelta</a> &amp;&#160;</td>
+          <td class="paramname"><em>timeout</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Set the timeout for negotiating a connection to a remote server.</p>
+<p>If not provided, the underlying messenger is created with reasonable default. The result value could be retrieved using <code><a class="el" href="classkudu_1_1client_1_1KuduClient.html#a68b569dd6749ec61805e3b0a691eacac">KuduClient.connection_negotiation_timeout()</a></code> after an instance of <code><a class="el" href="classkudu_1_1client_1_1KuduClient.html" title="A handle for a connection to a cluster.">KuduClient</a></code> is created. Sometimes it makes sense to customize the timeout for connection negotiation, e.g. when running on a cluster with heavily loaded tablet servers. For details on the connection negotiation, see ../../../docs/design-docs/rpc.md::negotiation.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramdir">[in]</td><td class="paramname">timeout</td><td>Timeout value to set. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Reference to the updated object. </dd></dl>
+
+</div>
+</div>
 <a id="a6114bb56e4d9d1231df0ef73c9aec752"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#a6114bb56e4d9d1231df0ef73c9aec752">&#9670;&nbsp;</a></span>default_admin_operation_timeout()</h2>
 
@@ -316,9 +345,9 @@
 <!-- start footer part -->
 <hr class="footer"/>
 <address class="footer">
-  <small>Generated for Kudu version 1.13.0 on Fri Sep 18 2020 15:03:20 by Doxygen 1.8.19</small>
+  <small>Generated for Kudu version 1.14.0 on Thu Jan 28 2021 11:11:20 by Doxygen 1.9.1</small>
   <br>
-  <small>Copyright © 2020 The Apache Software Foundation.</small>
+  <small>Copyright © 2021 The Apache Software Foundation.</small>
 </address>
 </body>
 </html>
diff --git a/cpp-client-api/classkudu_1_1client_1_1KuduColumnSchema-members.html b/cpp-client-api/classkudu_1_1client_1_1KuduColumnSchema-members.html
index 9c224b1..7eafed9 100644
--- a/cpp-client-api/classkudu_1_1client_1_1KuduColumnSchema-members.html
+++ b/cpp-client-api/classkudu_1_1client_1_1KuduColumnSchema-members.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.19"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>Kudu C++ client API: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -29,10 +29,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.19 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -103,9 +103,9 @@
 <!-- start footer part -->
 <hr class="footer"/>
 <address class="footer">
-  <small>Generated for Kudu version 1.13.0 on Fri Sep 18 2020 15:03:20 by Doxygen 1.8.19</small>
+  <small>Generated for Kudu version 1.14.0 on Thu Jan 28 2021 11:11:20 by Doxygen 1.9.1</small>
   <br>
-  <small>Copyright © 2020 The Apache Software Foundation.</small>
+  <small>Copyright © 2021 The Apache Software Foundation.</small>
 </address>
 </body>
 </html>
diff --git a/cpp-client-api/classkudu_1_1client_1_1KuduColumnSchema.html b/cpp-client-api/classkudu_1_1client_1_1KuduColumnSchema.html
index 8f583ce..f453ec9 100644
--- a/cpp-client-api/classkudu_1_1client_1_1KuduColumnSchema.html
+++ b/cpp-client-api/classkudu_1_1client_1_1KuduColumnSchema.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.19"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>Kudu C++ client API: kudu::client::KuduColumnSchema Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -29,10 +29,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.19 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -83,23 +83,23 @@
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
 Public Types</h2></td></tr>
 <tr class="memitem:aba69238e70af5c887a4fb11fa2a120c5"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduColumnSchema.html#aba69238e70af5c887a4fb11fa2a120c5">DataType</a> { <br />
-&#160;&#160;<b>INT8</b> = 0, 
-<b>INT16</b> = 1, 
-<b>INT32</b> = 2, 
-<b>INT64</b> = 3, 
-<br />
-&#160;&#160;<b>STRING</b> = 4, 
-<b>BOOL</b> = 5, 
-<b>FLOAT</b> = 6, 
-<b>DOUBLE</b> = 7, 
-<br />
-&#160;&#160;<b>BINARY</b> = 8, 
-<b>UNIXTIME_MICROS</b> = 9, 
-<b>DECIMAL</b> = 10, 
-<b>VARCHAR</b> = 11, 
-<br />
-&#160;&#160;<a class="el" href="classkudu_1_1client_1_1KuduColumnSchema.html#aba69238e70af5c887a4fb11fa2a120c5a27d1b7aca7cf9a01d9258a41bbe3b505">TIMESTAMP</a> = UNIXTIME_MICROS, 
-<b>DATE</b> = 12
+&#160;&#160;<b>INT8</b> = 0
+, <b>INT16</b> = 1
+, <b>INT32</b> = 2
+, <b>INT64</b> = 3
+, <br />
+&#160;&#160;<b>STRING</b> = 4
+, <b>BOOL</b> = 5
+, <b>FLOAT</b> = 6
+, <b>DOUBLE</b> = 7
+, <br />
+&#160;&#160;<b>BINARY</b> = 8
+, <b>UNIXTIME_MICROS</b> = 9
+, <b>DECIMAL</b> = 10
+, <b>VARCHAR</b> = 11
+, <br />
+&#160;&#160;<a class="el" href="classkudu_1_1client_1_1KuduColumnSchema.html#aba69238e70af5c887a4fb11fa2a120c5a27d1b7aca7cf9a01d9258a41bbe3b505">TIMESTAMP</a> = UNIXTIME_MICROS
+, <b>DATE</b> = 12
 <br />
  }</td></tr>
 <tr class="memdesc:aba69238e70af5c887a4fb11fa2a120c5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Supported data types for columns.  <a href="classkudu_1_1client_1_1KuduColumnSchema.html#aba69238e70af5c887a4fb11fa2a120c5">More...</a><br /></td></tr>
@@ -120,7 +120,7 @@
 <tr class="memitem:a04b9d65ed5d347bf3cffa5419a756c9f"><td class="memItemLeft" align="right" valign="top">const std::string &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduColumnSchema.html#a04b9d65ed5d347bf3cffa5419a756c9f">comment</a> () const</td></tr>
 <tr class="separator:a04b9d65ed5d347bf3cffa5419a756c9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr><td colspan="2"><div class="groupHeader">Getters to expose column schema information.</div></td></tr>
-<tr><td colspan="2"><div class="groupText"><dl class="todo"><dt><b><a class="el" href="todo.html#_todo000012">Todo:</a></b></dt><dd>Expose default column value and attributes?</dd></dl>
+<tr><td colspan="2"><div class="groupText"><dl class="todo"><dt><b><a class="el" href="todo.html#_todo000011">Todo:</a></b></dt><dd>Expose default column value and attributes?</dd></dl>
 <dl class="section return"><dt>Returns</dt><dd>Name of the column schema. </dd></dl>
 </div></td></tr>
 <tr class="memitem:a1cda4c693af7226ddde29bf70da4cfcf"><td class="memItemLeft" align="right" valign="top">const std::string &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduColumnSchema.html#a1cda4c693af7226ddde29bf70da4cfcf">name</a> () const</td></tr>
@@ -439,9 +439,9 @@
 <!-- start footer part -->
 <hr class="footer"/>
 <address class="footer">
-  <small>Generated for Kudu version 1.13.0 on Fri Sep 18 2020 15:03:20 by Doxygen 1.8.19</small>
+  <small>Generated for Kudu version 1.14.0 on Thu Jan 28 2021 11:11:20 by Doxygen 1.9.1</small>
   <br>
-  <small>Copyright © 2020 The Apache Software Foundation.</small>
+  <small>Copyright © 2021 The Apache Software Foundation.</small>
 </address>
 </body>
 </html>
diff --git a/cpp-client-api/classkudu_1_1client_1_1KuduColumnSpec-members.html b/cpp-client-api/classkudu_1_1client_1_1KuduColumnSpec-members.html
index 408c8e5..ba0af69 100644
--- a/cpp-client-api/classkudu_1_1client_1_1KuduColumnSpec-members.html
+++ b/cpp-client-api/classkudu_1_1client_1_1KuduColumnSpec-members.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.19"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>Kudu C++ client API: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -29,10 +29,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.19 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -90,9 +90,9 @@
 <!-- start footer part -->
 <hr class="footer"/>
 <address class="footer">
-  <small>Generated for Kudu version 1.13.0 on Fri Sep 18 2020 15:03:20 by Doxygen 1.8.19</small>
+  <small>Generated for Kudu version 1.14.0 on Thu Jan 28 2021 11:11:20 by Doxygen 1.9.1</small>
   <br>
-  <small>Copyright © 2020 The Apache Software Foundation.</small>
+  <small>Copyright © 2021 The Apache Software Foundation.</small>
 </address>
 </body>
 </html>
diff --git a/cpp-client-api/classkudu_1_1client_1_1KuduColumnSpec.html b/cpp-client-api/classkudu_1_1client_1_1KuduColumnSpec.html
index 9dbc8f7..e9a082c 100644
--- a/cpp-client-api/classkudu_1_1client_1_1KuduColumnSpec.html
+++ b/cpp-client-api/classkudu_1_1client_1_1KuduColumnSpec.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.19"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>Kudu C++ client API: kudu::client::KuduColumnSpec Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -29,10 +29,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.19 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -116,7 +116,7 @@
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <div class="textblock"><p>Builder API for specifying or altering a column within a table schema. </p>
 <p>An object of this type cannot be constructed directly, but rather is returned from <a class="el" href="classkudu_1_1client_1_1KuduSchemaBuilder.html#a0fdf28d49cc05ba4f3182f7398ddf600">KuduSchemaBuilder::AddColumn()</a> to specify a column within a Schema.</p>
-<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000010">Todo:</a></b></dt><dd>KUDU-861: this API will also be used for an improved AlterTable API. </dd></dl>
+<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000009">Todo:</a></b></dt><dd>KUDU-861: this API will also be used for an improved AlterTable API. </dd></dl>
 </div><h2 class="groupheader">Member Function Documentation</h2>
 <a id="a8502dd68c6743c7c66b2b6a02d41a4e6"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#a8502dd68c6743c7c66b2b6a02d41a4e6">&#9670;&nbsp;</a></span>BlockSize()</h2>
@@ -138,7 +138,7 @@
 <dl class="section note"><dt>Note</dt><dd>The block size specified here corresponds to uncompressed data. The actual size of the unit read from disk may be smaller if compression is enabled.</dd>
 <dd>
 It's recommended that this not be set any lower than 4096 (4KB) or higher than 1048576 (1MB). </dd></dl>
-<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000013">Todo:</a></b></dt><dd>KUDU-1107: move above info to docs</dd></dl>
+<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000012">Todo:</a></b></dt><dd>KUDU-1107: move above info to docs</dd></dl>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramdir">[in]</td><td class="paramname">block_size</td><td>Block size (in bytes) to use. </td></tr>
@@ -480,9 +480,9 @@
 <!-- start footer part -->
 <hr class="footer"/>
 <address class="footer">
-  <small>Generated for Kudu version 1.13.0 on Fri Sep 18 2020 15:03:20 by Doxygen 1.8.19</small>
+  <small>Generated for Kudu version 1.14.0 on Thu Jan 28 2021 11:11:20 by Doxygen 1.9.1</small>
   <br>
-  <small>Copyright © 2020 The Apache Software Foundation.</small>
+  <small>Copyright © 2021 The Apache Software Foundation.</small>
 </address>
 </body>
 </html>
diff --git a/cpp-client-api/classkudu_1_1client_1_1KuduColumnStorageAttributes-members.html b/cpp-client-api/classkudu_1_1client_1_1KuduColumnStorageAttributes-members.html
index 7e1935f..ff535e4 100644
--- a/cpp-client-api/classkudu_1_1client_1_1KuduColumnStorageAttributes-members.html
+++ b/cpp-client-api/classkudu_1_1client_1_1KuduColumnStorageAttributes-members.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.19"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>Kudu C++ client API: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -29,10 +29,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.19 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -96,9 +96,9 @@
 <!-- start footer part -->
 <hr class="footer"/>
 <address class="footer">
-  <small>Generated for Kudu version 1.13.0 on Fri Sep 18 2020 15:03:20 by Doxygen 1.8.19</small>
+  <small>Generated for Kudu version 1.14.0 on Thu Jan 28 2021 11:11:20 by Doxygen 1.9.1</small>
   <br>
-  <small>Copyright © 2020 The Apache Software Foundation.</small>
+  <small>Copyright © 2021 The Apache Software Foundation.</small>
 </address>
 </body>
 </html>
diff --git a/cpp-client-api/classkudu_1_1client_1_1KuduColumnStorageAttributes.html b/cpp-client-api/classkudu_1_1client_1_1KuduColumnStorageAttributes.html
index e41daf9..23d7688 100644
--- a/cpp-client-api/classkudu_1_1client_1_1KuduColumnStorageAttributes.html
+++ b/cpp-client-api/classkudu_1_1client_1_1KuduColumnStorageAttributes.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.19"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>Kudu C++ client API: kudu::client::KuduColumnStorageAttributes Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -29,10 +29,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.19 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -83,24 +83,24 @@
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
 Public Types</h2></td></tr>
 <tr class="memitem:aeb835a12e6f40b1a619afa8abd773b6d"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduColumnStorageAttributes.html#aeb835a12e6f40b1a619afa8abd773b6d">EncodingType</a> { <br />
-&#160;&#160;<b>AUTO_ENCODING</b> = 0, 
-<b>PLAIN_ENCODING</b> = 1, 
-<b>PREFIX_ENCODING</b> = 2, 
-<b>RLE</b> = 4, 
-<br />
-&#160;&#160;<b>DICT_ENCODING</b> = 5, 
-<b>BIT_SHUFFLE</b> = 6, 
-<a class="el" href="classkudu_1_1client_1_1KuduColumnStorageAttributes.html#aeb835a12e6f40b1a619afa8abd773b6da28c1ed31be30579070232164c24b4b82">GROUP_VARINT</a> = 3
+&#160;&#160;<b>AUTO_ENCODING</b> = 0
+, <b>PLAIN_ENCODING</b> = 1
+, <b>PREFIX_ENCODING</b> = 2
+, <b>RLE</b> = 4
+, <br />
+&#160;&#160;<b>DICT_ENCODING</b> = 5
+, <b>BIT_SHUFFLE</b> = 6
+, <a class="el" href="classkudu_1_1client_1_1KuduColumnStorageAttributes.html#aeb835a12e6f40b1a619afa8abd773b6da28c1ed31be30579070232164c24b4b82">GROUP_VARINT</a> = 3
 <br />
  }</td></tr>
 <tr class="memdesc:aeb835a12e6f40b1a619afa8abd773b6d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Column encoding types.  <a href="classkudu_1_1client_1_1KuduColumnStorageAttributes.html#aeb835a12e6f40b1a619afa8abd773b6d">More...</a><br /></td></tr>
 <tr class="separator:aeb835a12e6f40b1a619afa8abd773b6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:af579406931a40daa5cb9e10603341a78"><td class="memItemLeft" align="right" valign="top"><a id="af579406931a40daa5cb9e10603341a78"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduColumnStorageAttributes.html#af579406931a40daa5cb9e10603341a78">CompressionType</a> { <br />
-&#160;&#160;<b>DEFAULT_COMPRESSION</b> = 0, 
-<b>NO_COMPRESSION</b> = 1, 
-<b>SNAPPY</b> = 2, 
-<b>LZ4</b> = 3, 
-<br />
+&#160;&#160;<b>DEFAULT_COMPRESSION</b> = 0
+, <b>NO_COMPRESSION</b> = 1
+, <b>SNAPPY</b> = 2
+, <b>LZ4</b> = 3
+, <br />
 &#160;&#160;<b>ZLIB</b> = 4
 <br />
  }</td></tr>
@@ -189,7 +189,7 @@
 </table>
 </div><div class="memdoc">
 <dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000009">Deprecated:</a></b></dt><dd>This constructor is deprecated for external use, and will be made private in a future release.</dd></dl>
-<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000011">Todo:</a></b></dt><dd>Make this constructor private.</dd></dl>
+<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000010">Todo:</a></b></dt><dd>Make this constructor private.</dd></dl>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramdir">[in]</td><td class="paramname">encoding</td><td>Encoding type for the column storage. </td></tr>
@@ -367,9 +367,9 @@
 <!-- start footer part -->
 <hr class="footer"/>
 <address class="footer">
-  <small>Generated for Kudu version 1.13.0 on Fri Sep 18 2020 15:03:20 by Doxygen 1.8.19</small>
+  <small>Generated for Kudu version 1.14.0 on Thu Jan 28 2021 11:11:20 by Doxygen 1.9.1</small>
   <br>
-  <small>Copyright © 2020 The Apache Software Foundation.</small>
+  <small>Copyright © 2021 The Apache Software Foundation.</small>
 </address>
 </body>
 </html>
diff --git a/cpp-client-api/classkudu_1_1client_1_1KuduColumnTypeAttributes-members.html b/cpp-client-api/classkudu_1_1client_1_1KuduColumnTypeAttributes-members.html
index d67dbeb..a7cb209 100644
--- a/cpp-client-api/classkudu_1_1client_1_1KuduColumnTypeAttributes-members.html
+++ b/cpp-client-api/classkudu_1_1client_1_1KuduColumnTypeAttributes-members.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.19"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>Kudu C++ client API: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -29,10 +29,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.19 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -86,9 +86,9 @@
 <!-- start footer part -->
 <hr class="footer"/>
 <address class="footer">
-  <small>Generated for Kudu version 1.13.0 on Fri Sep 18 2020 15:03:20 by Doxygen 1.8.19</small>
+  <small>Generated for Kudu version 1.14.0 on Thu Jan 28 2021 11:11:20 by Doxygen 1.9.1</small>
   <br>
-  <small>Copyright © 2020 The Apache Software Foundation.</small>
+  <small>Copyright © 2021 The Apache Software Foundation.</small>
 </address>
 </body>
 </html>
diff --git a/cpp-client-api/classkudu_1_1client_1_1KuduColumnTypeAttributes.html b/cpp-client-api/classkudu_1_1client_1_1KuduColumnTypeAttributes.html
index 04403c7..7659bed 100644
--- a/cpp-client-api/classkudu_1_1client_1_1KuduColumnTypeAttributes.html
+++ b/cpp-client-api/classkudu_1_1client_1_1KuduColumnTypeAttributes.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.19"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>Kudu C++ client API: kudu::client::KuduColumnTypeAttributes Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -29,10 +29,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.19 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -306,9 +306,9 @@
 <!-- start footer part -->
 <hr class="footer"/>
 <address class="footer">
-  <small>Generated for Kudu version 1.13.0 on Fri Sep 18 2020 15:03:20 by Doxygen 1.8.19</small>
+  <small>Generated for Kudu version 1.14.0 on Thu Jan 28 2021 11:11:20 by Doxygen 1.9.1</small>
   <br>
-  <small>Copyright © 2020 The Apache Software Foundation.</small>
+  <small>Copyright © 2021 The Apache Software Foundation.</small>
 </address>
 </body>
 </html>
diff --git a/cpp-client-api/classkudu_1_1client_1_1KuduColumnarScanBatch-members.html b/cpp-client-api/classkudu_1_1client_1_1KuduColumnarScanBatch-members.html
index 58f2df6..caa5f88 100644
--- a/cpp-client-api/classkudu_1_1client_1_1KuduColumnarScanBatch-members.html
+++ b/cpp-client-api/classkudu_1_1client_1_1KuduColumnarScanBatch-members.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.19"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>Kudu C++ client API: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -29,10 +29,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.19 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -82,9 +82,9 @@
 <!-- start footer part -->
 <hr class="footer"/>
 <address class="footer">
-  <small>Generated for Kudu version 1.13.0 on Fri Sep 18 2020 15:03:20 by Doxygen 1.8.19</small>
+  <small>Generated for Kudu version 1.14.0 on Thu Jan 28 2021 11:11:20 by Doxygen 1.9.1</small>
   <br>
-  <small>Copyright © 2020 The Apache Software Foundation.</small>
+  <small>Copyright © 2021 The Apache Software Foundation.</small>
 </address>
 </body>
 </html>
diff --git a/cpp-client-api/classkudu_1_1client_1_1KuduColumnarScanBatch.html b/cpp-client-api/classkudu_1_1client_1_1KuduColumnarScanBatch.html
index cf56e01..c56515b 100644
--- a/cpp-client-api/classkudu_1_1client_1_1KuduColumnarScanBatch.html
+++ b/cpp-client-api/classkudu_1_1client_1_1KuduColumnarScanBatch.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.19"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>Kudu C++ client API: kudu::client::KuduColumnarScanBatch Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -29,10 +29,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.19 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -244,9 +244,9 @@
 <!-- start footer part -->
 <hr class="footer"/>
 <address class="footer">
-  <small>Generated for Kudu version 1.13.0 on Fri Sep 18 2020 15:03:20 by Doxygen 1.8.19</small>
+  <small>Generated for Kudu version 1.14.0 on Thu Jan 28 2021 11:11:20 by Doxygen 1.9.1</small>
   <br>
-  <small>Copyright © 2020 The Apache Software Foundation.</small>
+  <small>Copyright © 2021 The Apache Software Foundation.</small>
 </address>
 </body>
 </html>
diff --git a/cpp-client-api/classkudu_1_1client_1_1KuduDelete-members.html b/cpp-client-api/classkudu_1_1client_1_1KuduDelete-members.html
index b551a3e..47f1f5e 100644
--- a/cpp-client-api/classkudu_1_1client_1_1KuduDelete-members.html
+++ b/cpp-client-api/classkudu_1_1client_1_1KuduDelete-members.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.19"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>Kudu C++ client API: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -29,10 +29,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.19 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -73,13 +73,15 @@
 <p>This is the complete list of members for <a class="el" href="classkudu_1_1client_1_1KuduDelete.html">kudu::client::KuduDelete</a>, including all inherited members.</p>
 <table class="directory">
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>DELETE</b> enum value (defined in <a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a>)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>INSERT</b> enum value (defined in <a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a>)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>INSERT_IGNORE</b> enum value (defined in <a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a>)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html#a8889770ce62e2ca0ce5d55c9c90af6bc">mutable_row</a>()</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html#ab73a467a979bc76bb4738ba038d7f0bd">row</a>() const</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduDelete.html#a586dc46e1d10118465e3b834ac578de0">ToString</a>() const OVERRIDE</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduDelete.html">kudu::client::KuduDelete</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html#a87d94ee5801a6b16fc6d1f44ee2e4357">Type</a> enum name</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>UPDATE</b> enum value (defined in <a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a>)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>DELETE_IGNORE</b> enum value (defined in <a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a>)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>INSERT</b> enum value (defined in <a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a>)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>INSERT_IGNORE</b> enum value (defined in <a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a>)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html#a8889770ce62e2ca0ce5d55c9c90af6bc">mutable_row</a>()</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html#ab73a467a979bc76bb4738ba038d7f0bd">row</a>() const</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduDelete.html#a586dc46e1d10118465e3b834ac578de0">ToString</a>() const OVERRIDE</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduDelete.html">kudu::client::KuduDelete</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html#a87d94ee5801a6b16fc6d1f44ee2e4357">Type</a> enum name</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>UPDATE</b> enum value (defined in <a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a>)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>UPDATE_IGNORE</b> enum value (defined in <a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a>)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a></td><td class="entry"></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>UPSERT</b> enum value (defined in <a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a>)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a></td><td class="entry"></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>~KuduDelete</b>() (defined in <a class="el" href="classkudu_1_1client_1_1KuduDelete.html">kudu::client::KuduDelete</a>)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduDelete.html">kudu::client::KuduDelete</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~KuduWriteOperation</b>() (defined in <a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a>)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
@@ -87,9 +89,9 @@
 <!-- start footer part -->
 <hr class="footer"/>
 <address class="footer">
-  <small>Generated for Kudu version 1.13.0 on Fri Sep 18 2020 15:03:20 by Doxygen 1.8.19</small>
+  <small>Generated for Kudu version 1.14.0 on Thu Jan 28 2021 11:11:20 by Doxygen 1.9.1</small>
   <br>
-  <small>Copyright © 2020 The Apache Software Foundation.</small>
+  <small>Copyright © 2021 The Apache Software Foundation.</small>
 </address>
 </body>
 </html>
diff --git a/cpp-client-api/classkudu_1_1client_1_1KuduDelete.html b/cpp-client-api/classkudu_1_1client_1_1KuduDelete.html
index be1c419..b75f491 100644
--- a/cpp-client-api/classkudu_1_1client_1_1KuduDelete.html
+++ b/cpp-client-api/classkudu_1_1client_1_1KuduDelete.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.19"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>Kudu C++ client API: kudu::client::KuduDelete Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -29,10 +29,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.19 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -101,12 +101,14 @@
 Additional Inherited Members</h2></td></tr>
 <tr class="inherit_header pub_types_classkudu_1_1client_1_1KuduWriteOperation"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classkudu_1_1client_1_1KuduWriteOperation')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a></td></tr>
 <tr class="memitem:a87d94ee5801a6b16fc6d1f44ee2e4357 inherit pub_types_classkudu_1_1client_1_1KuduWriteOperation"><td class="memItemLeft" align="right" valign="top"><a id="a87d94ee5801a6b16fc6d1f44ee2e4357"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html#a87d94ee5801a6b16fc6d1f44ee2e4357">Type</a> { <br />
-&#160;&#160;<b>INSERT</b> = 1, 
-<b>UPDATE</b> = 2, 
-<b>DELETE</b> = 3, 
-<b>UPSERT</b> = 4, 
-<br />
+&#160;&#160;<b>INSERT</b> = 1
+, <b>UPDATE</b> = 2
+, <b>DELETE</b> = 3
+, <b>UPSERT</b> = 4
+, <br />
 &#160;&#160;<b>INSERT_IGNORE</b> = 5
+, <b>UPDATE_IGNORE</b> = 6
+, <b>DELETE_IGNORE</b> = 7
 <br />
  }</td></tr>
 <tr class="memdesc:a87d94ee5801a6b16fc6d1f44ee2e4357"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write operation types. <br /></td></tr>
@@ -153,9 +155,9 @@
 <!-- start footer part -->
 <hr class="footer"/>
 <address class="footer">
-  <small>Generated for Kudu version 1.13.0 on Fri Sep 18 2020 15:03:20 by Doxygen 1.8.19</small>
+  <small>Generated for Kudu version 1.14.0 on Thu Jan 28 2021 11:11:20 by Doxygen 1.9.1</small>
   <br>
-  <small>Copyright © 2020 The Apache Software Foundation.</small>
+  <small>Copyright © 2021 The Apache Software Foundation.</small>
 </address>
 </body>
 </html>
diff --git a/cpp-client-api/classkudu_1_1client_1_1KuduDeleteIgnore-members.html b/cpp-client-api/classkudu_1_1client_1_1KuduDeleteIgnore-members.html
new file mode 100644
index 0000000..85f0222
--- /dev/null
+++ b/cpp-client-api/classkudu_1_1client_1_1KuduDeleteIgnore-members.html
@@ -0,0 +1,97 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Kudu C++ client API: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">Kudu C++ client API
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.1 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>kudu</b></li><li class="navelem"><b>client</b></li><li class="navelem"><a class="el" href="classkudu_1_1client_1_1KuduDeleteIgnore.html">KuduDeleteIgnore</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">kudu::client::KuduDeleteIgnore Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classkudu_1_1client_1_1KuduDeleteIgnore.html">kudu::client::KuduDeleteIgnore</a>, including all inherited members.</p>
+<table class="directory">
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>DELETE</b> enum value (defined in <a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a>)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>DELETE_IGNORE</b> enum value (defined in <a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a>)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>INSERT</b> enum value (defined in <a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a>)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>INSERT_IGNORE</b> enum value (defined in <a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a>)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html#a8889770ce62e2ca0ce5d55c9c90af6bc">mutable_row</a>()</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html#ab73a467a979bc76bb4738ba038d7f0bd">row</a>() const</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduDeleteIgnore.html#ab3099c4af9fa0469e6b5b8d972a68763">ToString</a>() const OVERRIDE</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduDeleteIgnore.html">kudu::client::KuduDeleteIgnore</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html#a87d94ee5801a6b16fc6d1f44ee2e4357">Type</a> enum name</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>UPDATE</b> enum value (defined in <a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a>)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>UPDATE_IGNORE</b> enum value (defined in <a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a>)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>UPSERT</b> enum value (defined in <a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a>)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>~KuduDeleteIgnore</b>() (defined in <a class="el" href="classkudu_1_1client_1_1KuduDeleteIgnore.html">kudu::client::KuduDeleteIgnore</a>)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduDeleteIgnore.html">kudu::client::KuduDeleteIgnore</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~KuduWriteOperation</b>() (defined in <a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a>)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/>
+<address class="footer">
+  <small>Generated for Kudu version 1.14.0 on Thu Jan 28 2021 11:11:20 by Doxygen 1.9.1</small>
+  <br>
+  <small>Copyright © 2021 The Apache Software Foundation.</small>
+</address>
+</body>
+</html>
diff --git a/cpp-client-api/classkudu_1_1client_1_1KuduDeleteIgnore.html b/cpp-client-api/classkudu_1_1client_1_1KuduDeleteIgnore.html
new file mode 100644
index 0000000..699f78e
--- /dev/null
+++ b/cpp-client-api/classkudu_1_1client_1_1KuduDeleteIgnore.html
@@ -0,0 +1,163 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Kudu C++ client API: kudu::client::KuduDeleteIgnore Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">Kudu C++ client API
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.1 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>kudu</b></li><li class="navelem"><b>client</b></li><li class="navelem"><a class="el" href="classkudu_1_1client_1_1KuduDeleteIgnore.html">KuduDeleteIgnore</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="classkudu_1_1client_1_1KuduDeleteIgnore-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">kudu::client::KuduDeleteIgnore Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>A single row delete ignore to be sent to the cluster.  
+ <a href="classkudu_1_1client_1_1KuduDeleteIgnore.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="write__op_8h_source.html">write_op.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for kudu::client::KuduDeleteIgnore:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="classkudu_1_1client_1_1KuduDeleteIgnore.png" usemap="#kudu::client::KuduDeleteIgnore_map" alt=""/>
+  <map id="kudu::client::KuduDeleteIgnore_map" name="kudu::client::KuduDeleteIgnore_map">
+<area href="classkudu_1_1client_1_1KuduWriteOperation.html" title="A single-row write operation to be sent to a Kudu table." alt="kudu::client::KuduWriteOperation" shape="rect" coords="0,0,195,24"/>
+  </map>
+</div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:ab3099c4af9fa0469e6b5b8d972a68763"><td class="memItemLeft" align="right" valign="top">virtual std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduDeleteIgnore.html#ab3099c4af9fa0469e6b5b8d972a68763">ToString</a> () const OVERRIDE</td></tr>
+<tr class="separator:ab3099c4af9fa0469e6b5b8d972a68763"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classkudu_1_1client_1_1KuduWriteOperation"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classkudu_1_1client_1_1KuduWriteOperation')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a></td></tr>
+<tr class="memitem:ab73a467a979bc76bb4738ba038d7f0bd inherit pub_methods_classkudu_1_1client_1_1KuduWriteOperation"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classKuduPartialRow.html">KuduPartialRow</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html#ab73a467a979bc76bb4738ba038d7f0bd">row</a> () const</td></tr>
+<tr class="separator:ab73a467a979bc76bb4738ba038d7f0bd inherit pub_methods_classkudu_1_1client_1_1KuduWriteOperation"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8889770ce62e2ca0ce5d55c9c90af6bc inherit pub_methods_classkudu_1_1client_1_1KuduWriteOperation"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classKuduPartialRow.html">KuduPartialRow</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html#a8889770ce62e2ca0ce5d55c9c90af6bc">mutable_row</a> ()</td></tr>
+<tr class="separator:a8889770ce62e2ca0ce5d55c9c90af6bc inherit pub_methods_classkudu_1_1client_1_1KuduWriteOperation"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
+<tr class="inherit_header pub_types_classkudu_1_1client_1_1KuduWriteOperation"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classkudu_1_1client_1_1KuduWriteOperation')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a></td></tr>
+<tr class="memitem:a87d94ee5801a6b16fc6d1f44ee2e4357 inherit pub_types_classkudu_1_1client_1_1KuduWriteOperation"><td class="memItemLeft" align="right" valign="top"><a id="a87d94ee5801a6b16fc6d1f44ee2e4357"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html#a87d94ee5801a6b16fc6d1f44ee2e4357">Type</a> { <br />
+&#160;&#160;<b>INSERT</b> = 1
+, <b>UPDATE</b> = 2
+, <b>DELETE</b> = 3
+, <b>UPSERT</b> = 4
+, <br />
+&#160;&#160;<b>INSERT_IGNORE</b> = 5
+, <b>UPDATE_IGNORE</b> = 6
+, <b>DELETE_IGNORE</b> = 7
+<br />
+ }</td></tr>
+<tr class="memdesc:a87d94ee5801a6b16fc6d1f44ee2e4357"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write operation types. <br /></td></tr>
+<tr class="separator:a87d94ee5801a6b16fc6d1f44ee2e4357 inherit pub_types_classkudu_1_1client_1_1KuduWriteOperation"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>A single row delete ignore to be sent to the cluster. </p>
+<dl class="section pre"><dt>Precondition</dt><dd>A delete ignore requires the key columns to be set in the embedded <a class="el" href="classKuduPartialRow.html" title="A row which may only contain values for a subset of the columns.">KuduPartialRow</a> object. </dd></dl>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a id="ab3099c4af9fa0469e6b5b8d972a68763"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab3099c4af9fa0469e6b5b8d972a68763">&#9670;&nbsp;</a></span>ToString()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual std::string kudu::client::KuduDeleteIgnore::ToString </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p></p>
+<dl class="section return"><dt>Returns</dt><dd>String representation of the operation. </dd></dl>
+
+<p>Implements <a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html#a50b5405c4dfc7af038daa4780aea6e19">kudu::client::KuduWriteOperation</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>include/kudu/client/<a class="el" href="write__op_8h_source.html">write_op.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/>
+<address class="footer">
+  <small>Generated for Kudu version 1.14.0 on Thu Jan 28 2021 11:11:20 by Doxygen 1.9.1</small>
+  <br>
+  <small>Copyright © 2021 The Apache Software Foundation.</small>
+</address>
+</body>
+</html>
diff --git a/cpp-client-api/classkudu_1_1client_1_1KuduDeleteIgnore.png b/cpp-client-api/classkudu_1_1client_1_1KuduDeleteIgnore.png
new file mode 100644
index 0000000..082b553
--- /dev/null
+++ b/cpp-client-api/classkudu_1_1client_1_1KuduDeleteIgnore.png
Binary files differ
diff --git a/cpp-client-api/classkudu_1_1client_1_1KuduError-members.html b/cpp-client-api/classkudu_1_1client_1_1KuduError-members.html
index 4f0e6ac..c667e08 100644
--- a/cpp-client-api/classkudu_1_1client_1_1KuduError-members.html
+++ b/cpp-client-api/classkudu_1_1client_1_1KuduError-members.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.19"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>Kudu C++ client API: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -29,10 +29,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.19 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -81,9 +81,9 @@
 <!-- start footer part -->
 <hr class="footer"/>
 <address class="footer">
-  <small>Generated for Kudu version 1.13.0 on Fri Sep 18 2020 15:03:20 by Doxygen 1.8.19</small>
+  <small>Generated for Kudu version 1.14.0 on Thu Jan 28 2021 11:11:20 by Doxygen 1.9.1</small>
   <br>
-  <small>Copyright © 2020 The Apache Software Foundation.</small>
+  <small>Copyright © 2021 The Apache Software Foundation.</small>
 </address>
 </body>
 </html>
diff --git a/cpp-client-api/classkudu_1_1client_1_1KuduError.html b/cpp-client-api/classkudu_1_1client_1_1KuduError.html
index 2007f5a..b13bc8d 100644
--- a/cpp-client-api/classkudu_1_1client_1_1KuduError.html
+++ b/cpp-client-api/classkudu_1_1client_1_1KuduError.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.19"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>Kudu C++ client API: kudu::client::KuduError Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -29,10 +29,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.19 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -176,9 +176,9 @@
 <!-- start footer part -->
 <hr class="footer"/>
 <address class="footer">
-  <small>Generated for Kudu version 1.13.0 on Fri Sep 18 2020 15:03:20 by Doxygen 1.8.19</small>
+  <small>Generated for Kudu version 1.14.0 on Thu Jan 28 2021 11:11:20 by Doxygen 1.9.1</small>
   <br>
-  <small>Copyright © 2020 The Apache Software Foundation.</small>
+  <small>Copyright © 2021 The Apache Software Foundation.</small>
 </address>
 </body>
 </html>
diff --git a/cpp-client-api/classkudu_1_1client_1_1KuduInsert-members.html b/cpp-client-api/classkudu_1_1client_1_1KuduInsert-members.html
index 13f2e95..0dcc002 100644
--- a/cpp-client-api/classkudu_1_1client_1_1KuduInsert-members.html
+++ b/cpp-client-api/classkudu_1_1client_1_1KuduInsert-members.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.19"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>Kudu C++ client API: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -29,10 +29,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.19 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -73,13 +73,15 @@
 <p>This is the complete list of members for <a class="el" href="classkudu_1_1client_1_1KuduInsert.html">kudu::client::KuduInsert</a>, including all inherited members.</p>
 <table class="directory">
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>DELETE</b> enum value (defined in <a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a>)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>INSERT</b> enum value (defined in <a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a>)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>INSERT_IGNORE</b> enum value (defined in <a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a>)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html#a8889770ce62e2ca0ce5d55c9c90af6bc">mutable_row</a>()</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html#ab73a467a979bc76bb4738ba038d7f0bd">row</a>() const</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduInsert.html#a7c0fb45a5bfa96574b6328be392ba240">ToString</a>() const OVERRIDE</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduInsert.html">kudu::client::KuduInsert</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html#a87d94ee5801a6b16fc6d1f44ee2e4357">Type</a> enum name</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>UPDATE</b> enum value (defined in <a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a>)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>DELETE_IGNORE</b> enum value (defined in <a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a>)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>INSERT</b> enum value (defined in <a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a>)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>INSERT_IGNORE</b> enum value (defined in <a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a>)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html#a8889770ce62e2ca0ce5d55c9c90af6bc">mutable_row</a>()</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html#ab73a467a979bc76bb4738ba038d7f0bd">row</a>() const</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduInsert.html#a7c0fb45a5bfa96574b6328be392ba240">ToString</a>() const OVERRIDE</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduInsert.html">kudu::client::KuduInsert</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html#a87d94ee5801a6b16fc6d1f44ee2e4357">Type</a> enum name</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>UPDATE</b> enum value (defined in <a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a>)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>UPDATE_IGNORE</b> enum value (defined in <a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a>)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a></td><td class="entry"></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>UPSERT</b> enum value (defined in <a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a>)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a></td><td class="entry"></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>~KuduInsert</b>() (defined in <a class="el" href="classkudu_1_1client_1_1KuduInsert.html">kudu::client::KuduInsert</a>)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduInsert.html">kudu::client::KuduInsert</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~KuduWriteOperation</b>() (defined in <a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a>)</td><td class="entry"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
@@ -87,9 +89,9 @@
 <!-- start footer part -->
 <hr class="footer"/>
 <address class="footer">
-  <small>Generated for Kudu version 1.13.0 on Fri Sep 18 2020 15:03:20 by Doxygen 1.8.19</small>
+  <small>Generated for Kudu version 1.14.0 on Thu Jan 28 2021 11:11:20 by Doxygen 1.9.1</small>
   <br>
-  <small>Copyright © 2020 The Apache Software Foundation.</small>
+  <small>Copyright © 2021 The Apache Software Foundation.</small>
 </address>
 </body>
 </html>
diff --git a/cpp-client-api/classkudu_1_1client_1_1KuduInsert.html b/cpp-client-api/classkudu_1_1client_1_1KuduInsert.html
index 477e403..2b70b22 100644
--- a/cpp-client-api/classkudu_1_1client_1_1KuduInsert.html
+++ b/cpp-client-api/classkudu_1_1client_1_1KuduInsert.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.19"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>Kudu C++ client API: kudu::client::KuduInsert Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -29,10 +29,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.19 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -101,12 +101,14 @@
 Additional Inherited Members</h2></td></tr>
 <tr class="inherit_header pub_types_classkudu_1_1client_1_1KuduWriteOperation"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classkudu_1_1client_1_1KuduWriteOperation')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html">kudu::client::KuduWriteOperation</a></td></tr>
 <tr class="memitem:a87d94ee5801a6b16fc6d1f44ee2e4357 inherit pub_types_classkudu_1_1client_1_1KuduWriteOperation"><td class="memItemLeft" align="right" valign="top"><a id="a87d94ee5801a6b16fc6d1f44ee2e4357"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduWriteOperation.html#a87d94ee5801a6b16fc6d1f44ee2e4357">Type</a> { <br />
-&#160;&#160;<b>INSERT</b> = 1, 
-<b>UPDATE</b> = 2, 
-<b>DELETE</b> = 3, 
-<b>UPSERT</b> = 4, 
-<br />
+&#160;&#160;<b>INSERT</b> = 1
+, <b>UPDATE</b> = 2
+, <b>DELETE</b> = 3
+, <b>UPSERT</b> = 4
+, <br />
 &#160;&#160;<b>INSERT_IGNORE</b> = 5
+, <b>UPDATE_IGNORE</b> = 6
+, <b>DELETE_IGNORE</b> = 7
 <br />
  }</td></tr>
 <tr class="memdesc:a87d94ee5801a6b16fc6d1f44ee2e4357"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write operation types. <br /></td></tr>
@@ -153,9 +155,9 @@
 <!-- start footer part -->
 <hr class="footer"/>
 <address class="footer">
-  <small>Generated for Kudu version 1.13.0 on Fri Sep 18 2020 15:03:20 by Doxygen 1.8.19</small>
+  <small>Generated for Kudu version 1.14.0 on Thu Jan 28 2021 11:11:20 by Doxygen 1.9.1</small>
   <br>
-  <small>Copyright © 2020 The Apache Software Foundation.</small>
+  <small>Copyright © 2021 The Apache Software Foundation.</small>
 </address>
 </body>
 </html>
diff --git a/cpp-client-api/classkudu_1_1client_1_1KuduInsertIgnore-members.html b/cpp-client-api/classkudu_1_1client_1_1KuduInsertIgnore-members.html
index d256574..5b9ac06 100644
--- a/cpp-client-api/classkudu_1_1client_1_1KuduInsertIgnore-members.html
+++ b/cpp-client-api/classkudu_1_1client_1_1KuduInsertIgnore-members.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.19"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>Kudu C++ client API: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -29,10 +29,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.19 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */