This is an automated email from the ASF dual-hosted git repository.
codope pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/hudi.git
The following commit(s) were added to refs/heads/asf-site by this push:
new c880de2ec4d [HUDI-7092] Release notes for 1.0.0-beta1 release (#10093)
c880de2ec4d is described below
commit c880de2ec4d0f3394e69c3352de25166ed15c49b
Author: Sagar Sumit <[email protected]>
AuthorDate: Wed Nov 15 15:58:04 2023 +0530
[HUDI-7092] Release notes for 1.0.0-beta1 release (#10093)
---
website/docs/concurrency_control.md | 2 +-
website/releases/download.md | 4 +
website/releases/older-releases.md | 2 +-
website/releases/release-0.10.0.md | 2 +-
website/releases/release-0.10.1.md | 2 +-
website/releases/release-0.11.0.md | 2 +-
website/releases/release-0.11.1.md | 2 +-
website/releases/release-0.12.0.md | 2 +-
website/releases/release-0.12.1.md | 2 +-
website/releases/release-0.12.2.md | 2 +-
website/releases/release-0.12.3.md | 2 +-
website/releases/release-0.13.0.md | 2 +-
website/releases/release-0.13.1.md | 2 +-
website/releases/release-0.14.0.md | 2 +-
website/releases/release-0.6.0.md | 2 +-
website/releases/release-0.7.0.md | 2 +-
website/releases/release-0.8.0.md | 2 +-
website/releases/release-0.9.0.md | 2 +-
website/releases/release-1.0.0-beta1.md | 139 ++++++++++++++++++++++++++++++++
19 files changed, 160 insertions(+), 17 deletions(-)
diff --git a/website/docs/concurrency_control.md
b/website/docs/concurrency_control.md
index 54d6408320d..793911deed9 100644
--- a/website/docs/concurrency_control.md
+++ b/website/docs/concurrency_control.md
@@ -77,7 +77,7 @@ Multiple writers can operate on the table with non-blocking
conflict resolution.
file group with the conflicts resolved automatically by the query reader and
the compactor. The new concurrency mode is
currently available for preview in version 1.0.0-beta only with the caveat
that conflict resolution is not supported yet
between clustering and ingestion. It works for compaction and ingestion, and
we can see an example of that with Flink
-writers [here](/docs/next/writing_data#non-blocking-concurrency-control).
+writers
[here](/docs/next/writing_data#non-blocking-concurrency-control-experimental).
## Enabling Multi Writing
diff --git a/website/releases/download.md b/website/releases/download.md
index 390d277332b..7e6b8350565 100644
--- a/website/releases/download.md
+++ b/website/releases/download.md
@@ -5,6 +5,10 @@ keywords: [ hudi, download]
toc: true
last_modified_at: 2022-12-27T15:59:57-04:00
---
+### Release 1.0.0-beta1
+* Source Release : [Apache Hudi 1.0.0-beta1 Source
Release](https://www.apache.org/dyn/closer.lua/hudi/1.0.0-beta1/hudi-1.0.0-beta1.src.tgz)
([asc](https://downloads.apache.org/hudi/1.0.0-beta1/hudi-1.0.0-beta1.src.tgz.asc),
[sha512](https://downloads.apache.org/hudi/1.0.0-beta1/hudi-1.0.0-beta1.src.tgz.sha512))
+* Release Note : ([Release Note for Apache Hudi
0.14.0](/releases/release-1.0.0-beta1))
+
### Release 0.14.0
* Source Release : [Apache Hudi 0.14.0 Source
Release](https://www.apache.org/dyn/closer.lua/hudi/0.14.0/hudi-0.14.0.src.tgz)
([asc](https://downloads.apache.org/hudi/0.14.0/hudi-0.14.0.src.tgz.asc),
[sha512](https://downloads.apache.org/hudi/0.14.0/hudi-0.14.0.src.tgz.sha512))
* Release Note : ([Release Note for Apache Hudi
0.14.0](/releases/release-0.14.0))
diff --git a/website/releases/older-releases.md
b/website/releases/older-releases.md
index 5a925380c5d..7b1007cb98d 100644
--- a/website/releases/older-releases.md
+++ b/website/releases/older-releases.md
@@ -1,6 +1,6 @@
---
title: "Older Releases"
-sidebar_position: 16
+sidebar_position: 17
layout: releases
toc: true
last_modified_at: 2020-05-28T08:40:00-07:00
diff --git a/website/releases/release-0.10.0.md
b/website/releases/release-0.10.0.md
index d31e3bbebc2..1da39173ced 100644
--- a/website/releases/release-0.10.0.md
+++ b/website/releases/release-0.10.0.md
@@ -1,6 +1,6 @@
---
title: "Release 0.10.0"
-sidebar_position: 11
+sidebar_position: 12
layout: releases
toc: true
---
diff --git a/website/releases/release-0.10.1.md
b/website/releases/release-0.10.1.md
index 4d09ac2dc88..0ef10be43a5 100644
--- a/website/releases/release-0.10.1.md
+++ b/website/releases/release-0.10.1.md
@@ -1,6 +1,6 @@
---
title: "Release 0.10.1"
-sidebar_position: 10
+sidebar_position: 11
layout: releases
toc: true
---
diff --git a/website/releases/release-0.11.0.md
b/website/releases/release-0.11.0.md
index 6e995a6e6cd..5f801c9086f 100644
--- a/website/releases/release-0.11.0.md
+++ b/website/releases/release-0.11.0.md
@@ -1,6 +1,6 @@
---
title: "Release 0.11.0"
-sidebar_position: 9
+sidebar_position: 10
layout: releases
toc: true
last_modified_at: 2022-01-27T22:07:00+08:00
diff --git a/website/releases/release-0.11.1.md
b/website/releases/release-0.11.1.md
index 9389aa35229..2575f5b43d0 100644
--- a/website/releases/release-0.11.1.md
+++ b/website/releases/release-0.11.1.md
@@ -1,6 +1,6 @@
---
title: "Release 0.11.1"
-sidebar_position: 8
+sidebar_position: 9
layout: releases
toc: true
last_modified_at: 2022-06-19T23:30:00-07:00
diff --git a/website/releases/release-0.12.0.md
b/website/releases/release-0.12.0.md
index feba97ef419..a1a73c452f5 100644
--- a/website/releases/release-0.12.0.md
+++ b/website/releases/release-0.12.0.md
@@ -1,6 +1,6 @@
---
title: "Release 0.12.0"
-sidebar_position: 7
+sidebar_position: 8
layout: releases
toc: true
---
diff --git a/website/releases/release-0.12.1.md
b/website/releases/release-0.12.1.md
index acd1995b1e3..3f0701de584 100644
--- a/website/releases/release-0.12.1.md
+++ b/website/releases/release-0.12.1.md
@@ -1,6 +1,6 @@
---
title: "Release 0.12.1"
-sidebar_position: 6
+sidebar_position: 7
layout: releases
toc: true
---
diff --git a/website/releases/release-0.12.2.md
b/website/releases/release-0.12.2.md
index 7de6ed5c50a..965f1ce2a5d 100644
--- a/website/releases/release-0.12.2.md
+++ b/website/releases/release-0.12.2.md
@@ -1,6 +1,6 @@
---
title: "Release 0.12.2"
-sidebar_position: 5
+sidebar_position: 6
layout: releases
toc: true
---
diff --git a/website/releases/release-0.12.3.md
b/website/releases/release-0.12.3.md
index 69c3321dc6a..887e9e8878e 100644
--- a/website/releases/release-0.12.3.md
+++ b/website/releases/release-0.12.3.md
@@ -1,6 +1,6 @@
---
title: "Release 0.12.3"
-sidebar_position: 3
+sidebar_position: 4
layout: releases
toc: true
last_modified_at: 2023-04-23T10:30:00+05:30
diff --git a/website/releases/release-0.13.0.md
b/website/releases/release-0.13.0.md
index 29facde5b56..ab6f6c6c43e 100644
--- a/website/releases/release-0.13.0.md
+++ b/website/releases/release-0.13.0.md
@@ -1,6 +1,6 @@
---
title: "Release 0.13.0"
-sidebar_position: 4
+sidebar_position: 5
layout: releases
toc: true
---
diff --git a/website/releases/release-0.13.1.md
b/website/releases/release-0.13.1.md
index cef0dc7d43d..d834d9ad6c1 100644
--- a/website/releases/release-0.13.1.md
+++ b/website/releases/release-0.13.1.md
@@ -1,6 +1,6 @@
---
title: "Release 0.13.1"
-sidebar_position: 2
+sidebar_position: 3
layout: releases
toc: true
last_modified_at: 2023-05-25T13:00:00-08:00
diff --git a/website/releases/release-0.14.0.md
b/website/releases/release-0.14.0.md
index 9608f806b88..bb2b8114fb0 100644
--- a/website/releases/release-0.14.0.md
+++ b/website/releases/release-0.14.0.md
@@ -1,6 +1,6 @@
---
title: "Release 0.14.0"
-sidebar_position: 1
+sidebar_position: 2
layout: releases
toc: true
---
diff --git a/website/releases/release-0.6.0.md
b/website/releases/release-0.6.0.md
index dedd4d11bda..494aaf28b01 100644
--- a/website/releases/release-0.6.0.md
+++ b/website/releases/release-0.6.0.md
@@ -1,6 +1,6 @@
---
title: "Release 0.6.0"
-sidebar_position: 15
+sidebar_position: 16
layout: releases
toc: true
---
diff --git a/website/releases/release-0.7.0.md
b/website/releases/release-0.7.0.md
index d93be002b79..08a70a47a26 100644
--- a/website/releases/release-0.7.0.md
+++ b/website/releases/release-0.7.0.md
@@ -1,6 +1,6 @@
---
title: "Release 0.7.0"
-sidebar_position: 14
+sidebar_position: 15
layout: releases
toc: true
---
diff --git a/website/releases/release-0.8.0.md
b/website/releases/release-0.8.0.md
index 270a9b949ec..6e0a84bfdca 100644
--- a/website/releases/release-0.8.0.md
+++ b/website/releases/release-0.8.0.md
@@ -1,6 +1,6 @@
---
title: "Release 0.8.0"
-sidebar_position: 13
+sidebar_position: 14
layout: releases
toc: true
---
diff --git a/website/releases/release-0.9.0.md
b/website/releases/release-0.9.0.md
index 1a01b104fdb..81bc81046f7 100644
--- a/website/releases/release-0.9.0.md
+++ b/website/releases/release-0.9.0.md
@@ -1,6 +1,6 @@
---
title: "Release 0.9.0"
-sidebar_position: 12
+sidebar_position: 13
layout: releases
toc: true
---
diff --git a/website/releases/release-1.0.0-beta1.md
b/website/releases/release-1.0.0-beta1.md
new file mode 100644
index 00000000000..ff3eec3de38
--- /dev/null
+++ b/website/releases/release-1.0.0-beta1.md
@@ -0,0 +1,139 @@
+---
+title: "Release 1.0.0-beta1"
+sidebar_position: 1
+layout: releases
+toc: true
+---
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+## [Release
1.0.0-beta1](https://github.com/apache/hudi/releases/tag/release-1.0.0-beta1)
([docs](/docs/next/quick-start-guide))
+
+Apache Hudi 1.0.0-beta1 is the first beta release of Apache Hudi. This release
is meant for early adopters to try
+out the new features and provide feedback. The release is not meant for
production use.
+
+## Migration Guide
+
+This release contains major format changes as we will see in highlights below.
As such, migration would be required when
+the release is made generally available (GA). However, we encourage users to
try out the features on new tables.
+
+:::caution
+Given that timeline format and log file format has changed in this beta
release, it is recommended not to attempt to do
+rolling upgrades from older versions to this release.
+:::
+
+## Highlights
+
+### Format changes
+
+[HUDI-6242](https://issues.apache.org/jira/browse/HUDI-6242) is the main epic
covering all the format changes proposals. The following are the main changes
in this release:
+
+#### Timeline
+
+- Now all commit metadata is serialized to avro. This allows us to add new
fields in the future without breaking
+ compatibility and also maintain uniformity in metadata across all actions.
+- All completed commit metadata file name will also have completion time. All
the actions in requested/inflight states
+ are stored in the active timeline as files named
<begin_instant_time>.<action_type>.<requested|inflight>. Completed
+ actions are stored along with a time that denotes when the action was
completed, in a file named <
+ begin_instant_time>_<completion_instant_time>.<action_type>. This allows us
to implement file slicing for non-blocking
+ concurrecy control.
+- Completed actions, their plans and completion metadata are stored in a more
+ scalable [LSM tree](https://en.wikipedia.org/wiki/Log-structured_merge-tree)
based timeline organized in an *
+ *_archived_** storage location under the .hoodie metadata path. It consists
of Apache Parquet files with action
+ instant data and bookkeeping metadata files, in the following manner.
Checkout [timeline](/docs/next/timeline#lsm-timeline) docs for more details.
+
+#### Log File Format
+
+- In addition to the fields in the log file header, we also store record
positions. Refer to the
+ latest [spec](https://hudi.apache.org/tech-specs-1point0/#log-file-format)
for more details. This allows us to do
+ position-based merging (apart from key-based merging) and skip pages based
on positions.
+- Log file name will now have the deltacommit instant time instead of base
commit instant time.
+
+#### Multiple base file formats
+
+Now you can have multiple base files formats in a Hudi table. Even the same
filegroup can have multiple base file
+formats. We need to set a table config
`hoodie.table.multiple.base.file.formats.enable` to use this feature. And
+whenever we need to change the format, then just specify the format in the
`hoodie.base.file.format"` config. Currently,
+only Parquet, Orc and HFile formats are supported. This unlocks multiple
benefits including choosing file format
+suitable to index, and supporting emerging formats for ML/AI.
+
+### Concurrency Control
+
+A new concurrency control mode called `NON_BLOCKING_CONCURRENCY_CONTROL` is
introduced in this release, where unlike
+OCC, multiple writers can operate on the table with non-blocking conflict
resolution. The writers can write into the
+same file group with the conflicts resolved automatically by the query reader
and the compactor. The new concurrency
+mode is currently available for preview in version 1.0.0-beta only. You can
read more about it under
+section [Model C:
Multi-writer](/docs/next/concurrency_control#non-blocking-concurrency-control-mode-experimental).
A complete example with multiple
+Flink streaming writers is available
[here](/docs/next/writing_data#non-blocking-concurrency-control-experimental).
You
+can follow the
[RFC](https://github.com/apache/hudi/blob/master/rfc/rfc-66/rfc-66.md) and
+the [JIRA](https://issues.apache.org/jira/browse/HUDI-6640) for more details.
+
+### Functional Index
+
+A [functional
index](https://github.com/apache/hudi/blob/00ece7bce0a4a8d0019721a28049723821e01842/rfc/rfc-63/rfc-63.md)
+is an index on a function of a column. It is a new addition to Hudi's
[multi-modal
indexing](https://hudi.apache.org/blog/2022/05/17/Introducing-Multi-Modal-Index-for-the-Lakehouse-in-Apache-Hudi)
+subsystem which provides faster access method and also absorbs partitioning as
part of the indexing system. Now you can
+simply create and drop index using SQL syntax as follows:
+
+```sql
+-- Create Index
+CREATE INDEX [IF NOT EXISTS] index_name ON [TABLE] table_name
+[USING index_type]
+(column_name1 [OPTIONS(key1=value1, key2=value2, ...)], column_name2
[OPTIONS(key1=value1, key2=value2, ...)], ...)
+[OPTIONS (key1=value1, key2=value2, ...)]
+
+-- Drop Index
+DROP INDEX [IF EXISTS] index_name ON [TABLE] table_name
+```
+
+- `index_name` is the name of the index to be created or dropped.
+- `table_name` is the name of the table on which the index is created or
dropped.
+- `index_type` is the type of the index to be created. Currently, only
`files`, `column_stats` and `bloom_filters` is supported.
+- `column_name` is the name of the column on which the index is created.
+- Both index and column on which the index is created can be qualified with
some options in the form of key-value pairs.
+
+To see some examples of creating and using a functional index, please checkout
the Spark SQL DDL
+docs [here](/docs/next/sql_ddl#create-index). You can follow
+the [RFC](https://github.com/apache/hudi/blob/master/rfc/rfc-63/rfc-63.md) and
+the [JIRA](https://issues.apache.org/jira/browse/HUDI-512) to keep track of
ongoing work on this feature.
+
+### API changes
+
+#### Record Merger API
+
+The `HoodieRecordPayload` interface was deprecated in favor of the new
`HoodieRecordMerger` interface in version 0.13.0.
+The new interface has been further enhanced to support all kinds of merging
operations. In particular, the new interface
+supports partial merge and support custom checks before flushing merged
records to disk. Please check
+the
[javadoc](https://github.com/apache/hudi/blob/3a1d4fb03b1ab8e3cf27073053a4fab0a56a26d2/hudi-common/src/main/java/org/apache/hudi/common/model/HoodieRecordMerger.java)
+of the API for more details.
+
+#### New FileGroup Reader
+
+In addition to key-based merging of records in log files with base files for
queries on MOR table, we have implemented
+position-based merging and skipping pages based on positions. The new reader
has shown impressive performance gains for
+**partial updates** with key-based merging. For a MOR table of size 1TB with
100 partitions and 80% random updates in
+subsequent commits, the new reader is **5.7x faster** for snapshot queries
with **70x reduced write amplification**.
+However, for position-based merging, the gains are yet to be realized as
filter pushdown support
+is [in progress](https://github.com/apache/hudi/pull/10030). The new reader is
enabled by default for all new tables.
+Following configs are used to control the reader:
+```
+# enabled by default
+hoodie.file.group.reader.enabled=true
+hoodie.datasource.read.use.new.parquet.file.format=true
+# need to enable position-based merging if required
+hoodie.merge.use.record.positions=true
+```
+
+Few things to note for the new reader:
+- It is only applicable to COW or MOR tables with base files in Parquet format.
+- Only snapshot queries for COW table, and snapshot queries and read-optimized
queries for MOR table are supported.
+- Currently, the reader will not be able to push down the data filters to
scan. It is recommended to use key-based
+ merging for now.
+
+You can follow [HUDI-6243](https://issues.apache.org/jira/browse/HUDI-6243)
+and [HUDI-6722](https://issues.apache.org/jira/browse/HUDI-6722) to keep track
of ongoing work related to reader/writer
+API changes and performance improvements.
+
+## Raw Release Notes
+
+The raw release notes are available
[here](https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12322822&version=12351210).