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

jiacai2050 pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/horaedb-docs.git


The following commit(s) were added to refs/heads/main by this push:
     new 056434a  release 2.1.0 (#157)
056434a is described below

commit 056434af006aad83059db6336f78eb9430a17a98
Author: Jiacai Liu <[email protected]>
AuthorDate: Mon Nov 18 17:32:03 2024 +0800

    release 2.1.0 (#157)
    
    Co-authored-by: baojinri <[email protected]>
---
 content/cn/blog/2024/release-2.1.0.md      |  58 ++++++++++++++++++++++++
 content/cn/docs/getting-started.md         |   8 ++--
 content/cn/downloads.md                    |   6 +--
 content/en/blog/2024/release-2.1.0.md      |  68 +++++++++++++++++++++++++++++
 content/en/docs/getting-started.md         |   8 ++--
 content/en/downloads.md                    |   4 +-
 layouts/_default/_markup/render-image.html |  14 ++++++
 static/images/local-wal-replay.png         | Bin 0 -> 215538 bytes
 static/images/local-wal-write.png          | Bin 0 -> 98282 bytes
 9 files changed, 153 insertions(+), 13 deletions(-)

diff --git a/content/cn/blog/2024/release-2.1.0.md 
b/content/cn/blog/2024/release-2.1.0.md
new file mode 100644
index 0000000..d21c19d
--- /dev/null
+++ b/content/cn/blog/2024/release-2.1.0.md
@@ -0,0 +1,58 @@
+---
+title: 2.1.0 版本发布
+date: 2024-11-18
+tags: release
+---
+
+Apache HoraeDB(孵化中)团队很高兴地宣布,v2.1.0 版本已于 2024-11-18 发布,这个版本解决了 60 
多个问题,并且包括两个主要功能:
+
+## 1. 引入基于本地磁盘的新 WAL 实现
+
+在之前的版本中,有一个基于 RocksDB 的 WAL。虽然它在大多数情况下运行良好,但存在以下问题:
+
+- 从源代码编译可能是一项具有挑战性的任务,尤其是因为 RocksDB 主要是用 C++ 编写的。
+- 对于 WAL 而言,RocksDB 可能有些矫枉过正。如果你对 RocksDB 不熟悉,那么对它进行调整可能会非常具有挑战性。
+
+通过这个新的 WAL,就很好的解决了上面两个问题,而且在性能测试结果,新 WAL 的表现略优于之前的实现,给以后的优化打下了结实的基础。
+
+![写入速率对比](/images/local-wal-write.png)
+![回放速率对比](/images/local-wal-replay.png)
+
+感兴趣的朋友可以参考[这里的设计文档]({{< ref "wal_on_disk.md" >}})了解更多这个特性的细节。
+
+## 2. 使用 Apache OpenDAL 访问对象存储
+
+Apache OpenDAL 是一个为访问各种数据存储后端提供统一 API 的项目。以下是一些主要优势:
+
+- 统一的 API:OpenDAL 为访问 AWS S3、Azure Blob Storage 和本地文件系统等不同存储后端提供了一致、统一的 API。
+- 优化效率:OpenDAL 在构建时就考虑到了性能。它包括确保高效数据访问和操作的优化功能,使其适用于高性能应用程序。
+- 全面的文档:该项目提供了详细的文档,使开发人员更容易上手并了解如何有效地使用该库。
+
+在较新版本的 OpenDAL 中,提供了 `object_store` 
的[集成](https://github.com/apache/opendal/tree/main/integrations/object_store),这非常有利于
 HoraeDB 的代码迁移,上层使用的 API 几乎没有发生变化,只需要将对象存储抽象为统一的 OpenDAL operator:
+
+```rust
+// Create a new operator
+let operator = Operator::new(S3::default())?.finish();
+
+// Create a new object store
+let object_store = Arc::new(OpendalStore::new(operator));
+```
+
+此外,由于 Apache OpenDAL 实现的 `object_store` 是基于最新版本的,相较于 HoraeDB 
之前使用的版本,`object_store` 接口发生了变化,为了保证本次升级范围尽量可控,我们选择对其进行兼容。
+
+对新 API 适配的过程中, `put_multipart` 接口变化最大,因此主要的适配逻辑也在这里,HoraeDB 的做法是:对底层的 
`put_multipart` 接口进行了封装,保证上层代码无修改,具体细节可参考:
+
+- 
https://github.com/apache/horaedb/blob/v2.1.0/src/components/object_store/src/multi_part.rs
+
+> 说明:在 parquet 最新版本中,写入路径上对新 `put_multipart` 接口适配程度较高,若用户使用的 parquet 版本 >= 
52.0.0,则无需进行适配,若是更老的版本,可参考 HoraeDB 的适配实现。
+
+## 下载
+
+见[下载页面](/downloads)。
+
+## 总结
+
+其他错误修复和改进请参见此处:
+https://github.com/apache/horaedb/releases/tag/v2.1.0
+
+> 我们一如既往地热忱欢迎您加入[我们的社区](/community),分享您的真知灼见。
diff --git a/content/cn/docs/getting-started.md 
b/content/cn/docs/getting-started.md
index 7031f70..397d4f7 100644
--- a/content/cn/docs/getting-started.md
+++ b/content/cn/docs/getting-started.md
@@ -107,12 +107,12 @@ DROP TABLE `demo`
 
 ## 使用 SDK
 
-当前我们支持多种开发语言 SDK,例如 Java,Rust,Python, Go 等, 具体使用方式请参考 [sdk](sdk/README.md)。
+当前我们支持多种开发语言 SDK,例如 Java,Rust,Python, Go 等, 具体使用方式请参考 [sdk]({{< ref "sdk" >}})。
 
 ## 下一步
 
 恭喜你,你已经学习了 HoraeDB 的简单使用。关于 HoraeDB 的更多信息,请参见以下内容。
 
-- [SQL 语法](sql/README.md)
-- [部署文档](cluster_deployment/README.md)
-- [运维文档](operation/README.md)
+- [SQL 语法]({{< ref "sql" >}})
+- [部署文档]({{< ref "cluster_deployment" >}})
+- [运维文档]({{< ref "operation" >}})
diff --git a/content/cn/downloads.md b/content/cn/downloads.md
index e323f81..e9ab0c0 100644
--- a/content/cn/downloads.md
+++ b/content/cn/downloads.md
@@ -11,9 +11,9 @@ Apache HoraeDB 使用源码压缩包进行发布。
 
 # 最新发布
 
-最新一次发布版本:2.0.0(2024-05-23),源码[下载地址](https://downloads.apache.org/incubator/horaedb/horaedb/v2.0.0/apache-horaedb-incubating-v2.0.0-src.tar.gz)。
+最新一次发布版本:2.1.0(2024-11-18),源码[下载地址](https://downloads.apache.org/incubator/horaedb/horaedb/v2.1.0/apache-horaedb-incubating-v2.1.0-src.tar.gz)。
 
-用户可以按照以下指南使用 
[signatures](https://downloads.apache.org/incubator/horaedb/horaedb/v2.0.0/apache-horaedb-incubating-v2.0.0-src.tar.gz.asc)
 和 
[checksums](https://downloads.apache.org/incubator/horaedb/horaedb/v2.0.0/apache-horaedb-incubating-v2.0.0-src.tar.gz.sha512)
 验证此版本。
+用户可以按照以下指南使用 
[signatures](https://downloads.apache.org/incubator/horaedb/horaedb/v2.1.0/apache-horaedb-incubating-v2.1.0-src.tar.gz.asc)
 和 
[checksums](https://downloads.apache.org/incubator/horaedb/horaedb/v2.1.0/apache-horaedb-incubating-v2.1.0-src.tar.gz.sha512)
 验证此版本。
 
 ## Docker 镜像
 
@@ -48,7 +48,7 @@ apache-horaedb-incubating-v2.0.0-src.tar.gz: OK
 
 ## 验证 Signatures
 
-验证 PGP Signatures,用户需要下载 [release 
KEYS](https://downloads.apache.org/incubator/horaedb/KEYS) 文件。
+验证 PGP Signatures,用户需要下载发布用的公钥 
[KEYS](https://downloads.apache.org/incubator/horaedb/KEYS) 文件。
 
 导入下载的 KEYS 文件:
 
diff --git a/content/en/blog/2024/release-2.1.0.md 
b/content/en/blog/2024/release-2.1.0.md
new file mode 100644
index 0000000..e46fdf1
--- /dev/null
+++ b/content/en/blog/2024/release-2.1.0.md
@@ -0,0 +1,68 @@
+---
+title: Release 2.1.0
+date: 2024-11-18
+tags: release
+---
+
+The Apache HoraeDB(incubating) team are pleased to announce that v2.1.0 is 
released, which has closed over 60 issues, including two major features:
+
+## 1. New WAL implementation based on local disk.
+
+In previous version, there is a RocksDB-based WAL. Although it works well in 
most cases, it has following issues:
+
+- Compiling from source can be a challenging task, especially since RocksDB is 
primarily written in C++.
+- For WAL, RocksDB can be somewhat overkill. If you are not familiar with 
RocksDB, tuning it can be very challenging.
+
+With this new WAL, the above two problems are solved very well, and in 
performance test, the new WAL slightly outperforms the previous implementation, 
giving a solid foundation for future optimizations.
+
+![Comparison of Write throughout](/images/local-wal-write.png)
+![Comparison of Replay time](/images/local-wal-replay.png)
+
+Interested readers can refer to the design documentation [here]({{< ref 
"wal_on_disk" >}}) for more details on this feature.
+
+### How to enable
+
+```
+[analytic.wal]
+type = "Local"
+data_dir = "/path/to/local/wal"
+```
+
+## 2. Access object store with [Apache 
OpenDAL](https://github.com/apache/opendal)
+
+OpenDAL (Open Data Access Layer) is a project that provides a unified API for 
accessing various data storage backends.
+It offers several advantages for developers and organizations. Here are some 
key benefits:
+
+- Unified API. OpenDAL provides a consistent and unified API for accessing 
different storage backends, such as AWS S3, Azure Blob Storage, and local file 
systems.
+- Optimized for Efficiency: OpenDAL is built with performance in mind. It 
includes optimizations to ensure efficient data access and manipulation, making 
it suitable for high-performance applications.
+- Comprehensive Documentation: The project provides detailed documentation, 
making it easier for developers to get started and understand how to use the 
library effectively.
+
+In newer versions of OpenDAL, [object_store 
integration](https://github.com/apache/opendal/tree/main/integrations/object_store)
 is provided, which is very beneficial for HoraeDB code migration, as the APIs 
used by the upper layers remain virtually unchanged, and only the object store 
part needs to be abstracted to a unified OpenDAL operator:
+
+```rust
+// Create a new operator
+let operator = Operator::new(S3::default())?.finish();
+
+// Create a new object store
+let object_store = Arc::new(OpendalStore::new(operator));
+```
+
+Additionally, since the Apache OpenDAL implementation of `object_store` is 
based on the latest version of the object_store, which has breaking changes 
from the previous version that HoraeDB is using, we've chosen to make it 
compatible in order to keep the scope of this upgrade as manageable as possible.
+
+In the process of adapting to the new API, the `put_multipart` interface has 
changed the most, so the main adaptation logic is also here, HoraeDB's approach 
is to encapsulate the underlying `put_multipart` interface to ensure that the 
upper layer code is not modified, the details can be found in the reference:
+
+https://github.com/apache/horaedb/blob/v2.1.0/src/components/object_store/src/multi_part.rs
+
+> Note: The adaptation logic is only practical when parquet version < 52.0.0.
+
+## Download
+
+Go to [download pages](/downloads).
+
+## Conclusion
+
+Other bug fixes and improvements can be seen here:
+
+- https://github.com/apache/horaedb/releases/tag/v2.1.0
+
+> As always, we warmly welcome you to join our [community](/community) and 
share your insights.
diff --git a/content/en/docs/getting-started.md 
b/content/en/docs/getting-started.md
index f654f37..b2ba979 100644
--- a/content/en/docs/getting-started.md
+++ b/content/en/docs/getting-started.md
@@ -107,12 +107,12 @@ DROP TABLE `demo`
 
 ## Using the SDKs
 
-See [sdk](./sdk/README.md)
+See [sdk]({{< ref "sdk" >}}).
 
 ## Next Step
 
 Congrats, you have finished this tutorial. For more information about HoraeDB, 
see the following:
 
-- [SQL Syntax](sql/README.md)
-- [Deployment](cluster_deployment/README.md)
-- [Operation](operation/README.md)
+- [SQL Syntax]({{< ref "sql" >}})
+- [Deployment]({{< ref "cluster_deployment" >}})
+- [Operation]({{< ref "operation" >}})
diff --git a/content/en/downloads.md b/content/en/downloads.md
index e8865c4..fb91153 100644
--- a/content/en/downloads.md
+++ b/content/en/downloads.md
@@ -11,9 +11,9 @@ Apache HoraeDB is released as source code tarballs with 
corresponding docker ima
 
 # The latest release
 
-The latest release is 2.0.0(2024-05-23), the source code can be downloaded 
[here](https://downloads.apache.org/incubator/horaedb/horaedb/v2.0.0/apache-horaedb-incubating-v2.0.0-src.tar.gz).
+The latest release is 2.1.0(2024-11-18), the source code can be downloaded 
[here](https://downloads.apache.org/incubator/horaedb/horaedb/v2.1.0/apache-horaedb-incubating-v2.1.0-src.tar.gz).
 
-Verify this release using the 
[signatures](https://downloads.apache.org/incubator/horaedb/horaedb/v2.0.0/apache-horaedb-incubating-v2.0.0-src.tar.gz.asc),
 
[checksums](https://downloads.apache.org/incubator/horaedb/horaedb/v2.0.0/apache-horaedb-incubating-v2.0.0-src.tar.gz.sha512)
 by following guides below.
+Verify this release using the 
[signatures](https://downloads.apache.org/incubator/horaedb/horaedb/v2.1.0/apache-horaedb-incubating-v2.1.0-src.tar.gz.asc),
 
[checksums](https://downloads.apache.org/incubator/horaedb/horaedb/v2.1.0/apache-horaedb-incubating-v2.1.0-src.tar.gz.sha512)
 by following guides below.
 
 ## Docker images
 
diff --git a/layouts/_default/_markup/render-image.html 
b/layouts/_default/_markup/render-image.html
new file mode 100644
index 0000000..cab5b3c
--- /dev/null
+++ b/layouts/_default/_markup/render-image.html
@@ -0,0 +1,14 @@
+<figure>
+    <img src="{{ .Destination | safeURL }}"
+      alt="{{ .Text | plainify }}"
+      {{ with .Title}}
+        title="{{ . | plainify }}"
+      {{ end }}
+      loading="lazy" />
+
+  {{ if .Title }}
+  <figcaption><center>{{ .Title | safeHTML }}</center></figcaption>
+  {{ else if .Text }}
+  <figcaption><center>{{ .Text | safeHTML }}</center></figcaption>
+  {{ end }}
+</figure>
diff --git a/static/images/local-wal-replay.png 
b/static/images/local-wal-replay.png
new file mode 100644
index 0000000..1aafc25
Binary files /dev/null and b/static/images/local-wal-replay.png differ
diff --git a/static/images/local-wal-write.png 
b/static/images/local-wal-write.png
new file mode 100644
index 0000000..0ff80fe
Binary files /dev/null and b/static/images/local-wal-write.png differ


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to