You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beam.apache.org by da...@apache.org on 2022/07/06 13:09:41 UTC

[beam] branch master updated: [BEAM-11103] Add blog post for go 2.40 release (#17723)

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

damccorm pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/beam.git


The following commit(s) were added to refs/heads/master by this push:
     new eabd217913a [BEAM-11103] Add blog post for go 2.40 release (#17723)
eabd217913a is described below

commit eabd217913af186fec04f397928440d98b158629
Author: Danny McCormick <da...@google.com>
AuthorDate: Wed Jul 6 09:09:33 2022 -0400

    [BEAM-11103] Add blog post for go 2.40 release (#17723)
    
    * Add blog post for go 2.40 release
    
    * Remove redundant generics reference
---
 website/www/site/content/en/blog/go-2.40.md        |  69 +++++++++++++++++++++
 website/www/site/data/authors.yml                  |   3 +
 .../site/static/images/blog/go-registration.png    | Bin 0 -> 270101 bytes
 3 files changed, 72 insertions(+)

diff --git a/website/www/site/content/en/blog/go-2.40.md b/website/www/site/content/en/blog/go-2.40.md
new file mode 100644
index 00000000000..f6b0c8d932e
--- /dev/null
+++ b/website/www/site/content/en/blog/go-2.40.md
@@ -0,0 +1,69 @@
+---
+title:  "Big Improvements in Beam Go's 2.40 Release"
+date:   2022-05-17 00:00:01 -0800
+categories:
+  - blog
+  - go
+authors:
+  - damccorm
+---
+<!--
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+
+The 2.40 release is one of Beam Go's biggest yet, and we wanted to highlight
+some of the biggest changes coming with this important release!
+
+# Native Streaming Support
+
+2.40 marks the release of one of our most anticipated feature sets yet:
+native streaming Go pipelines. This includes adding support for:
+
+- [Self Checkpointing](https://beam.apache.org/documentation/programming-guide/#user-initiated-checkpoint)
+- [Watermark Estimation](https://beam.apache.org/documentation/programming-guide/#watermark-estimation)
+- [Pipeline Drain/Truncation](https://beam.apache.org/documentation/programming-guide/#truncating-during-drain)
+- [Bundle Finalization](https://beam.apache.org/documentation/programming-guide/#bundle-finalization) (added in 2.39)
+
+With all of these features, it is now possible to write your own streaming
+pipeline source DoFns in Go without relying on cross-language transforms
+from Java or Python. We encourage you to try out all of these new features
+in your streaming pipelines! The [programming guide](https://beam.apache.org/documentation/programming-guide/#splittable-dofns)
+has additional information on getting started with native Go streaming DoFns.
+
+# Generic Registration (Make Your Pipelines 3x Faster)
+
+The release of [Go Generics](https://go.dev/blog/intro-generics) in Go 1.18
+unlocked significant performance improvements for Beam Go. With generics,
+we were able to add simple registration functions that can massively reduce
+your pipeline's runtime and resource consumption. For example, registering
+the ParDo's in our load tests which are designed to simulate a basic pipeline
+reduced execution time from around 25 minutes to around 7 minutes on average
+- an over 70% reduction!
+
+<img class="center-block"
+     src="/images/blog/go-registration.png"
+     alt="Beam Registration Load Tests ParDo Improvements">
+
+To get started with registering your own DoFns and unlocking these performance
+gains, check out the [registration doc page](https://pkg.go.dev/github.com/apache/beam/sdks/go/pkg/beam/register).
+
+# What's Next?
+
+Moving forward, we remain focused on improving the streaming experience and
+leveraging generics to improve the SDK. Specific improvements we are considering
+include adding [State & Timers](https://beam.apache.org/documentation/programming-guide/#state-and-timers)
+support, introducing a Go expansion service so that Go DoFns can be used in other
+languages, and wrapping more Java and Python IOs so that they can be easily used
+in Go. As always, please let us know what changes you would like to see by
+[filing an issue](https://github.com/apache/beam/issues/new/choose),
+[emailing the dev list](dev@beam.apache.org), or starting a [slack thread](https://app.slack.com/client/T4S1WH2J3/C9H0YNP3P)!
diff --git a/website/www/site/data/authors.yml b/website/www/site/data/authors.yml
index 8ac506152bd..53f97783016 100644
--- a/website/www/site/data/authors.yml
+++ b/website/www/site/data/authors.yml
@@ -37,6 +37,9 @@ chadrik:
 chamikara:
   name: Chamikara Jayalath
   email: chamikara@apache.org
+damccorm:
+  name: Danny McCormick
+  email: dannymccormick@google.com
 davor:
   name: Davor Bonaci
   email: davor@apache.org
diff --git a/website/www/site/static/images/blog/go-registration.png b/website/www/site/static/images/blog/go-registration.png
new file mode 100644
index 00000000000..15ab3ecc55a
Binary files /dev/null and b/website/www/site/static/images/blog/go-registration.png differ