You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kvrocks.apache.org by gi...@apache.org on 2024/06/02 15:19:02 UTC
(kvrocks-website) branch asf-site updated: deploy: ea62d67961bfb9870fb26905476fc793aebf2934
This is an automated email from the ASF dual-hosted git repository.
github-bot pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/kvrocks-website.git
The following commit(s) were added to refs/heads/asf-site by this push:
new da0e3d2 deploy: ea62d67961bfb9870fb26905476fc793aebf2934
da0e3d2 is described below
commit da0e3d2bb05ce4efac0d6d4b78dee0e976d95f28
Author: PragmaTwice <Pr...@users.noreply.github.com>
AuthorDate: Sun Jun 2 15:18:56 2024 +0000
deploy: ea62d67961bfb9870fb26905476fc793aebf2934
---
404.html | 8 ++--
.../KQIR-88064ef9430ded3914232c2a4611b324.png | Bin 0 -> 65729 bytes
...earch-demo-862524e872e1685b33bf7a9d75347695.png | Bin 0 -> 563237 bytes
.../{1481905c.baede2ad.js => 1481905c.5c6a69f3.js} | 2 +-
assets/js/4bc0c824.b0f2ad5d.js | 1 +
assets/js/77eb5242.6be930fc.js | 1 -
assets/js/77eb5242.bf4a4ada.js | 1 +
assets/js/814f3328.3fe1c053.js | 1 -
assets/js/814f3328.9ab7ace4.js | 1 +
.../{b2b675dd.e6a47445.js => b2b675dd.1eedfa46.js} | 2 +-
assets/js/b2f554cd.9068823f.js | 1 -
assets/js/b2f554cd.b7064b41.js | 1 +
assets/js/d8172012.d63d6acf.js | 1 +
assets/js/main.87d6c213.js | 2 -
assets/js/main.e02595c1.js | 2 +
...js.LICENSE.txt => main.e02595c1.js.LICENSE.txt} | 0
assets/js/runtime~main.8c1ab759.js | 1 +
assets/js/runtime~main.e4aa4ae3.js | 1 -
blog/archive/index.html | 10 ++---
blog/atom.xml | 45 ++++++++++++++++++-
blog/go-redis-kvrocks-opentelemetry/index.html | 10 ++---
blog/how-to-implement-bitmap-on-rocksdb/index.html | 10 ++---
blog/how-we-use-rocksdb-in-kvrocks/index.html | 10 ++---
blog/index.html | 10 ++---
blog/kqir-query-engine/index.html | 50 +++++++++++++++++++++
blog/kvrocks-2023-in-review/index.html | 10 ++---
blog/kvrocks-graduated-as-tlp/index.html | 10 ++---
blog/rss.xml | 41 ++++++++++++++++-
community/category/committers/index.html | 8 ++--
community/category/internals/index.html | 8 ++--
community/category/releases/index.html | 8 ++--
community/contributing/index.html | 8 ++--
community/create-a-release/index.html | 8 ++--
community/data-structure-on-rocksdb/index.html | 8 ++--
community/index.html | 8 ++--
community/security/index.html | 8 ++--
community/verify-a-release-candidate/index.html | 8 ++--
community/vote-a-core-developer/index.html | 8 ++--
docs/backup/index.html | 8 ++--
docs/category/operation/index.html | 8 ++--
docs/category/references/index.html | 8 ++--
docs/cluster/index.html | 8 ++--
docs/faq/index.html | 8 ++--
docs/getting-started/index.html | 8 ++--
docs/info-sections/index.html | 8 ++--
docs/kvrocks-exporter/index.html | 8 ++--
docs/kvrocks2redis/index.html | 8 ++--
docs/namespace/index.html | 8 ++--
docs/replication/index.html | 8 ++--
docs/supported-commands/index.html | 8 ++--
download/index.html | 8 ++--
download/third-party-packages/index.html | 8 ++--
index.html | 8 ++--
search-index.json | 2 +-
search/index.html | 8 ++--
sitemap.xml | 2 +-
users/index.html | 8 ++--
57 files changed, 293 insertions(+), 159 deletions(-)
diff --git a/404.html b/404.html
index b3eb696..9962455 100644
--- a/404.html
+++ b/404.html
@@ -5,15 +5,15 @@
<meta name="generator" content="Docusaurus v2.4.0">
<title data-rh="true">Page Not Found | Apache Kvrocks™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://kvrocks.apache.org/404.html"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" name="docsearch:language" content="en"><meta data-r [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Kvrocks™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.e5c949ec.css">
-<link rel="preload" href="/assets/js/runtime~main.e4aa4ae3.js" as="script">
-<link rel="preload" href="/assets/js/main.87d6c213.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.8c1ab759.js" as="script">
+<link rel="preload" href="/assets/js/main.e02595c1.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="roun [...]
<div style="border-top: 1px solid #ccc;min-height: 60px;line-height: 20px;text-align: center;font-family: Avenir-Medium,serif;font-size: 14px;color: #999;display: flex;align-items: center;"><span>Copyright © 2024 The Apache Software Foundation. Apache Kvrocks, Kvrocks, and its feather logo are trademarks of The Apache Software Foundation. Redis and its cube logo are registered trademarks of Redis Ltd.</span></div>
</div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.e4aa4ae3.js"></script>
-<script src="/assets/js/main.87d6c213.js"></script>
+<script src="/assets/js/runtime~main.8c1ab759.js"></script>
+<script src="/assets/js/main.e02595c1.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/assets/images/KQIR-88064ef9430ded3914232c2a4611b324.png b/assets/images/KQIR-88064ef9430ded3914232c2a4611b324.png
new file mode 100644
index 0000000..e0a605d
Binary files /dev/null and b/assets/images/KQIR-88064ef9430ded3914232c2a4611b324.png differ
diff --git a/assets/images/ftsearch-demo-862524e872e1685b33bf7a9d75347695.png b/assets/images/ftsearch-demo-862524e872e1685b33bf7a9d75347695.png
new file mode 100644
index 0000000..cfc7540
Binary files /dev/null and b/assets/images/ftsearch-demo-862524e872e1685b33bf7a9d75347695.png differ
diff --git a/assets/js/1481905c.baede2ad.js b/assets/js/1481905c.5c6a69f3.js
similarity index 75%
rename from assets/js/1481905c.baede2ad.js
rename to assets/js/1481905c.5c6a69f3.js
index dd32e12..d81e30f 100644
--- a/assets/js/1481905c.baede2ad.js
+++ b/assets/js/1481905c.5c6a69f3.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[5921],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>h});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i( [...]
\ No newline at end of file
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[5921],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>h});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i( [...]
\ No newline at end of file
diff --git a/assets/js/4bc0c824.b0f2ad5d.js b/assets/js/4bc0c824.b0f2ad5d.js
new file mode 100644
index 0000000..fce7817
--- /dev/null
+++ b/assets/js/4bc0c824.b0f2ad5d.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[5172],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>m});var a=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function s( [...]
\ No newline at end of file
diff --git a/assets/js/77eb5242.6be930fc.js b/assets/js/77eb5242.6be930fc.js
deleted file mode 100644
index 1453eba..0000000
--- a/assets/js/77eb5242.6be930fc.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[2875],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>d});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i( [...]
\ No newline at end of file
diff --git a/assets/js/77eb5242.bf4a4ada.js b/assets/js/77eb5242.bf4a4ada.js
new file mode 100644
index 0000000..98f6e9a
--- /dev/null
+++ b/assets/js/77eb5242.bf4a4ada.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[2875],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>k});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i( [...]
\ No newline at end of file
diff --git a/assets/js/814f3328.3fe1c053.js b/assets/js/814f3328.3fe1c053.js
deleted file mode 100644
index 61b6323..0000000
--- a/assets/js/814f3328.3fe1c053.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[2535],{5641:e=>{e.exports=JSON.parse('{"title":"Recent posts","items":[{"title":"Apache Kvrocks 2023 In Review","permalink":"/blog/kvrocks-2023-in-review"},{"title":"Kvrocks graduated as an Apache Top-Level-Project","permalink":"/blog/kvrocks-graduated-as-tlp"},{"title":"Getting started with Kvrocks and go-redis","permalink":"/blog/go-redis-kvrocks-opentelemetry"},{"title":"How we use RocksDB in Kvrocks?","permal [...]
\ No newline at end of file
diff --git a/assets/js/814f3328.9ab7ace4.js b/assets/js/814f3328.9ab7ace4.js
new file mode 100644
index 0000000..b9daba1
--- /dev/null
+++ b/assets/js/814f3328.9ab7ace4.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[2535],{5641:e=>{e.exports=JSON.parse('{"title":"Recent posts","items":[{"title":"KQIR: a query engine for Apache Kvrocks that supports both SQL and RediSearch queries","permalink":"/blog/kqir-query-engine"},{"title":"Apache Kvrocks 2023 In Review","permalink":"/blog/kvrocks-2023-in-review"},{"title":"Kvrocks graduated as an Apache Top-Level-Project","permalink":"/blog/kvrocks-graduated-as-tlp"},{"title":"Getting [...]
\ No newline at end of file
diff --git a/assets/js/b2b675dd.e6a47445.js b/assets/js/b2b675dd.1eedfa46.js
similarity index 52%
rename from assets/js/b2b675dd.e6a47445.js
rename to assets/js/b2b675dd.1eedfa46.js
index 5a5bf49..e49503a 100644
--- a/assets/js/b2b675dd.e6a47445.js
+++ b/assets/js/b2b675dd.1eedfa46.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[533],{8017:e=>{e.exports=JSON.parse('{"permalink":"/blog","page":1,"postsPerPage":10,"totalPages":1,"totalCount":5,"blogDescription":"Blog","blogTitle":"Blog"}')}}]);
\ No newline at end of file
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[533],{8017:e=>{e.exports=JSON.parse('{"permalink":"/blog","page":1,"postsPerPage":10,"totalPages":1,"totalCount":6,"blogDescription":"Blog","blogTitle":"Blog"}')}}]);
\ No newline at end of file
diff --git a/assets/js/b2f554cd.9068823f.js b/assets/js/b2f554cd.9068823f.js
deleted file mode 100644
index 502e445..0000000
--- a/assets/js/b2f554cd.9068823f.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1477],{10:e=>{e.exports=JSON.parse('{"blogPosts":[{"id":"kvrocks-2023-in-review","metadata":{"permalink":"/blog/kvrocks-2023-in-review","editUrl":"https://github.com/apache/kvrocks-website/tree/main/blog/2024-01-07-kvrocks-2023-in-review/index.md","source":"@site/blog/2024-01-07-kvrocks-2023-in-review/index.md","title":"Apache Kvrocks 2023 In Review","description":"The year 2023 is a small milestone for the commu [...]
\ No newline at end of file
diff --git a/assets/js/b2f554cd.b7064b41.js b/assets/js/b2f554cd.b7064b41.js
new file mode 100644
index 0000000..35b99f5
--- /dev/null
+++ b/assets/js/b2f554cd.b7064b41.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1477],{10:e=>{e.exports=JSON.parse('{"blogPosts":[{"id":"kqir-query-engine","metadata":{"permalink":"/blog/kqir-query-engine","editUrl":"https://github.com/apache/kvrocks-website/tree/main/blog/2024-06-02-kqir-query-engine/index.md","source":"@site/blog/2024-06-02-kqir-query-engine/index.md","title":"KQIR: a query engine for Apache Kvrocks that supports both SQL and RediSearch queries","description":"Intro","date [...]
\ No newline at end of file
diff --git a/assets/js/d8172012.d63d6acf.js b/assets/js/d8172012.d63d6acf.js
new file mode 100644
index 0000000..1eb1970
--- /dev/null
+++ b/assets/js/d8172012.d63d6acf.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[9138],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>g});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a( [...]
\ No newline at end of file
diff --git a/assets/js/main.87d6c213.js b/assets/js/main.87d6c213.js
deleted file mode 100644
index 5f4a9e9..0000000
--- a/assets/js/main.87d6c213.js
+++ /dev/null
@@ -1,2 +0,0 @@
-/*! For license information please see main.87d6c213.js.LICENSE.txt */
-(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[179],{723:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(7294),o=n(7462),a=n(8356),i=n.n(a),l=n(6887);const s={"00927e56":[()=>n.e(5752).then(n.bind(n,3737)),"@site/community/contributing.md",3737],"02ba65e0":[()=>n.e(763).then(n.bind(n,9284)),"@site/blog/2022-11-20-go-redis-kvrocks-opentelemetry/index.md",9284],"0480b142":[()=>n.e(836).then(n.bind(n,3584)),"@site/docs/faq.md",3584],"0ed4b24e":[()=>n.e(9874).then(n.bind(n,90 [...]
\ No newline at end of file
diff --git a/assets/js/main.e02595c1.js b/assets/js/main.e02595c1.js
new file mode 100644
index 0000000..9e85629
--- /dev/null
+++ b/assets/js/main.e02595c1.js
@@ -0,0 +1,2 @@
+/*! For license information please see main.e02595c1.js.LICENSE.txt */
+(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[179],{723:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(7294),o=n(7462),a=n(8356),i=n.n(a),l=n(6887);const s={"00927e56":[()=>n.e(5752).then(n.bind(n,3737)),"@site/community/contributing.md",3737],"02ba65e0":[()=>n.e(763).then(n.bind(n,9284)),"@site/blog/2022-11-20-go-redis-kvrocks-opentelemetry/index.md",9284],"0480b142":[()=>n.e(836).then(n.bind(n,3584)),"@site/docs/faq.md",3584],"0ed4b24e":[()=>n.e(9874).then(n.bind(n,90 [...]
\ No newline at end of file
diff --git a/assets/js/main.87d6c213.js.LICENSE.txt b/assets/js/main.e02595c1.js.LICENSE.txt
similarity index 100%
rename from assets/js/main.87d6c213.js.LICENSE.txt
rename to assets/js/main.e02595c1.js.LICENSE.txt
diff --git a/assets/js/runtime~main.8c1ab759.js b/assets/js/runtime~main.8c1ab759.js
new file mode 100644
index 0000000..b83ef73
--- /dev/null
+++ b/assets/js/runtime~main.8c1ab759.js
@@ -0,0 +1 @@
+(()=>{"use strict";var e,a,c,f,t,b={},r={};function d(e){var a=r[e];if(void 0!==a)return a.exports;var c=r[e]={exports:{}};return b[e].call(c.exports,c,c.exports,d),c.exports}d.m=b,e=[],d.O=(a,c,f,t)=>{if(!c){var b=1/0;for(i=0;i<e.length;i++){c=e[i][0],f=e[i][1],t=e[i][2];for(var r=!0,o=0;o<c.length;o++)(!1&t||b>=t)&&Object.keys(d.O).every((e=>d.O[e](c[o])))?c.splice(o--,1):(r=!1,t<b&&(b=t));if(r){e.splice(i--,1);var n=f();void 0!==n&&(a=n)}}return a}t=t||0;for(var i=e.length;i>0&&e[i-1] [...]
\ No newline at end of file
diff --git a/assets/js/runtime~main.e4aa4ae3.js b/assets/js/runtime~main.e4aa4ae3.js
deleted file mode 100644
index 57a6bdc..0000000
--- a/assets/js/runtime~main.e4aa4ae3.js
+++ /dev/null
@@ -1 +0,0 @@
-(()=>{"use strict";var e,a,c,f,t,r={},b={};function d(e){var a=b[e];if(void 0!==a)return a.exports;var c=b[e]={exports:{}};return r[e].call(c.exports,c,c.exports,d),c.exports}d.m=r,e=[],d.O=(a,c,f,t)=>{if(!c){var r=1/0;for(i=0;i<e.length;i++){c=e[i][0],f=e[i][1],t=e[i][2];for(var b=!0,o=0;o<c.length;o++)(!1&t||r>=t)&&Object.keys(d.O).every((e=>d.O[e](c[o])))?c.splice(o--,1):(b=!1,t<r&&(r=t));if(b){e.splice(i--,1);var n=f();void 0!==n&&(a=n)}}return a}t=t||0;for(var i=e.length;i>0&&e[i-1] [...]
\ No newline at end of file
diff --git a/blog/archive/index.html b/blog/archive/index.html
index 151871e..6a6effe 100644
--- a/blog/archive/index.html
+++ b/blog/archive/index.html
@@ -5,15 +5,15 @@
<meta name="generator" content="Docusaurus v2.4.0">
<title data-rh="true">Archive | Apache Kvrocks™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://kvrocks.apache.org/blog/archive"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh=" [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Kvrocks™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.e5c949ec.css">
-<link rel="preload" href="/assets/js/runtime~main.e4aa4ae3.js" as="script">
-<link rel="preload" href="/assets/js/main.87d6c213.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.8c1ab759.js" as="script">
+<link rel="preload" href="/assets/js/main.e02595c1.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="roun [...]
+<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="roun [...]
<div style="border-top: 1px solid #ccc;min-height: 60px;line-height: 20px;text-align: center;font-family: Avenir-Medium,serif;font-size: 14px;color: #999;display: flex;align-items: center;"><span>Copyright © 2024 The Apache Software Foundation. Apache Kvrocks, Kvrocks, and its feather logo are trademarks of The Apache Software Foundation. Redis and its cube logo are registered trademarks of Redis Ltd.</span></div>
</div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.e4aa4ae3.js"></script>
-<script src="/assets/js/main.87d6c213.js"></script>
+<script src="/assets/js/runtime~main.8c1ab759.js"></script>
+<script src="/assets/js/main.e02595c1.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/blog/atom.xml b/blog/atom.xml
index 7282546..88c9976 100644
--- a/blog/atom.xml
+++ b/blog/atom.xml
@@ -2,11 +2,54 @@
<feed xmlns="http://www.w3.org/2005/Atom">
<id>https://kvrocks.apache.org/blog</id>
<title>Apache Kvrocks™ Blog</title>
- <updated>2024-01-07T00:00:00.000Z</updated>
+ <updated>2024-06-02T00:00:00.000Z</updated>
<generator>https://github.com/jpmonette/feed</generator>
<link rel="alternate" href="https://kvrocks.apache.org/blog"/>
<subtitle>Apache Kvrocks™ Blog</subtitle>
<icon>https://kvrocks.apache.org/img/favicon.ico</icon>
+ <entry>
+ <title type="html"><![CDATA[KQIR: a query engine for Apache Kvrocks that supports both SQL and RediSearch queries]]></title>
+ <id>https://kvrocks.apache.org/blog/kqir-query-engine</id>
+ <link href="https://kvrocks.apache.org/blog/kqir-query-engine"/>
+ <updated>2024-06-02T00:00:00.000Z</updated>
+ <summary type="html"><![CDATA[Intro]]></summary>
+ <content type="html"><![CDATA[<h2 class="anchor anchorWithStickyNavbar_LWe7" id="intro">Intro<a href="#intro" class="hash-link" aria-label="Direct link to Intro" title="Direct link to Intro"></a></h2><p>TL;DR:</p><p><img loading="lazy" alt="ftsearch-demo" src="/assets/images/ftsearch-demo-862524e872e1685b33bf7a9d75347695.png" width="1600" height="612" class="img_ev3q"></p><p>Pretty cool, right? Let's dive in!</p><p>(The full example is provided in <a href="/blog/kqir-query-engin [...]
+These include ACID transactions, expressive query capabilities inherent in SQL, as well as optimization and abstraction possibilities offered by structured data and relational algebra.
+Consequently, a new category of databases known as NewSQL has emerged gradually.</p><p>Kvrocks is a NoSQL database.
+While not classified as NewSQL, Kvrocks aims to strike a balance between NoSQL and NewSQL paradigms:
+It aims to maintain the high performance of NoSQL while also implementing transaction guarantees and supporting more complex queries.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="redisearch">RediSearch?<a href="#redisearch" class="hash-link" aria-label="Direct link to RediSearch?" title="Direct link to RediSearch?"></a></h3><p><a href="https://github.com/RediSearch/RediSearch" target="_blank" rel="noopener noreferrer">RediSearch</a> is a Redis module that enhances Redis with qu [...]
+While <a href="https://redis.io/docs/latest/operate/oss_and_stack/stack-with-enterprise/search/commands/" target="_blank" rel="noopener noreferrer">its Redis commands</a> begin with <code>FT.</code> (i.e. full text), it goes beyond just full-text search.</p><p>In fact, it is Redis moving closer to SQL databases:
+RediSearch enables users to create structured schemas on existing Redis JSON or HASH data for index building.
+Its schema supports <a href="https://redis.io/docs/latest/develop/interact/search-and-query/basic-constructs/field-and-type-options/" target="_blank" rel="noopener noreferrer">various field types</a> such as numeric, tag, geo, text, and vector - the latter two are utilized for full-text and vector searches.
+Instead of SQL support, RediSearch provides <a href="https://redis.io/docs/latest/develop/interact/search-and-query/advanced-concepts/query_syntax/" target="_blank" rel="noopener noreferrer">a unique query syntax</a> known as the RediSearch query language.</p><p>RediSearch finds applications in various fields.
+One recent application involves utilizing its vector search feature to develop retrieval-augmented generation (RAG). For instance, <a href="https://www.langchain.com/" target="_blank" rel="noopener noreferrer">LangChain</a> utilizes Redis as one of its vector database.
+If Kvrocks can be compatible with RediSearch, it could benefit from these ecosystem from RediSearch.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="sql">SQL?<a href="#sql" class="hash-link" aria-label="Direct link to SQL?" title="Direct link to SQL?"></a></h3><p>RediSearch uses a unique syntax for queries, but there are some issues to consider:</p><p>Firstly, RediSearch's schema (a.k.a. index, created with <code>FT.CREATE</code>) can be regarded as a table in an SQL database. Its [...]
+Given this similarity, supporting SQL should not increase significant challenges; why not include SQL support as well?</p><p>Secondly, SQL enjoys broader usage and is familiar to more individuals. It is simpler to learn at the syntax level. While developers may need time to understand RediSearch query syntax, adapting to a new SQL database often requires less effort. Furthermore, SQL offers robust support for various query features, enhanced expressive capabilities (like JOINs, subquerie [...]
+The initial transformation from the syntax tree results in Syntactical IR, a high-level representation of certain syntactic expressions.
+As it undergoes processing by an IR optimizer, KQIR evolves into Planning IR, a low-level representation used to express query execution plans within the query engine.</p><p>Additionally, we will conduct semantic checks on the IR before optimization to ensure that the query is semantically correct.
+This includes verifying that it does not include any undefined schemas or fields and uses the appropriate field types.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="ir-optimizer">IR Optimizer<a href="#ir-optimizer" class="hash-link" aria-label="Direct link to IR Optimizer" title="Direct link to IR Optimizer"></a></h3><p>The KQIR optimizer consists of multiple passes, <a href="https://llvm.org/docs/Passes.html" target="_blank" rel="noopener noreferrer">a concept borrowed from LLVM</a>.
+Each pass takes IR as input, conducts analysis and modifications, and generates a new IR.</p><p>Currently, the optimizer's passes are categorized into three main groups:</p><ul><li>expression passes for optimizing logical expressions like <code>AND</code>, <code>OR</code>, <code>NOT</code> operators;</li><li>numeric passes for optimizing numerical comparisons with an interval analysis (i.e. analyze the mathematical properties of numerical comparisons in terms of intervals) to enhance que [...]
+A pass may run multiple times at different stages to simplify individual passes by combining them.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="plan-executor">Plan Executor<a href="#plan-executor" class="hash-link" aria-label="Direct link to Plan Executor" title="Direct link to Plan Executor"></a></h3><p>The KQIR plan executor is built on the Volcano model.</p><p>Once the IR optimizer finishes all optimizations, the resulting IR becomes a planning IR. This will then be passed t [...]
+This means that for any field type (e.g. tag, numeric), we need an encoding to reduce such index to RocksDB's key-values.</p><p>Furthermore, we incrementally create indexes before and after JSON or HASH commands getting executed to guarantee that query results are in real-time.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="current-status">Current status<a href="#current-status" class="hash-link" aria-label="Direct link to Current status" title="Direct link to Current status"></a [...]
+Thus the upcoming release (version 2.9.0) will not include any KQIR component.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="supported-field-types">Supported field types<a href="#supported-field-types" class="hash-link" aria-label="Direct link to Supported field types" title="Direct link to Supported field types"></a></h3><p>Currently, we only support two field types: tag and numeric.</p><p>Tag fields label each data record with multiple tags for filtering in queries.
+And numeric fields hold numerical data within double-precision floating-point ranges. They allow sorting and filtering by specific numerical ranges.</p><p>In the future, we plan to expand support to include vector search and full-text search capabilities alongside other field types.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="transaction-guarantees">Transaction guarantees<a href="#transaction-guarantees" class="hash-link" aria-label="Direct link to Transaction guarantees" title [...]
+We will leverage these efforts to uphold the ACID properties of KQIR and release an official version incorporating KQIR after that.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="limitation-on-ir-optimizer">Limitation on IR optimizer<a href="#limitation-on-ir-optimizer" class="hash-link" aria-label="Direct link to Limitation on IR optimizer" title="Direct link to Limitation on IR optimizer"></a></h3><p>Currently, KQIR does not use the cost model when optimizing record sorting.
+Instead, it relies on specialized logic. This could be an area for improvement soon.</p><p>Furthermore, KQIR does not currently utilize optimizations based on runtime statistics.
+Our future focus will be on integrating runtime statistics into the cost model for more precise index selection.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="relationship-with-other-features">Relationship with other features<a href="#relationship-with-other-features" class="hash-link" aria-label="Direct link to Relationship with other features" title="Direct link to Relationship with other features"></a></h3><p>KQIR integrates well with the <a href="https://kvrocks.apache.org/d [...]
+Any index created is restricted to the current namespace and cannot be accessed in other namespaces, aligning with how other data is accessed within the namespace.</p><p>Currently, KQIR cannot be enabled in the <a href="https://kvrocks.apache.org/docs/cluster" target="_blank" rel="noopener noreferrer">cluster mode</a>.
+Cluster mode support may not be implemented in the short term, but we encourage anyone to submit discussions, design proposals, or suggestions.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="compliance">Compliance<a href="#compliance" class="hash-link" aria-label="Direct link to Compliance" title="Direct link to Compliance"></a></h3><p>While KQIR is designed to be compatible with RediSearch at the interface level, it does not include any code from RediSearch.
+As previously mentioned, KQIR features a completely new framework, and its query architecture (including parsing, optimization, execution) is independent of RediSearch.</p><p>This distinction is important due to the proprietary license under which RediSearch is released.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="high-experimental">High experimental!<a href="#high-experimental" class="hash-link" aria-label="Direct link to High experimental!" title="Direct link to High experime [...]
+We advise users to consider carefully when using KQIR functionalities in a production environment, as we do not guarantee compatibility, and there may be unexpected errors.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="future-outlook">Future outlook<a href="#future-outlook" class="hash-link" aria-label="Direct link to Future outlook" title="Direct link to Future outlook"></a></h2><p>KQIR is currently in development, and all mentioned aspects will continue to evolve.
+If you're interested, please stay updated on the progress.</p><p>Developers keen on KQIR are encouraged to get involved in the development process and join the Apache Kvrocks community.</p><p>Note that our community consists entirely of volunteers.
+As an ASF community, we strive to offer an open, inclusive, and vendor-neutral environment.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="vector-search">Vector search<a href="#vector-search" class="hash-link" aria-label="Direct link to Vector search" title="Direct link to Vector search"></a></h3><p>The design and implementation of vector search support are currently underway, which is very exciting.</p><p>In the Kvrocks community, some members have raised discussions and <a href [...]
+You also have the choice to manually build executable from the source code in the 'unstable' branch.</p><div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">docker run -it -p 6666:6666 apache/kvrocks:night [...]
+and create an index named <code>testidx</code> consisting a tag field <code>a</code> and numeric field <code>b</code> with the following command:</p><div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">FT. [...]
+(Note that it is also possible to add data before running <code>FT.CREATE</code>.)</p><div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">JSON.SET test:k1 $ '{"a": "x,y", "b": 11}'</span><br></span><span [...]
+ <author>
+ <name>PragmaTwice</name>
+ <uri>https://github.com/pragmatwice</uri>
+ </author>
+ </entry>
<entry>
<title type="html"><![CDATA[Apache Kvrocks 2023 In Review]]></title>
<id>https://kvrocks.apache.org/blog/kvrocks-2023-in-review</id>
diff --git a/blog/go-redis-kvrocks-opentelemetry/index.html b/blog/go-redis-kvrocks-opentelemetry/index.html
index 7ebdc34..dd5f168 100644
--- a/blog/go-redis-kvrocks-opentelemetry/index.html
+++ b/blog/go-redis-kvrocks-opentelemetry/index.html
@@ -5,15 +5,15 @@
<meta name="generator" content="Docusaurus v2.4.0">
<title data-rh="true">Getting started with Kvrocks and go-redis | Apache Kvrocks™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://kvrocks.apache.org/blog/go-redis-kvrocks-opentelemetry"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="tru [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Kvrocks™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.e5c949ec.css">
-<link rel="preload" href="/assets/js/runtime~main.e4aa4ae3.js" as="script">
-<link rel="preload" href="/assets/js/main.87d6c213.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.8c1ab759.js" as="script">
+<link rel="preload" href="/assets/js/main.e02595c1.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="roun [...]
+<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="roun [...]
<div style="border-top: 1px solid #ccc;min-height: 60px;line-height: 20px;text-align: center;font-family: Avenir-Medium,serif;font-size: 14px;color: #999;display: flex;align-items: center;"><span>Copyright © 2024 The Apache Software Foundation. Apache Kvrocks, Kvrocks, and its feather logo are trademarks of The Apache Software Foundation. Redis and its cube logo are registered trademarks of Redis Ltd.</span></div>
</div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.e4aa4ae3.js"></script>
-<script src="/assets/js/main.87d6c213.js"></script>
+<script src="/assets/js/runtime~main.8c1ab759.js"></script>
+<script src="/assets/js/main.e02595c1.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/blog/how-to-implement-bitmap-on-rocksdb/index.html b/blog/how-to-implement-bitmap-on-rocksdb/index.html
index 6a26dec..7161a90 100644
--- a/blog/how-to-implement-bitmap-on-rocksdb/index.html
+++ b/blog/how-to-implement-bitmap-on-rocksdb/index.html
@@ -5,15 +5,15 @@
<meta name="generator" content="Docusaurus v2.4.0">
<title data-rh="true">How to implement bitmap on RocksDB? | Apache Kvrocks™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://kvrocks.apache.org/blog/how-to-implement-bitmap-on-rocksdb"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Kvrocks™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.e5c949ec.css">
-<link rel="preload" href="/assets/js/runtime~main.e4aa4ae3.js" as="script">
-<link rel="preload" href="/assets/js/main.87d6c213.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.8c1ab759.js" as="script">
+<link rel="preload" href="/assets/js/main.e02595c1.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="roun [...]
+<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="roun [...]
<div style="border-top: 1px solid #ccc;min-height: 60px;line-height: 20px;text-align: center;font-family: Avenir-Medium,serif;font-size: 14px;color: #999;display: flex;align-items: center;"><span>Copyright © 2024 The Apache Software Foundation. Apache Kvrocks, Kvrocks, and its feather logo are trademarks of The Apache Software Foundation. Redis and its cube logo are registered trademarks of Redis Ltd.</span></div>
</div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.e4aa4ae3.js"></script>
-<script src="/assets/js/main.87d6c213.js"></script>
+<script src="/assets/js/runtime~main.8c1ab759.js"></script>
+<script src="/assets/js/main.e02595c1.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/blog/how-we-use-rocksdb-in-kvrocks/index.html b/blog/how-we-use-rocksdb-in-kvrocks/index.html
index b897c34..542aff3 100644
--- a/blog/how-we-use-rocksdb-in-kvrocks/index.html
+++ b/blog/how-we-use-rocksdb-in-kvrocks/index.html
@@ -5,17 +5,17 @@
<meta name="generator" content="Docusaurus v2.4.0">
<title data-rh="true">How we use RocksDB in Kvrocks? | Apache Kvrocks™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://kvrocks.apache.org/blog/how-we-use-rocksdb-in-kvrocks"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" name="doc [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Kvrocks™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.e5c949ec.css">
-<link rel="preload" href="/assets/js/runtime~main.e4aa4ae3.js" as="script">
-<link rel="preload" href="/assets/js/main.87d6c213.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.8c1ab759.js" as="script">
+<link rel="preload" href="/assets/js/main.e02595c1.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="roun [...]
+<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="roun [...]
Related configuration:</p><div class="language-cpp codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-cpp codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">metadata_opts</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">memtab [...]
In addition, Row Cache is also introduced to deal with the problem of hotkeys. RocksDB checks Row Cache first, then Block Cache. For scenes with hot spots, data will be stored in Row Cache first to further improve Cache utilization.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="key-value-separation">Key-Value Separation<a href="#key-value-separation" class="hash-link" aria-label="Direct link to Key-Value Separation" title="Direct link to Key-Value Separation"></a></h3><p>The LSM [...]
<div style="border-top: 1px solid #ccc;min-height: 60px;line-height: 20px;text-align: center;font-family: Avenir-Medium,serif;font-size: 14px;color: #999;display: flex;align-items: center;"><span>Copyright © 2024 The Apache Software Foundation. Apache Kvrocks, Kvrocks, and its feather logo are trademarks of The Apache Software Foundation. Redis and its cube logo are registered trademarks of Redis Ltd.</span></div>
</div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.e4aa4ae3.js"></script>
-<script src="/assets/js/main.87d6c213.js"></script>
+<script src="/assets/js/runtime~main.8c1ab759.js"></script>
+<script src="/assets/js/main.e02595c1.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/blog/index.html b/blog/index.html
index 832b4ab..a7c328d 100644
--- a/blog/index.html
+++ b/blog/index.html
@@ -5,15 +5,15 @@
<meta name="generator" content="Docusaurus v2.4.0">
<title data-rh="true">Blog | Apache Kvrocks™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://kvrocks.apache.org/blog"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" property="og:title" content="Blog | Apache Kvrocks™"><meta data-rh [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Kvrocks™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.e5c949ec.css">
-<link rel="preload" href="/assets/js/runtime~main.e4aa4ae3.js" as="script">
-<link rel="preload" href="/assets/js/main.87d6c213.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.8c1ab759.js" as="script">
+<link rel="preload" href="/assets/js/main.e02595c1.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="roun [...]
+<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="roun [...]
<div style="border-top: 1px solid #ccc;min-height: 60px;line-height: 20px;text-align: center;font-family: Avenir-Medium,serif;font-size: 14px;color: #999;display: flex;align-items: center;"><span>Copyright © 2024 The Apache Software Foundation. Apache Kvrocks, Kvrocks, and its feather logo are trademarks of The Apache Software Foundation. Redis and its cube logo are registered trademarks of Redis Ltd.</span></div>
</div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.e4aa4ae3.js"></script>
-<script src="/assets/js/main.87d6c213.js"></script>
+<script src="/assets/js/runtime~main.8c1ab759.js"></script>
+<script src="/assets/js/main.e02595c1.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/blog/kqir-query-engine/index.html b/blog/kqir-query-engine/index.html
new file mode 100644
index 0000000..beba993
--- /dev/null
+++ b/blog/kqir-query-engine/index.html
@@ -0,0 +1,50 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="blog-wrapper blog-post-page plugin-blog plugin-id-default">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v2.4.0">
+<title data-rh="true">KQIR: a query engine for Apache Kvrocks that supports both SQL and RediSearch queries | Apache Kvrocks™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://kvrocks.apache.org/blog/kqir-query-engine"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" conte [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Kvrocks™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.e5c949ec.css">
+<link rel="preload" href="/assets/js/runtime~main.8c1ab759.js" as="script">
+<link rel="preload" href="/assets/js/main.e02595c1.js" as="script">
+</head>
+<body class="navigation-with-keyboard">
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
+<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="roun [...]
+These include ACID transactions, expressive query capabilities inherent in SQL, as well as optimization and abstraction possibilities offered by structured data and relational algebra.
+Consequently, a new category of databases known as NewSQL has emerged gradually.</p><p>Kvrocks is a NoSQL database.
+While not classified as NewSQL, Kvrocks aims to strike a balance between NoSQL and NewSQL paradigms:
+It aims to maintain the high performance of NoSQL while also implementing transaction guarantees and supporting more complex queries.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="redisearch">RediSearch?<a href="#redisearch" class="hash-link" aria-label="Direct link to RediSearch?" title="Direct link to RediSearch?"></a></h3><p><a href="https://github.com/RediSearch/RediSearch" target="_blank" rel="noopener noreferrer">RediSearch</a> is a Redis module that enhances Redis with qu [...]
+While <a href="https://redis.io/docs/latest/operate/oss_and_stack/stack-with-enterprise/search/commands/" target="_blank" rel="noopener noreferrer">its Redis commands</a> begin with <code>FT.</code> (i.e. full text), it goes beyond just full-text search.</p><p>In fact, it is Redis moving closer to SQL databases:
+RediSearch enables users to create structured schemas on existing Redis JSON or HASH data for index building.
+Its schema supports <a href="https://redis.io/docs/latest/develop/interact/search-and-query/basic-constructs/field-and-type-options/" target="_blank" rel="noopener noreferrer">various field types</a> such as numeric, tag, geo, text, and vector - the latter two are utilized for full-text and vector searches.
+Instead of SQL support, RediSearch provides <a href="https://redis.io/docs/latest/develop/interact/search-and-query/advanced-concepts/query_syntax/" target="_blank" rel="noopener noreferrer">a unique query syntax</a> known as the RediSearch query language.</p><p>RediSearch finds applications in various fields.
+One recent application involves utilizing its vector search feature to develop retrieval-augmented generation (RAG). For instance, <a href="https://www.langchain.com/" target="_blank" rel="noopener noreferrer">LangChain</a> utilizes Redis as one of its vector database.
+If Kvrocks can be compatible with RediSearch, it could benefit from these ecosystem from RediSearch.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="sql">SQL?<a href="#sql" class="hash-link" aria-label="Direct link to SQL?" title="Direct link to SQL?"></a></h3><p>RediSearch uses a unique syntax for queries, but there are some issues to consider:</p><p>Firstly, RediSearch's schema (a.k.a. index, created with <code>FT.CREATE</code>) can be regarded as a table in an SQL database [...]
+Given this similarity, supporting SQL should not increase significant challenges; why not include SQL support as well?</p><p>Secondly, SQL enjoys broader usage and is familiar to more individuals. It is simpler to learn at the syntax level. While developers may need time to understand RediSearch query syntax, adapting to a new SQL database often requires less effort. Furthermore, SQL offers robust support for various query features, enhanced expressive capabilities (like JOINs, subquerie [...]
+The initial transformation from the syntax tree results in Syntactical IR, a high-level representation of certain syntactic expressions.
+As it undergoes processing by an IR optimizer, KQIR evolves into Planning IR, a low-level representation used to express query execution plans within the query engine.</p><p>Additionally, we will conduct semantic checks on the IR before optimization to ensure that the query is semantically correct.
+This includes verifying that it does not include any undefined schemas or fields and uses the appropriate field types.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="ir-optimizer">IR Optimizer<a href="#ir-optimizer" class="hash-link" aria-label="Direct link to IR Optimizer" title="Direct link to IR Optimizer"></a></h3><p>The KQIR optimizer consists of multiple passes, <a href="https://llvm.org/docs/Passes.html" target="_blank" rel="noopener noreferrer">a concept borrowed from LLVM</a>.
+Each pass takes IR as input, conducts analysis and modifications, and generates a new IR.</p><p>Currently, the optimizer's passes are categorized into three main groups:</p><ul><li>expression passes for optimizing logical expressions like <code>AND</code>, <code>OR</code>, <code>NOT</code> operators;</li><li>numeric passes for optimizing numerical comparisons with an interval analysis (i.e. analyze the mathematical properties of numerical comparisons in terms of intervals) to enhanc [...]
+A pass may run multiple times at different stages to simplify individual passes by combining them.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="plan-executor">Plan Executor<a href="#plan-executor" class="hash-link" aria-label="Direct link to Plan Executor" title="Direct link to Plan Executor"></a></h3><p>The KQIR plan executor is built on the Volcano model.</p><p>Once the IR optimizer finishes all optimizations, the resulting IR becomes a planning IR. This will then be passed t [...]
+This means that for any field type (e.g. tag, numeric), we need an encoding to reduce such index to RocksDB's key-values.</p><p>Furthermore, we incrementally create indexes before and after JSON or HASH commands getting executed to guarantee that query results are in real-time.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="current-status">Current status<a href="#current-status" class="hash-link" aria-label="Direct link to Current status" title="Direct link to Current status" [...]
+Thus the upcoming release (version 2.9.0) will not include any KQIR component.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="supported-field-types">Supported field types<a href="#supported-field-types" class="hash-link" aria-label="Direct link to Supported field types" title="Direct link to Supported field types"></a></h3><p>Currently, we only support two field types: tag and numeric.</p><p>Tag fields label each data record with multiple tags for filtering in queries.
+And numeric fields hold numerical data within double-precision floating-point ranges. They allow sorting and filtering by specific numerical ranges.</p><p>In the future, we plan to expand support to include vector search and full-text search capabilities alongside other field types.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="transaction-guarantees">Transaction guarantees<a href="#transaction-guarantees" class="hash-link" aria-label="Direct link to Transaction guarantees" title [...]
+We will leverage these efforts to uphold the ACID properties of KQIR and release an official version incorporating KQIR after that.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="limitation-on-ir-optimizer">Limitation on IR optimizer<a href="#limitation-on-ir-optimizer" class="hash-link" aria-label="Direct link to Limitation on IR optimizer" title="Direct link to Limitation on IR optimizer"></a></h3><p>Currently, KQIR does not use the cost model when optimizing record sorting.
+Instead, it relies on specialized logic. This could be an area for improvement soon.</p><p>Furthermore, KQIR does not currently utilize optimizations based on runtime statistics.
+Our future focus will be on integrating runtime statistics into the cost model for more precise index selection.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="relationship-with-other-features">Relationship with other features<a href="#relationship-with-other-features" class="hash-link" aria-label="Direct link to Relationship with other features" title="Direct link to Relationship with other features"></a></h3><p>KQIR integrates well with the <a href="https://kvrocks.apache.org/d [...]
+Any index created is restricted to the current namespace and cannot be accessed in other namespaces, aligning with how other data is accessed within the namespace.</p><p>Currently, KQIR cannot be enabled in the <a href="https://kvrocks.apache.org/docs/cluster" target="_blank" rel="noopener noreferrer">cluster mode</a>.
+Cluster mode support may not be implemented in the short term, but we encourage anyone to submit discussions, design proposals, or suggestions.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="compliance">Compliance<a href="#compliance" class="hash-link" aria-label="Direct link to Compliance" title="Direct link to Compliance"></a></h3><p>While KQIR is designed to be compatible with RediSearch at the interface level, it does not include any code from RediSearch.
+As previously mentioned, KQIR features a completely new framework, and its query architecture (including parsing, optimization, execution) is independent of RediSearch.</p><p>This distinction is important due to the proprietary license under which RediSearch is released.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="high-experimental">High experimental!<a href="#high-experimental" class="hash-link" aria-label="Direct link to High experimental!" title="Direct link to High experime [...]
+We advise users to consider carefully when using KQIR functionalities in a production environment, as we do not guarantee compatibility, and there may be unexpected errors.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="future-outlook">Future outlook<a href="#future-outlook" class="hash-link" aria-label="Direct link to Future outlook" title="Direct link to Future outlook"></a></h2><p>KQIR is currently in development, and all mentioned aspects will continue to evolve.
+If you're interested, please stay updated on the progress.</p><p>Developers keen on KQIR are encouraged to get involved in the development process and join the Apache Kvrocks community.</p><p>Note that our community consists entirely of volunteers.
+As an ASF community, we strive to offer an open, inclusive, and vendor-neutral environment.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="vector-search">Vector search<a href="#vector-search" class="hash-link" aria-label="Direct link to Vector search" title="Direct link to Vector search"></a></h3><p>The design and implementation of vector search support are currently underway, which is very exciting.</p><p>In the Kvrocks community, some members have raised discussions and <a href [...]
+You also have the choice to manually build executable from the source code in the 'unstable' branch.</p><div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">docker run -it -p 6666:6666 apache/kvr [...]
+and create an index named <code>testidx</code> consisting a tag field <code>a</code> and numeric field <code>b</code> with the following command:</p><div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">FT. [...]
+(Note that it is also possible to add data before running <code>FT.CREATE</code>.)</p><div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">JSON.SET test:k1 $ '{"a": "x,y", "b& [...]
+ <div style="border-top: 1px solid #ccc;min-height: 60px;line-height: 20px;text-align: center;font-family: Avenir-Medium,serif;font-size: 14px;color: #999;display: flex;align-items: center;"><span>Copyright © 2024 The Apache Software Foundation. Apache Kvrocks, Kvrocks, and its feather logo are trademarks of The Apache Software Foundation. Redis and its cube logo are registered trademarks of Redis Ltd.</span></div>
+ </div></div></div></div></footer></div>
+<script src="/assets/js/runtime~main.8c1ab759.js"></script>
+<script src="/assets/js/main.e02595c1.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/blog/kvrocks-2023-in-review/index.html b/blog/kvrocks-2023-in-review/index.html
index 87fbd2a..573f599 100644
--- a/blog/kvrocks-2023-in-review/index.html
+++ b/blog/kvrocks-2023-in-review/index.html
@@ -5,15 +5,15 @@
<meta name="generator" content="Docusaurus v2.4.0">
<title data-rh="true">Apache Kvrocks 2023 In Review | Apache Kvrocks™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://kvrocks.apache.org/blog/kvrocks-2023-in-review"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" name="docsearch:l [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Kvrocks™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.e5c949ec.css">
-<link rel="preload" href="/assets/js/runtime~main.e4aa4ae3.js" as="script">
-<link rel="preload" href="/assets/js/main.87d6c213.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.8c1ab759.js" as="script">
+<link rel="preload" href="/assets/js/main.e02595c1.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="roun [...]
+<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="roun [...]
<div style="border-top: 1px solid #ccc;min-height: 60px;line-height: 20px;text-align: center;font-family: Avenir-Medium,serif;font-size: 14px;color: #999;display: flex;align-items: center;"><span>Copyright © 2024 The Apache Software Foundation. Apache Kvrocks, Kvrocks, and its feather logo are trademarks of The Apache Software Foundation. Redis and its cube logo are registered trademarks of Redis Ltd.</span></div>
</div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.e4aa4ae3.js"></script>
-<script src="/assets/js/main.87d6c213.js"></script>
+<script src="/assets/js/runtime~main.8c1ab759.js"></script>
+<script src="/assets/js/main.e02595c1.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/blog/kvrocks-graduated-as-tlp/index.html b/blog/kvrocks-graduated-as-tlp/index.html
index e9ee2ec..4631d12 100644
--- a/blog/kvrocks-graduated-as-tlp/index.html
+++ b/blog/kvrocks-graduated-as-tlp/index.html
@@ -5,15 +5,15 @@
<meta name="generator" content="Docusaurus v2.4.0">
<title data-rh="true">Kvrocks graduated as an Apache Top-Level-Project | Apache Kvrocks™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://kvrocks.apache.org/blog/kvrocks-graduated-as-tlp"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="tr [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Kvrocks™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.e5c949ec.css">
-<link rel="preload" href="/assets/js/runtime~main.e4aa4ae3.js" as="script">
-<link rel="preload" href="/assets/js/main.87d6c213.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.8c1ab759.js" as="script">
+<link rel="preload" href="/assets/js/main.e02595c1.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="roun [...]
+<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="roun [...]
<div style="border-top: 1px solid #ccc;min-height: 60px;line-height: 20px;text-align: center;font-family: Avenir-Medium,serif;font-size: 14px;color: #999;display: flex;align-items: center;"><span>Copyright © 2024 The Apache Software Foundation. Apache Kvrocks, Kvrocks, and its feather logo are trademarks of The Apache Software Foundation. Redis and its cube logo are registered trademarks of Redis Ltd.</span></div>
</div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.e4aa4ae3.js"></script>
-<script src="/assets/js/main.87d6c213.js"></script>
+<script src="/assets/js/runtime~main.8c1ab759.js"></script>
+<script src="/assets/js/main.e02595c1.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/blog/rss.xml b/blog/rss.xml
index f201c77..5f623c4 100644
--- a/blog/rss.xml
+++ b/blog/rss.xml
@@ -4,10 +4,49 @@
<title>Apache Kvrocks™ Blog</title>
<link>https://kvrocks.apache.org/blog</link>
<description>Apache Kvrocks™ Blog</description>
- <lastBuildDate>Sun, 07 Jan 2024 00:00:00 GMT</lastBuildDate>
+ <lastBuildDate>Sun, 02 Jun 2024 00:00:00 GMT</lastBuildDate>
<docs>https://validator.w3.org/feed/docs/rss2.html</docs>
<generator>https://github.com/jpmonette/feed</generator>
<language>en</language>
+ <item>
+ <title><![CDATA[KQIR: a query engine for Apache Kvrocks that supports both SQL and RediSearch queries]]></title>
+ <link>https://kvrocks.apache.org/blog/kqir-query-engine</link>
+ <guid>https://kvrocks.apache.org/blog/kqir-query-engine</guid>
+ <pubDate>Sun, 02 Jun 2024 00:00:00 GMT</pubDate>
+ <description><![CDATA[Intro]]></description>
+ <content:encoded><![CDATA[<h2 class="anchor anchorWithStickyNavbar_LWe7" id="intro">Intro<a href="#intro" class="hash-link" aria-label="Direct link to Intro" title="Direct link to Intro"></a></h2><p>TL;DR:</p><p><img loading="lazy" alt="ftsearch-demo" src="/assets/images/ftsearch-demo-862524e872e1685b33bf7a9d75347695.png" width="1600" height="612" class="img_ev3q"></p><p>Pretty cool, right? Let's dive in!</p><p>(The full example is provided in <a href="/blog/kqir-query-engin [...]
+These include ACID transactions, expressive query capabilities inherent in SQL, as well as optimization and abstraction possibilities offered by structured data and relational algebra.
+Consequently, a new category of databases known as NewSQL has emerged gradually.</p><p>Kvrocks is a NoSQL database.
+While not classified as NewSQL, Kvrocks aims to strike a balance between NoSQL and NewSQL paradigms:
+It aims to maintain the high performance of NoSQL while also implementing transaction guarantees and supporting more complex queries.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="redisearch">RediSearch?<a href="#redisearch" class="hash-link" aria-label="Direct link to RediSearch?" title="Direct link to RediSearch?"></a></h3><p><a href="https://github.com/RediSearch/RediSearch" target="_blank" rel="noopener noreferrer">RediSearch</a> is a Redis module that enhances Redis with qu [...]
+While <a href="https://redis.io/docs/latest/operate/oss_and_stack/stack-with-enterprise/search/commands/" target="_blank" rel="noopener noreferrer">its Redis commands</a> begin with <code>FT.</code> (i.e. full text), it goes beyond just full-text search.</p><p>In fact, it is Redis moving closer to SQL databases:
+RediSearch enables users to create structured schemas on existing Redis JSON or HASH data for index building.
+Its schema supports <a href="https://redis.io/docs/latest/develop/interact/search-and-query/basic-constructs/field-and-type-options/" target="_blank" rel="noopener noreferrer">various field types</a> such as numeric, tag, geo, text, and vector - the latter two are utilized for full-text and vector searches.
+Instead of SQL support, RediSearch provides <a href="https://redis.io/docs/latest/develop/interact/search-and-query/advanced-concepts/query_syntax/" target="_blank" rel="noopener noreferrer">a unique query syntax</a> known as the RediSearch query language.</p><p>RediSearch finds applications in various fields.
+One recent application involves utilizing its vector search feature to develop retrieval-augmented generation (RAG). For instance, <a href="https://www.langchain.com/" target="_blank" rel="noopener noreferrer">LangChain</a> utilizes Redis as one of its vector database.
+If Kvrocks can be compatible with RediSearch, it could benefit from these ecosystem from RediSearch.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="sql">SQL?<a href="#sql" class="hash-link" aria-label="Direct link to SQL?" title="Direct link to SQL?"></a></h3><p>RediSearch uses a unique syntax for queries, but there are some issues to consider:</p><p>Firstly, RediSearch's schema (a.k.a. index, created with <code>FT.CREATE</code>) can be regarded as a table in an SQL database. Its [...]
+Given this similarity, supporting SQL should not increase significant challenges; why not include SQL support as well?</p><p>Secondly, SQL enjoys broader usage and is familiar to more individuals. It is simpler to learn at the syntax level. While developers may need time to understand RediSearch query syntax, adapting to a new SQL database often requires less effort. Furthermore, SQL offers robust support for various query features, enhanced expressive capabilities (like JOINs, subquerie [...]
+The initial transformation from the syntax tree results in Syntactical IR, a high-level representation of certain syntactic expressions.
+As it undergoes processing by an IR optimizer, KQIR evolves into Planning IR, a low-level representation used to express query execution plans within the query engine.</p><p>Additionally, we will conduct semantic checks on the IR before optimization to ensure that the query is semantically correct.
+This includes verifying that it does not include any undefined schemas or fields and uses the appropriate field types.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="ir-optimizer">IR Optimizer<a href="#ir-optimizer" class="hash-link" aria-label="Direct link to IR Optimizer" title="Direct link to IR Optimizer"></a></h3><p>The KQIR optimizer consists of multiple passes, <a href="https://llvm.org/docs/Passes.html" target="_blank" rel="noopener noreferrer">a concept borrowed from LLVM</a>.
+Each pass takes IR as input, conducts analysis and modifications, and generates a new IR.</p><p>Currently, the optimizer's passes are categorized into three main groups:</p><ul><li>expression passes for optimizing logical expressions like <code>AND</code>, <code>OR</code>, <code>NOT</code> operators;</li><li>numeric passes for optimizing numerical comparisons with an interval analysis (i.e. analyze the mathematical properties of numerical comparisons in terms of intervals) to enhance que [...]
+A pass may run multiple times at different stages to simplify individual passes by combining them.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="plan-executor">Plan Executor<a href="#plan-executor" class="hash-link" aria-label="Direct link to Plan Executor" title="Direct link to Plan Executor"></a></h3><p>The KQIR plan executor is built on the Volcano model.</p><p>Once the IR optimizer finishes all optimizations, the resulting IR becomes a planning IR. This will then be passed t [...]
+This means that for any field type (e.g. tag, numeric), we need an encoding to reduce such index to RocksDB's key-values.</p><p>Furthermore, we incrementally create indexes before and after JSON or HASH commands getting executed to guarantee that query results are in real-time.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="current-status">Current status<a href="#current-status" class="hash-link" aria-label="Direct link to Current status" title="Direct link to Current status"></a [...]
+Thus the upcoming release (version 2.9.0) will not include any KQIR component.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="supported-field-types">Supported field types<a href="#supported-field-types" class="hash-link" aria-label="Direct link to Supported field types" title="Direct link to Supported field types"></a></h3><p>Currently, we only support two field types: tag and numeric.</p><p>Tag fields label each data record with multiple tags for filtering in queries.
+And numeric fields hold numerical data within double-precision floating-point ranges. They allow sorting and filtering by specific numerical ranges.</p><p>In the future, we plan to expand support to include vector search and full-text search capabilities alongside other field types.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="transaction-guarantees">Transaction guarantees<a href="#transaction-guarantees" class="hash-link" aria-label="Direct link to Transaction guarantees" title [...]
+We will leverage these efforts to uphold the ACID properties of KQIR and release an official version incorporating KQIR after that.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="limitation-on-ir-optimizer">Limitation on IR optimizer<a href="#limitation-on-ir-optimizer" class="hash-link" aria-label="Direct link to Limitation on IR optimizer" title="Direct link to Limitation on IR optimizer"></a></h3><p>Currently, KQIR does not use the cost model when optimizing record sorting.
+Instead, it relies on specialized logic. This could be an area for improvement soon.</p><p>Furthermore, KQIR does not currently utilize optimizations based on runtime statistics.
+Our future focus will be on integrating runtime statistics into the cost model for more precise index selection.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="relationship-with-other-features">Relationship with other features<a href="#relationship-with-other-features" class="hash-link" aria-label="Direct link to Relationship with other features" title="Direct link to Relationship with other features"></a></h3><p>KQIR integrates well with the <a href="https://kvrocks.apache.org/d [...]
+Any index created is restricted to the current namespace and cannot be accessed in other namespaces, aligning with how other data is accessed within the namespace.</p><p>Currently, KQIR cannot be enabled in the <a href="https://kvrocks.apache.org/docs/cluster" target="_blank" rel="noopener noreferrer">cluster mode</a>.
+Cluster mode support may not be implemented in the short term, but we encourage anyone to submit discussions, design proposals, or suggestions.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="compliance">Compliance<a href="#compliance" class="hash-link" aria-label="Direct link to Compliance" title="Direct link to Compliance"></a></h3><p>While KQIR is designed to be compatible with RediSearch at the interface level, it does not include any code from RediSearch.
+As previously mentioned, KQIR features a completely new framework, and its query architecture (including parsing, optimization, execution) is independent of RediSearch.</p><p>This distinction is important due to the proprietary license under which RediSearch is released.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="high-experimental">High experimental!<a href="#high-experimental" class="hash-link" aria-label="Direct link to High experimental!" title="Direct link to High experime [...]
+We advise users to consider carefully when using KQIR functionalities in a production environment, as we do not guarantee compatibility, and there may be unexpected errors.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="future-outlook">Future outlook<a href="#future-outlook" class="hash-link" aria-label="Direct link to Future outlook" title="Direct link to Future outlook"></a></h2><p>KQIR is currently in development, and all mentioned aspects will continue to evolve.
+If you're interested, please stay updated on the progress.</p><p>Developers keen on KQIR are encouraged to get involved in the development process and join the Apache Kvrocks community.</p><p>Note that our community consists entirely of volunteers.
+As an ASF community, we strive to offer an open, inclusive, and vendor-neutral environment.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="vector-search">Vector search<a href="#vector-search" class="hash-link" aria-label="Direct link to Vector search" title="Direct link to Vector search"></a></h3><p>The design and implementation of vector search support are currently underway, which is very exciting.</p><p>In the Kvrocks community, some members have raised discussions and <a href [...]
+You also have the choice to manually build executable from the source code in the 'unstable' branch.</p><div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">docker run -it -p 6666:6666 apache/kvrocks:night [...]
+and create an index named <code>testidx</code> consisting a tag field <code>a</code> and numeric field <code>b</code> with the following command:</p><div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">FT. [...]
+(Note that it is also possible to add data before running <code>FT.CREATE</code>.)</p><div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">JSON.SET test:k1 $ '{"a": "x,y", "b": 11}'</span><br></span><span [...]
+ </item>
<item>
<title><![CDATA[Apache Kvrocks 2023 In Review]]></title>
<link>https://kvrocks.apache.org/blog/kvrocks-2023-in-review</link>
diff --git a/community/category/committers/index.html b/community/category/committers/index.html
index 3ad1cfa..57265b0 100644
--- a/community/category/committers/index.html
+++ b/community/category/committers/index.html
@@ -5,15 +5,15 @@
<meta name="generator" content="Docusaurus v2.4.0">
<title data-rh="true">Committers | Apache Kvrocks™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://kvrocks.apache.org/community/category/committers"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content=" [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Kvrocks™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.e5c949ec.css">
-<link rel="preload" href="/assets/js/runtime~main.e4aa4ae3.js" as="script">
-<link rel="preload" href="/assets/js/main.87d6c213.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.8c1ab759.js" as="script">
+<link rel="preload" href="/assets/js/main.e02595c1.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="roun [...]
<div style="border-top: 1px solid #ccc;min-height: 60px;line-height: 20px;text-align: center;font-family: Avenir-Medium,serif;font-size: 14px;color: #999;display: flex;align-items: center;"><span>Copyright © 2024 The Apache Software Foundation. Apache Kvrocks, Kvrocks, and its feather logo are trademarks of The Apache Software Foundation. Redis and its cube logo are registered trademarks of Redis Ltd.</span></div>
</div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.e4aa4ae3.js"></script>
-<script src="/assets/js/main.87d6c213.js"></script>
+<script src="/assets/js/runtime~main.8c1ab759.js"></script>
+<script src="/assets/js/main.e02595c1.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/community/category/internals/index.html b/community/category/internals/index.html
index f4f09d8..6ab355b 100644
--- a/community/category/internals/index.html
+++ b/community/category/internals/index.html
@@ -5,15 +5,15 @@
<meta name="generator" content="Docusaurus v2.4.0">
<title data-rh="true">Internals | Apache Kvrocks™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://kvrocks.apache.org/community/category/internals"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="cu [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Kvrocks™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.e5c949ec.css">
-<link rel="preload" href="/assets/js/runtime~main.e4aa4ae3.js" as="script">
-<link rel="preload" href="/assets/js/main.87d6c213.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.8c1ab759.js" as="script">
+<link rel="preload" href="/assets/js/main.e02595c1.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="roun [...]
<div style="border-top: 1px solid #ccc;min-height: 60px;line-height: 20px;text-align: center;font-family: Avenir-Medium,serif;font-size: 14px;color: #999;display: flex;align-items: center;"><span>Copyright © 2024 The Apache Software Foundation. Apache Kvrocks, Kvrocks, and its feather logo are trademarks of The Apache Software Foundation. Redis and its cube logo are registered trademarks of Redis Ltd.</span></div>
</div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.e4aa4ae3.js"></script>
-<script src="/assets/js/main.87d6c213.js"></script>
+<script src="/assets/js/runtime~main.8c1ab759.js"></script>
+<script src="/assets/js/main.e02595c1.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/community/category/releases/index.html b/community/category/releases/index.html
index 9488f02..fce9202 100644
--- a/community/category/releases/index.html
+++ b/community/category/releases/index.html
@@ -5,15 +5,15 @@
<meta name="generator" content="Docusaurus v2.4.0">
<title data-rh="true">Releases | Apache Kvrocks™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://kvrocks.apache.org/community/category/releases"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="curr [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Kvrocks™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.e5c949ec.css">
-<link rel="preload" href="/assets/js/runtime~main.e4aa4ae3.js" as="script">
-<link rel="preload" href="/assets/js/main.87d6c213.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.8c1ab759.js" as="script">
+<link rel="preload" href="/assets/js/main.e02595c1.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="roun [...]
<div style="border-top: 1px solid #ccc;min-height: 60px;line-height: 20px;text-align: center;font-family: Avenir-Medium,serif;font-size: 14px;color: #999;display: flex;align-items: center;"><span>Copyright © 2024 The Apache Software Foundation. Apache Kvrocks, Kvrocks, and its feather logo are trademarks of The Apache Software Foundation. Redis and its cube logo are registered trademarks of Redis Ltd.</span></div>
</div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.e4aa4ae3.js"></script>
-<script src="/assets/js/main.87d6c213.js"></script>
+<script src="/assets/js/runtime~main.8c1ab759.js"></script>
+<script src="/assets/js/main.e02595c1.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/community/contributing/index.html b/community/contributing/index.html
index d86a0c1..4a17e08 100644
--- a/community/contributing/index.html
+++ b/community/contributing/index.html
@@ -5,15 +5,15 @@
<meta name="generator" content="Docusaurus v2.4.0">
<title data-rh="true">How to Contribute | Apache Kvrocks™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://kvrocks.apache.org/community/contributing"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content=" [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Kvrocks™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.e5c949ec.css">
-<link rel="preload" href="/assets/js/runtime~main.e4aa4ae3.js" as="script">
-<link rel="preload" href="/assets/js/main.87d6c213.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.8c1ab759.js" as="script">
+<link rel="preload" href="/assets/js/main.e02595c1.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="roun [...]
<div style="border-top: 1px solid #ccc;min-height: 60px;line-height: 20px;text-align: center;font-family: Avenir-Medium,serif;font-size: 14px;color: #999;display: flex;align-items: center;"><span>Copyright © 2024 The Apache Software Foundation. Apache Kvrocks, Kvrocks, and its feather logo are trademarks of The Apache Software Foundation. Redis and its cube logo are registered trademarks of Redis Ltd.</span></div>
</div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.e4aa4ae3.js"></script>
-<script src="/assets/js/main.87d6c213.js"></script>
+<script src="/assets/js/runtime~main.8c1ab759.js"></script>
+<script src="/assets/js/main.e02595c1.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/community/create-a-release/index.html b/community/create-a-release/index.html
index 27e6814..f25c994 100644
--- a/community/create-a-release/index.html
+++ b/community/create-a-release/index.html
@@ -5,8 +5,8 @@
<meta name="generator" content="Docusaurus v2.4.0">
<title data-rh="true">Create a release | Apache Kvrocks™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://kvrocks.apache.org/community/create-a-release"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" conten [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Kvrocks™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.e5c949ec.css">
-<link rel="preload" href="/assets/js/runtime~main.e4aa4ae3.js" as="script">
-<link rel="preload" href="/assets/js/main.87d6c213.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.8c1ab759.js" as="script">
+<link rel="preload" href="/assets/js/main.e02595c1.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -21,7 +21,7 @@ while other types of commits (especially new features) need to declare specific
which will be described in the following sections.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="adding-gpg-key">Adding GPG KEY<a href="#adding-gpg-key" class="hash-link" aria-label="Direct link to Adding GPG KEY" title="Direct link to Adding GPG KEY"></a></h2><p>This section is a brief from the <a href="https://infra.apache.org/openpgp.html" target="_blank" rel="noopener noreferrer">Cryptography with OpenPGP</a> guideline.</p><div class="theme-admonition theme-admonition-note a [...]
<div style="border-top: 1px solid #ccc;min-height: 60px;line-height: 20px;text-align: center;font-family: Avenir-Medium,serif;font-size: 14px;color: #999;display: flex;align-items: center;"><span>Copyright © 2024 The Apache Software Foundation. Apache Kvrocks, Kvrocks, and its feather logo are trademarks of The Apache Software Foundation. Redis and its cube logo are registered trademarks of Redis Ltd.</span></div>
</div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.e4aa4ae3.js"></script>
-<script src="/assets/js/main.87d6c213.js"></script>
+<script src="/assets/js/runtime~main.8c1ab759.js"></script>
+<script src="/assets/js/main.e02595c1.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/community/data-structure-on-rocksdb/index.html b/community/data-structure-on-rocksdb/index.html
index f173833..6652bcd 100644
--- a/community/data-structure-on-rocksdb/index.html
+++ b/community/data-structure-on-rocksdb/index.html
@@ -5,8 +5,8 @@
<meta name="generator" content="Docusaurus v2.4.0">
<title data-rh="true">Data structures design | Apache Kvrocks™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://kvrocks.apache.org/community/data-structure-on-rocksdb"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_ [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Kvrocks™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.e5c949ec.css">
-<link rel="preload" href="/assets/js/runtime~main.e4aa4ae3.js" as="script">
-<link rel="preload" href="/assets/js/main.87d6c213.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.8c1ab759.js" as="script">
+<link rel="preload" href="/assets/js/main.e02595c1.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -19,7 +19,7 @@ while in the encoding version <code>1</code>, <code>expire</code> is stored in m
In the following text, we will refer to the length of <code>expire</code> field as <code>Ebyte</code> and the length of <code>size</code> field as <code>Sbyte</code>, in order to describe different encoding versions consistently.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="string">String<a href="#string" class="hash-link" aria-label="Direct link to String" title="Direct link to String"></a></h2><p>Redis string is key-value with expire time, so it's very easy to translate [...]
<div style="border-top: 1px solid #ccc;min-height: 60px;line-height: 20px;text-align: center;font-family: Avenir-Medium,serif;font-size: 14px;color: #999;display: flex;align-items: center;"><span>Copyright © 2024 The Apache Software Foundation. Apache Kvrocks, Kvrocks, and its feather logo are trademarks of The Apache Software Foundation. Redis and its cube logo are registered trademarks of Redis Ltd.</span></div>
</div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.e4aa4ae3.js"></script>
-<script src="/assets/js/main.87d6c213.js"></script>
+<script src="/assets/js/runtime~main.8c1ab759.js"></script>
+<script src="/assets/js/main.e02595c1.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/community/index.html b/community/index.html
index eef2316..9cb2b92 100644
--- a/community/index.html
+++ b/community/index.html
@@ -5,15 +5,15 @@
<meta name="generator" content="Docusaurus v2.4.0">
<title data-rh="true">Community | Apache Kvrocks™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://kvrocks.apache.org/community/"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data- [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Kvrocks™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.e5c949ec.css">
-<link rel="preload" href="/assets/js/runtime~main.e4aa4ae3.js" as="script">
-<link rel="preload" href="/assets/js/main.87d6c213.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.8c1ab759.js" as="script">
+<link rel="preload" href="/assets/js/main.e02595c1.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="roun [...]
<div style="border-top: 1px solid #ccc;min-height: 60px;line-height: 20px;text-align: center;font-family: Avenir-Medium,serif;font-size: 14px;color: #999;display: flex;align-items: center;"><span>Copyright © 2024 The Apache Software Foundation. Apache Kvrocks, Kvrocks, and its feather logo are trademarks of The Apache Software Foundation. Redis and its cube logo are registered trademarks of Redis Ltd.</span></div>
</div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.e4aa4ae3.js"></script>
-<script src="/assets/js/main.87d6c213.js"></script>
+<script src="/assets/js/runtime~main.8c1ab759.js"></script>
+<script src="/assets/js/main.e02595c1.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/community/security/index.html b/community/security/index.html
index 073f63e..274ef21 100644
--- a/community/security/index.html
+++ b/community/security/index.html
@@ -5,15 +5,15 @@
<meta name="generator" content="Docusaurus v2.4.0">
<title data-rh="true">Security | Apache Kvrocks™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://kvrocks.apache.org/community/security"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><met [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Kvrocks™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.e5c949ec.css">
-<link rel="preload" href="/assets/js/runtime~main.e4aa4ae3.js" as="script">
-<link rel="preload" href="/assets/js/main.87d6c213.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.8c1ab759.js" as="script">
+<link rel="preload" href="/assets/js/main.e02595c1.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="roun [...]
<div style="border-top: 1px solid #ccc;min-height: 60px;line-height: 20px;text-align: center;font-family: Avenir-Medium,serif;font-size: 14px;color: #999;display: flex;align-items: center;"><span>Copyright © 2024 The Apache Software Foundation. Apache Kvrocks, Kvrocks, and its feather logo are trademarks of The Apache Software Foundation. Redis and its cube logo are registered trademarks of Redis Ltd.</span></div>
</div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.e4aa4ae3.js"></script>
-<script src="/assets/js/main.87d6c213.js"></script>
+<script src="/assets/js/runtime~main.8c1ab759.js"></script>
+<script src="/assets/js/main.e02595c1.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/community/verify-a-release-candidate/index.html b/community/verify-a-release-candidate/index.html
index b07ad4f..a877a0a 100644
--- a/community/verify-a-release-candidate/index.html
+++ b/community/verify-a-release-candidate/index.html
@@ -5,15 +5,15 @@
<meta name="generator" content="Docusaurus v2.4.0">
<title data-rh="true">Verify a release candidate | Apache Kvrocks™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://kvrocks.apache.org/community/verify-a-release-candidate"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusa [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Kvrocks™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.e5c949ec.css">
-<link rel="preload" href="/assets/js/runtime~main.e4aa4ae3.js" as="script">
-<link rel="preload" href="/assets/js/main.87d6c213.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.8c1ab759.js" as="script">
+<link rel="preload" href="/assets/js/main.e02595c1.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="roun [...]
<div style="border-top: 1px solid #ccc;min-height: 60px;line-height: 20px;text-align: center;font-family: Avenir-Medium,serif;font-size: 14px;color: #999;display: flex;align-items: center;"><span>Copyright © 2024 The Apache Software Foundation. Apache Kvrocks, Kvrocks, and its feather logo are trademarks of The Apache Software Foundation. Redis and its cube logo are registered trademarks of Redis Ltd.</span></div>
</div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.e4aa4ae3.js"></script>
-<script src="/assets/js/main.87d6c213.js"></script>
+<script src="/assets/js/runtime~main.8c1ab759.js"></script>
+<script src="/assets/js/main.e02595c1.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/community/vote-a-core-developer/index.html b/community/vote-a-core-developer/index.html
index dfdc0ff..f704ed0 100644
--- a/community/vote-a-core-developer/index.html
+++ b/community/vote-a-core-developer/index.html
@@ -5,8 +5,8 @@
<meta name="generator" content="Docusaurus v2.4.0">
<title data-rh="true">Vote a new committer or PMC member | Apache Kvrocks™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://kvrocks.apache.org/community/vote-a-core-developer"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="doc [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Kvrocks™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.e5c949ec.css">
-<link rel="preload" href="/assets/js/runtime~main.e4aa4ae3.js" as="script">
-<link rel="preload" href="/assets/js/main.87d6c213.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.8c1ab759.js" as="script">
+<link rel="preload" href="/assets/js/main.e02595c1.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -14,7 +14,7 @@
If this is agreed among some members of the PMC, the process will kick off.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="initiate-discussion-in-the-community-private-mailing-group">Initiate discussion in the community private mailing group<a href="#initiate-discussion-in-the-community-private-mailing-group" class="hash-link" aria-label="Direct link to Initiate discussion in the community private mailing group" title="Direct link to Initiate discussion in the community private ma [...]
<div style="border-top: 1px solid #ccc;min-height: 60px;line-height: 20px;text-align: center;font-family: Avenir-Medium,serif;font-size: 14px;color: #999;display: flex;align-items: center;"><span>Copyright © 2024 The Apache Software Foundation. Apache Kvrocks, Kvrocks, and its feather logo are trademarks of The Apache Software Foundation. Redis and its cube logo are registered trademarks of Redis Ltd.</span></div>
</div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.e4aa4ae3.js"></script>
-<script src="/assets/js/main.87d6c213.js"></script>
+<script src="/assets/js/runtime~main.8c1ab759.js"></script>
+<script src="/assets/js/main.e02595c1.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/docs/backup/index.html b/docs/backup/index.html
index 1528445..28b9e1f 100644
--- a/docs/backup/index.html
+++ b/docs/backup/index.html
@@ -5,15 +5,15 @@
<meta name="generator" content="Docusaurus v2.4.0">
<title data-rh="true">Backup | Apache Kvrocks™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://kvrocks.apache.org/docs/backup"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Kvrocks™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.e5c949ec.css">
-<link rel="preload" href="/assets/js/runtime~main.e4aa4ae3.js" as="script">
-<link rel="preload" href="/assets/js/main.87d6c213.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.8c1ab759.js" as="script">
+<link rel="preload" href="/assets/js/main.e02595c1.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="roun [...]
<div style="border-top: 1px solid #ccc;min-height: 60px;line-height: 20px;text-align: center;font-family: Avenir-Medium,serif;font-size: 14px;color: #999;display: flex;align-items: center;"><span>Copyright © 2024 The Apache Software Foundation. Apache Kvrocks, Kvrocks, and its feather logo are trademarks of The Apache Software Foundation. Redis and its cube logo are registered trademarks of Redis Ltd.</span></div>
</div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.e4aa4ae3.js"></script>
-<script src="/assets/js/main.87d6c213.js"></script>
+<script src="/assets/js/runtime~main.8c1ab759.js"></script>
+<script src="/assets/js/main.e02595c1.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/docs/category/operation/index.html b/docs/category/operation/index.html
index b31c65b..9cbb015 100644
--- a/docs/category/operation/index.html
+++ b/docs/category/operation/index.html
@@ -5,15 +5,15 @@
<meta name="generator" content="Docusaurus v2.4.0">
<title data-rh="true">Operation | Apache Kvrocks™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://kvrocks.apache.org/docs/category/operation"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Kvrocks™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.e5c949ec.css">
-<link rel="preload" href="/assets/js/runtime~main.e4aa4ae3.js" as="script">
-<link rel="preload" href="/assets/js/main.87d6c213.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.8c1ab759.js" as="script">
+<link rel="preload" href="/assets/js/main.e02595c1.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="roun [...]
<div style="border-top: 1px solid #ccc;min-height: 60px;line-height: 20px;text-align: center;font-family: Avenir-Medium,serif;font-size: 14px;color: #999;display: flex;align-items: center;"><span>Copyright © 2024 The Apache Software Foundation. Apache Kvrocks, Kvrocks, and its feather logo are trademarks of The Apache Software Foundation. Redis and its cube logo are registered trademarks of Redis Ltd.</span></div>
</div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.e4aa4ae3.js"></script>
-<script src="/assets/js/main.87d6c213.js"></script>
+<script src="/assets/js/runtime~main.8c1ab759.js"></script>
+<script src="/assets/js/main.e02595c1.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/docs/category/references/index.html b/docs/category/references/index.html
index 70c3b74..ab92241 100644
--- a/docs/category/references/index.html
+++ b/docs/category/references/index.html
@@ -5,15 +5,15 @@
<meta name="generator" content="Docusaurus v2.4.0">
<title data-rh="true">References | Apache Kvrocks™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://kvrocks.apache.org/docs/category/references"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="curre [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Kvrocks™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.e5c949ec.css">
-<link rel="preload" href="/assets/js/runtime~main.e4aa4ae3.js" as="script">
-<link rel="preload" href="/assets/js/main.87d6c213.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.8c1ab759.js" as="script">
+<link rel="preload" href="/assets/js/main.e02595c1.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="roun [...]
<div style="border-top: 1px solid #ccc;min-height: 60px;line-height: 20px;text-align: center;font-family: Avenir-Medium,serif;font-size: 14px;color: #999;display: flex;align-items: center;"><span>Copyright © 2024 The Apache Software Foundation. Apache Kvrocks, Kvrocks, and its feather logo are trademarks of The Apache Software Foundation. Redis and its cube logo are registered trademarks of Redis Ltd.</span></div>
</div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.e4aa4ae3.js"></script>
-<script src="/assets/js/main.87d6c213.js"></script>
+<script src="/assets/js/runtime~main.8c1ab759.js"></script>
+<script src="/assets/js/main.e02595c1.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/docs/cluster/index.html b/docs/cluster/index.html
index 9b6b425..5ce3e27 100644
--- a/docs/cluster/index.html
+++ b/docs/cluster/index.html
@@ -5,15 +5,15 @@
<meta name="generator" content="Docusaurus v2.4.0">
<title data-rh="true">Cluster | Apache Kvrocks™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://kvrocks.apache.org/docs/cluster"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data- [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Kvrocks™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.e5c949ec.css">
-<link rel="preload" href="/assets/js/runtime~main.e4aa4ae3.js" as="script">
-<link rel="preload" href="/assets/js/main.87d6c213.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.8c1ab759.js" as="script">
+<link rel="preload" href="/assets/js/main.e02595c1.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="roun [...]
<div style="border-top: 1px solid #ccc;min-height: 60px;line-height: 20px;text-align: center;font-family: Avenir-Medium,serif;font-size: 14px;color: #999;display: flex;align-items: center;"><span>Copyright © 2024 The Apache Software Foundation. Apache Kvrocks, Kvrocks, and its feather logo are trademarks of The Apache Software Foundation. Redis and its cube logo are registered trademarks of Redis Ltd.</span></div>
</div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.e4aa4ae3.js"></script>
-<script src="/assets/js/main.87d6c213.js"></script>
+<script src="/assets/js/runtime~main.8c1ab759.js"></script>
+<script src="/assets/js/main.e02595c1.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/docs/faq/index.html b/docs/faq/index.html
index 255b002..6e88964 100644
--- a/docs/faq/index.html
+++ b/docs/faq/index.html
@@ -5,8 +5,8 @@
<meta name="generator" content="Docusaurus v2.4.0">
<title data-rh="true">Apache Kvrocks™ FAQs | Apache Kvrocks™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://kvrocks.apache.org/docs/faq"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><m [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Kvrocks™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.e5c949ec.css">
-<link rel="preload" href="/assets/js/runtime~main.e4aa4ae3.js" as="script">
-<link rel="preload" href="/assets/js/main.87d6c213.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.8c1ab759.js" as="script">
+<link rel="preload" href="/assets/js/main.e02595c1.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -16,7 +16,7 @@ background compaction is triggered. You can use the <code>compact</code> command
But after PR <a href="https://github.com/apache/kvrocks/pull/1489" target="_blank" rel="noopener noreferrer">#1489</a>(since v2.5.0), the scan command can return a number iterator by enabling the configuration: <code>redis-cursor-compatible</code>. You can also enable it in-flight by using the <code>config set</code> command.</p><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_ [...]
<div style="border-top: 1px solid #ccc;min-height: 60px;line-height: 20px;text-align: center;font-family: Avenir-Medium,serif;font-size: 14px;color: #999;display: flex;align-items: center;"><span>Copyright © 2024 The Apache Software Foundation. Apache Kvrocks, Kvrocks, and its feather logo are trademarks of The Apache Software Foundation. Redis and its cube logo are registered trademarks of Redis Ltd.</span></div>
</div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.e4aa4ae3.js"></script>
-<script src="/assets/js/main.87d6c213.js"></script>
+<script src="/assets/js/runtime~main.8c1ab759.js"></script>
+<script src="/assets/js/main.e02595c1.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/docs/getting-started/index.html b/docs/getting-started/index.html
index a667168..d03cbe2 100644
--- a/docs/getting-started/index.html
+++ b/docs/getting-started/index.html
@@ -5,15 +5,15 @@
<meta name="generator" content="Docusaurus v2.4.0">
<title data-rh="true">Getting started | Apache Kvrocks™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://kvrocks.apache.org/docs/getting-started"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="curr [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Kvrocks™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.e5c949ec.css">
-<link rel="preload" href="/assets/js/runtime~main.e4aa4ae3.js" as="script">
-<link rel="preload" href="/assets/js/main.87d6c213.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.8c1ab759.js" as="script">
+<link rel="preload" href="/assets/js/main.e02595c1.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="roun [...]
<div style="border-top: 1px solid #ccc;min-height: 60px;line-height: 20px;text-align: center;font-family: Avenir-Medium,serif;font-size: 14px;color: #999;display: flex;align-items: center;"><span>Copyright © 2024 The Apache Software Foundation. Apache Kvrocks, Kvrocks, and its feather logo are trademarks of The Apache Software Foundation. Redis and its cube logo are registered trademarks of Redis Ltd.</span></div>
</div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.e4aa4ae3.js"></script>
-<script src="/assets/js/main.87d6c213.js"></script>
+<script src="/assets/js/runtime~main.8c1ab759.js"></script>
+<script src="/assets/js/main.e02595c1.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/docs/info-sections/index.html b/docs/info-sections/index.html
index ae770b4..4ba3dd3 100644
--- a/docs/info-sections/index.html
+++ b/docs/info-sections/index.html
@@ -5,15 +5,15 @@
<meta name="generator" content="Docusaurus v2.4.0">
<title data-rh="true">INFO sections | Apache Kvrocks™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://kvrocks.apache.org/docs/info-sections"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current" [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Kvrocks™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.e5c949ec.css">
-<link rel="preload" href="/assets/js/runtime~main.e4aa4ae3.js" as="script">
-<link rel="preload" href="/assets/js/main.87d6c213.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.8c1ab759.js" as="script">
+<link rel="preload" href="/assets/js/main.e02595c1.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="roun [...]
<div style="border-top: 1px solid #ccc;min-height: 60px;line-height: 20px;text-align: center;font-family: Avenir-Medium,serif;font-size: 14px;color: #999;display: flex;align-items: center;"><span>Copyright © 2024 The Apache Software Foundation. Apache Kvrocks, Kvrocks, and its feather logo are trademarks of The Apache Software Foundation. Redis and its cube logo are registered trademarks of Redis Ltd.</span></div>
</div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.e4aa4ae3.js"></script>
-<script src="/assets/js/main.87d6c213.js"></script>
+<script src="/assets/js/runtime~main.8c1ab759.js"></script>
+<script src="/assets/js/main.e02595c1.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/docs/kvrocks-exporter/index.html b/docs/kvrocks-exporter/index.html
index ee32dd0..f6e0579 100644
--- a/docs/kvrocks-exporter/index.html
+++ b/docs/kvrocks-exporter/index.html
@@ -5,15 +5,15 @@
<meta name="generator" content="Docusaurus v2.4.0">
<title data-rh="true">Exporter for Apache Kvrocks™ | Apache Kvrocks™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://kvrocks.apache.org/docs/kvrocks-exporter"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Kvrocks™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.e5c949ec.css">
-<link rel="preload" href="/assets/js/runtime~main.e4aa4ae3.js" as="script">
-<link rel="preload" href="/assets/js/main.87d6c213.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.8c1ab759.js" as="script">
+<link rel="preload" href="/assets/js/main.e02595c1.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="roun [...]
<div style="border-top: 1px solid #ccc;min-height: 60px;line-height: 20px;text-align: center;font-family: Avenir-Medium,serif;font-size: 14px;color: #999;display: flex;align-items: center;"><span>Copyright © 2024 The Apache Software Foundation. Apache Kvrocks, Kvrocks, and its feather logo are trademarks of The Apache Software Foundation. Redis and its cube logo are registered trademarks of Redis Ltd.</span></div>
</div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.e4aa4ae3.js"></script>
-<script src="/assets/js/main.87d6c213.js"></script>
+<script src="/assets/js/runtime~main.8c1ab759.js"></script>
+<script src="/assets/js/main.e02595c1.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/docs/kvrocks2redis/index.html b/docs/kvrocks2redis/index.html
index 044f6c6..1f02a59 100644
--- a/docs/kvrocks2redis/index.html
+++ b/docs/kvrocks2redis/index.html
@@ -5,15 +5,15 @@
<meta name="generator" content="Docusaurus v2.4.0">
<title data-rh="true">kvrocks2redis | Apache Kvrocks™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://kvrocks.apache.org/docs/kvrocks2redis"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current" [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Kvrocks™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.e5c949ec.css">
-<link rel="preload" href="/assets/js/runtime~main.e4aa4ae3.js" as="script">
-<link rel="preload" href="/assets/js/main.87d6c213.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.8c1ab759.js" as="script">
+<link rel="preload" href="/assets/js/main.e02595c1.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="roun [...]
<div style="border-top: 1px solid #ccc;min-height: 60px;line-height: 20px;text-align: center;font-family: Avenir-Medium,serif;font-size: 14px;color: #999;display: flex;align-items: center;"><span>Copyright © 2024 The Apache Software Foundation. Apache Kvrocks, Kvrocks, and its feather logo are trademarks of The Apache Software Foundation. Redis and its cube logo are registered trademarks of Redis Ltd.</span></div>
</div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.e4aa4ae3.js"></script>
-<script src="/assets/js/main.87d6c213.js"></script>
+<script src="/assets/js/runtime~main.8c1ab759.js"></script>
+<script src="/assets/js/main.e02595c1.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/docs/namespace/index.html b/docs/namespace/index.html
index a6e294f..9b00ec7 100644
--- a/docs/namespace/index.html
+++ b/docs/namespace/index.html
@@ -5,15 +5,15 @@
<meta name="generator" content="Docusaurus v2.4.0">
<title data-rh="true">Namespace | Apache Kvrocks™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://kvrocks.apache.org/docs/namespace"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta d [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Kvrocks™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.e5c949ec.css">
-<link rel="preload" href="/assets/js/runtime~main.e4aa4ae3.js" as="script">
-<link rel="preload" href="/assets/js/main.87d6c213.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.8c1ab759.js" as="script">
+<link rel="preload" href="/assets/js/main.e02595c1.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="roun [...]
<div style="border-top: 1px solid #ccc;min-height: 60px;line-height: 20px;text-align: center;font-family: Avenir-Medium,serif;font-size: 14px;color: #999;display: flex;align-items: center;"><span>Copyright © 2024 The Apache Software Foundation. Apache Kvrocks, Kvrocks, and its feather logo are trademarks of The Apache Software Foundation. Redis and its cube logo are registered trademarks of Redis Ltd.</span></div>
</div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.e4aa4ae3.js"></script>
-<script src="/assets/js/main.87d6c213.js"></script>
+<script src="/assets/js/runtime~main.8c1ab759.js"></script>
+<script src="/assets/js/main.e02595c1.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/docs/replication/index.html b/docs/replication/index.html
index 9ca813e..e021d25 100644
--- a/docs/replication/index.html
+++ b/docs/replication/index.html
@@ -5,15 +5,15 @@
<meta name="generator" content="Docusaurus v2.4.0">
<title data-rh="true">Replication | Apache Kvrocks™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://kvrocks.apache.org/docs/replication"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><me [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Kvrocks™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.e5c949ec.css">
-<link rel="preload" href="/assets/js/runtime~main.e4aa4ae3.js" as="script">
-<link rel="preload" href="/assets/js/main.87d6c213.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.8c1ab759.js" as="script">
+<link rel="preload" href="/assets/js/main.e02595c1.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="roun [...]
<div style="border-top: 1px solid #ccc;min-height: 60px;line-height: 20px;text-align: center;font-family: Avenir-Medium,serif;font-size: 14px;color: #999;display: flex;align-items: center;"><span>Copyright © 2024 The Apache Software Foundation. Apache Kvrocks, Kvrocks, and its feather logo are trademarks of The Apache Software Foundation. Redis and its cube logo are registered trademarks of Redis Ltd.</span></div>
</div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.e4aa4ae3.js"></script>
-<script src="/assets/js/main.87d6c213.js"></script>
+<script src="/assets/js/runtime~main.8c1ab759.js"></script>
+<script src="/assets/js/main.e02595c1.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/docs/supported-commands/index.html b/docs/supported-commands/index.html
index 1f4c69e..074ff7e 100644
--- a/docs/supported-commands/index.html
+++ b/docs/supported-commands/index.html
@@ -5,8 +5,8 @@
<meta name="generator" content="Docusaurus v2.4.0">
<title data-rh="true">Supported commands | Apache Kvrocks™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://kvrocks.apache.org/docs/supported-commands"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Kvrocks™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.e5c949ec.css">
-<link rel="preload" href="/assets/js/runtime~main.e4aa4ae3.js" as="script">
-<link rel="preload" href="/assets/js/main.87d6c213.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.8c1ab759.js" as="script">
+<link rel="preload" href="/assets/js/main.e02595c1.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -14,7 +14,7 @@
In addition, <code>LISTFUNC</code> subcommand is added as an extension to list all functions and their libraries in which they are located.</p></div></div><h2 class="anchor anchorWithStickyNavbar_LWe7" id="json-commands">JSON commands<a href="#json-commands" class="hash-link" aria-label="Direct link to JSON commands" title="Direct link to JSON commands"></a></h2><table><thead><tr><th>Command</th><th>Supported OR Not</th><th>Since Version</th><th>Desc</th></tr></thead><tbody><tr><td>JSON [...]
<div style="border-top: 1px solid #ccc;min-height: 60px;line-height: 20px;text-align: center;font-family: Avenir-Medium,serif;font-size: 14px;color: #999;display: flex;align-items: center;"><span>Copyright © 2024 The Apache Software Foundation. Apache Kvrocks, Kvrocks, and its feather logo are trademarks of The Apache Software Foundation. Redis and its cube logo are registered trademarks of Redis Ltd.</span></div>
</div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.e4aa4ae3.js"></script>
-<script src="/assets/js/main.87d6c213.js"></script>
+<script src="/assets/js/runtime~main.8c1ab759.js"></script>
+<script src="/assets/js/main.e02595c1.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/download/index.html b/download/index.html
index 82a7281..5eb0922 100644
--- a/download/index.html
+++ b/download/index.html
@@ -5,8 +5,8 @@
<meta name="generator" content="Docusaurus v2.4.0">
<title data-rh="true">Official Download | Apache Kvrocks™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://kvrocks.apache.org/download/"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><met [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Kvrocks™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.e5c949ec.css">
-<link rel="preload" href="/assets/js/runtime~main.e4aa4ae3.js" as="script">
-<link rel="preload" href="/assets/js/main.87d6c213.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.8c1ab759.js" as="script">
+<link rel="preload" href="/assets/js/main.e02595c1.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -14,7 +14,7 @@
<a href="https://archive.apache.org/dist/kvrocks/" target="_blank" rel="noopener noreferrer">archive</a>. If a download from a mirror fails, retry, and the second download will likely succeed.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="docker-images">Docker Images<a href="#docker-images" class="hash-link" aria-label="Direct link to Docker Images" title="Direct link to Docker Images"></a></h3><p>Every released version of Apache Kvrocks™ has a corresponding <a href="https://hub [...]
<div style="border-top: 1px solid #ccc;min-height: 60px;line-height: 20px;text-align: center;font-family: Avenir-Medium,serif;font-size: 14px;color: #999;display: flex;align-items: center;"><span>Copyright © 2024 The Apache Software Foundation. Apache Kvrocks, Kvrocks, and its feather logo are trademarks of The Apache Software Foundation. Redis and its cube logo are registered trademarks of Redis Ltd.</span></div>
</div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.e4aa4ae3.js"></script>
-<script src="/assets/js/main.87d6c213.js"></script>
+<script src="/assets/js/runtime~main.8c1ab759.js"></script>
+<script src="/assets/js/main.e02595c1.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/download/third-party-packages/index.html b/download/third-party-packages/index.html
index 4ec3eee..3750223 100644
--- a/download/third-party-packages/index.html
+++ b/download/third-party-packages/index.html
@@ -5,8 +5,8 @@
<meta name="generator" content="Docusaurus v2.4.0">
<title data-rh="true">Third-party Packages | Apache Kvrocks™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://kvrocks.apache.org/download/third-party-packages"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Kvrocks™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.e5c949ec.css">
-<link rel="preload" href="/assets/js/runtime~main.e4aa4ae3.js" as="script">
-<link rel="preload" href="/assets/js/main.87d6c213.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.8c1ab759.js" as="script">
+<link rel="preload" href="/assets/js/main.e02595c1.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -18,7 +18,7 @@ is maintained by <a href="https://github.com/pragmatwice" target="_blank" rel="n
since all binaries will be built by <a href="https://wiki.archlinux.org/title/makepkg" target="_blank" rel="noopener noreferrer">makepkg</a> from the package scripts.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/kvrocks-website/tree/main/download/third-party-packages.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20 [...]
<div style="border-top: 1px solid #ccc;min-height: 60px;line-height: 20px;text-align: center;font-family: Avenir-Medium,serif;font-size: 14px;color: #999;display: flex;align-items: center;"><span>Copyright © 2024 The Apache Software Foundation. Apache Kvrocks, Kvrocks, and its feather logo are trademarks of The Apache Software Foundation. Redis and its cube logo are registered trademarks of Redis Ltd.</span></div>
</div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.e4aa4ae3.js"></script>
-<script src="/assets/js/main.87d6c213.js"></script>
+<script src="/assets/js/runtime~main.8c1ab759.js"></script>
+<script src="/assets/js/main.e02595c1.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/index.html b/index.html
index a06fff2..0822565 100644
--- a/index.html
+++ b/index.html
@@ -5,15 +5,15 @@
<meta name="generator" content="Docusaurus v2.4.0">
<title data-rh="true">Apache Kvrocks™ | Apache Kvrocks™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://kvrocks.apache.org/"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Kvrocks™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.e5c949ec.css">
-<link rel="preload" href="/assets/js/runtime~main.e4aa4ae3.js" as="script">
-<link rel="preload" href="/assets/js/main.87d6c213.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.8c1ab759.js" as="script">
+<link rel="preload" href="/assets/js/main.e02595c1.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
<div id="docusaurus-base-url-issue-banner-container"></div><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hid [...]
<div style="border-top: 1px solid #ccc;min-height: 60px;line-height: 20px;text-align: center;font-family: Avenir-Medium,serif;font-size: 14px;color: #999;display: flex;align-items: center;"><span>Copyright © 2024 The Apache Software Foundation. Apache Kvrocks, Kvrocks, and its feather logo are trademarks of The Apache Software Foundation. Redis and its cube logo are registered trademarks of Redis Ltd.</span></div>
</div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.e4aa4ae3.js"></script>
-<script src="/assets/js/main.87d6c213.js"></script>
+<script src="/assets/js/runtime~main.8c1ab759.js"></script>
+<script src="/assets/js/main.e02595c1.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/search-index.json b/search-index.json
index 6de5dfe..383f406 100644
--- a/search-index.json
+++ b/search-index.json
@@ -1 +1 @@
-[{"documents":[{"i":1,"t":"","u":"/blog/archive","b":["Blog"]},{"i":2,"t":"Getting started with Kvrocks and go-redis","u":"/blog/go-redis-kvrocks-opentelemetry","b":["Blog"]},{"i":24,"t":"How to implement bitmap on RocksDB?","u":"/blog/how-to-implement-bitmap-on-rocksdb","b":["Blog"]},{"i":32,"t":"Kvrocks graduated as an Apache Top-Level-Project","u":"/blog/kvrocks-graduated-as-tlp","b":["Blog"]},{"i":50,"t":"How we use RocksDB in Kvrocks?","u":"/blog/how-we-use-rocksdb-in-kvrocks","b":[ [...]
\ No newline at end of file
+[{"documents":[{"i":1,"t":"","u":"/blog/archive","b":["Blog"]},{"i":2,"t":"How to implement bitmap on RocksDB?","u":"/blog/how-to-implement-bitmap-on-rocksdb","b":["Blog"]},{"i":10,"t":"How we use RocksDB in Kvrocks?","u":"/blog/how-we-use-rocksdb-in-kvrocks","b":["Blog"]},{"i":29,"t":"KQIR: a query engine for Apache Kvrocks that supports both SQL and RediSearch queries","u":"/blog/kqir-query-engine","b":["Blog"]},{"i":75,"t":"Apache Kvrocks 2023 In Review","u":"/blog/kvrocks-2023-in-rev [...]
\ No newline at end of file
diff --git a/search/index.html b/search/index.html
index e0876a1..bee2b48 100644
--- a/search/index.html
+++ b/search/index.html
@@ -5,15 +5,15 @@
<meta name="generator" content="Docusaurus v2.4.0">
<title data-rh="true">Search the documentation</title><meta data-rh="true" property="og:title" content="Apache Kvrocks™"><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://kvrocks.apache.org/search"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh=" [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Kvrocks™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.e5c949ec.css">
-<link rel="preload" href="/assets/js/runtime~main.e4aa4ae3.js" as="script">
-<link rel="preload" href="/assets/js/main.87d6c213.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.8c1ab759.js" as="script">
+<link rel="preload" href="/assets/js/main.e02595c1.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="roun [...]
<div style="border-top: 1px solid #ccc;min-height: 60px;line-height: 20px;text-align: center;font-family: Avenir-Medium,serif;font-size: 14px;color: #999;display: flex;align-items: center;"><span>Copyright © 2024 The Apache Software Foundation. Apache Kvrocks, Kvrocks, and its feather logo are trademarks of The Apache Software Foundation. Redis and its cube logo are registered trademarks of Redis Ltd.</span></div>
</div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.e4aa4ae3.js"></script>
-<script src="/assets/js/main.87d6c213.js"></script>
+<script src="/assets/js/runtime~main.8c1ab759.js"></script>
+<script src="/assets/js/main.e02595c1.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/sitemap.xml b/sitemap.xml
index b8704c6..d5e1cf3 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -1 +1 @@
-<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"><url><loc>https://kvrocks.apache.org/blog</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://kvrocks.apache.org/blog/archive</loc><cha [...]
\ No newline at end of file
+<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"><url><loc>https://kvrocks.apache.org/blog</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://kvrocks.apache.org/blog/archive</loc><cha [...]
\ No newline at end of file
diff --git a/users/index.html b/users/index.html
index 8bcf864..be11ac4 100644
--- a/users/index.html
+++ b/users/index.html
@@ -5,15 +5,15 @@
<meta name="generator" content="Docusaurus v2.4.0">
<title data-rh="true">Our Users | Apache Kvrocks™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://kvrocks.apache.org/users"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Kvrocks™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.e5c949ec.css">
-<link rel="preload" href="/assets/js/runtime~main.e4aa4ae3.js" as="script">
-<link rel="preload" href="/assets/js/main.87d6c213.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.8c1ab759.js" as="script">
+<link rel="preload" href="/assets/js/main.e02595c1.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="roun [...]
<div style="border-top: 1px solid #ccc;min-height: 60px;line-height: 20px;text-align: center;font-family: Avenir-Medium,serif;font-size: 14px;color: #999;display: flex;align-items: center;"><span>Copyright © 2024 The Apache Software Foundation. Apache Kvrocks, Kvrocks, and its feather logo are trademarks of The Apache Software Foundation. Redis and its cube logo are registered trademarks of Redis Ltd.</span></div>
</div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.e4aa4ae3.js"></script>
-<script src="/assets/js/main.87d6c213.js"></script>
+<script src="/assets/js/runtime~main.8c1ab759.js"></script>
+<script src="/assets/js/main.e02595c1.js"></script>
</body>
</html>
\ No newline at end of file