Uploaded image for project: 'Beam'
  1. Beam
  2. BEAM-702

Simple pattern for per-bundle and per-DoFn Closeable resources

Details

    • Improvement
    • Status: Open
    • P3
    • Resolution: Unresolved
    • None
    • None
    • sdk-ideas
    • None

    Description

      Dealing with Closeable resources inside a processElement call is easy: simply use try-with-resources.

      However, bundle- or DoFn-scoped resources, such as long-lived database connections, are less convenient to deal with: you have to open them in startBundle and conditionally close in finishBundle (likewise setup/teardown), taking special care if there's multiple resources to close all of them.

      Perhaps we should provide something like Guava's Closer to DoFn's https://github.com/google/guava/wiki/ClosingResourcesExplained. Ideally, the user would need to only write a startBundle() or setup() method, but not write finishBundle() or teardown() - resources would be closed automatically.

      Attachments

        Activity

          People

            Unassigned Unassigned
            jkff Eugene Kirpichov
            Votes:
            1 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated: