[ 
https://issues.apache.org/jira/browse/BEAM-14484?focusedWorklogId=772608&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-772608
 ]

ASF GitHub Bot logged work on BEAM-14484:
-----------------------------------------

                Author: ASF GitHub Bot
            Created on: 19/May/22 21:11
            Start Date: 19/May/22 21:11
    Worklog Time Spent: 10m 
      Work Description: jrmccluskey commented on code in PR #17716:
URL: https://github.com/apache/beam/pull/17716#discussion_r877544819


##########
sdks/go/pkg/beam/io/rtrackers/wrappedbounded/wrappedbounded.go:
##########
@@ -0,0 +1,76 @@
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements.  See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You 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.
+
+// Package offsetrange defines a restriction and restriction tracker for offset
+// ranges. An offset range is just a range, with a start and end, that can
+// begin at an offset, and is commonly used to represent byte ranges for files
+// or indices for iterable containers.
+
+package wrappedbounded
+
+import "github.com/apache/beam/sdks/v2/go/pkg/beam/core/sdf"
+
+// Tracker wraps an implementation of an RTracker and adds an IsBounded() 
function
+// that returns true in order to allow RTrackers to be handled as bounded 
BoundableRTrackers
+// if necessary (like in self-checkpointing evaluation.)
+type Tracker struct {
+       baseTracker sdf.RTracker
+}
+
+// TryClaim attempts to claim a block of work from the underlying RTracker's 
restriction.
+func (t *Tracker) TryClaim(pos interface{}) (ok bool) {
+       return t.baseTracker.TryClaim(pos)
+}
+
+// GetError returns an error from the underlying RTracker if it has stopped 
executing. Returns nil
+// if none has occurred.
+func (t *Tracker) GetError() error {
+       return t.baseTracker.GetError()
+}
+
+// TrySplit splits the underlying RTracker's restriction into a primary (work 
that is currently executing)
+// and a residual (work that will be split off and resumed later.)
+func (t *Tracker) TrySplit(fraction float64) (primary, residual interface{}, 
err error) {
+       return t.baseTracker.TrySplit(fraction)
+}
+
+// GetProgress returns two abstract scalars representing the amount of work 
done and the remaining work
+// left in the underlying RTracker. These are unitless values, only used to 
estimate work in relation to
+// each other.
+func (t *Tracker) GetProgress() (done float64, remaining float64) {
+       return t.baseTracker.GetProgress()
+}
+
+// IsDone() returns a boolean indicating if the work represented by the 
underlying RTracker has
+// been completed.
+func (t *Tracker) IsDone() bool {
+       return t.baseTracker.IsDone()
+}

Review Comment:
   Ah I knew that worked for interfaces, didn't know it also worked for 
structs. Changed.





Issue Time Tracking
-------------------

    Worklog Id:     (was: 772608)
    Time Spent: 5h  (was: 4h 50m)

> Improve error message surrounding primary returns in the self-checkpointing 
> code
> --------------------------------------------------------------------------------
>
>                 Key: BEAM-14484
>                 URL: https://issues.apache.org/jira/browse/BEAM-14484
>             Project: Beam
>          Issue Type: Improvement
>          Components: sdk-go
>            Reporter: Jack McCluskey
>            Assignee: Jack McCluskey
>            Priority: P1
>          Time Spent: 5h
>  Remaining Estimate: 0h
>
> The error message in the Go SDK harness around returned primaries in the 
> self-checkpointing code 
> ([https://github.com/apache/beam/blob/ea1f292e9cf31fc8c4803b10d811f0d3ee184ae7/sdks/go/pkg/beam/core/runtime/exec/datasource.go#L375)]
>  is unclear and should be made more explicit. It should also guide the user 
> towards making sure that the restriction behaves properly in the 
> self-checkpointing case. 



--
This message was sent by Atlassian Jira
(v8.20.7#820007)

Reply via email to