If user does not explicitly specify transform name, in which case a 
autogenerated name will be used when generating the unique id, does it mean, 
the id could change when the pipeline changes, such as adding extra transforms 
etc?

> On Aug 21, 2020, at 11:43 AM, Luke Cwik <[email protected]> wrote:
> 
> The DoFn is associated with a PTransform and in the pipeline proto there is a 
> unique id associated with each PTransform. You can use that to generate a 
> composite key (ptransformid, stateid) which will be unique within the 
> pipeline.
> 
> On Fri, Aug 21, 2020 at 11:26 AM Ke Wu <[email protected] 
> <mailto:[email protected]>> wrote:
> Thank you Reuven for the confirmation. Do you know what is the recommended 
> way for underlying runners to distinguish same state id in different DoFn(s)?
> 
>> On Aug 21, 2020, at 10:27 AM, Reuven Lax <[email protected] 
>> <mailto:[email protected]>> wrote:
>> 
>> StateId is scoped to the DoFn. You can use the same string in different 
>> DoFns for completely different states.
>> 
>> On Fri, Aug 21, 2020 at 10:21 AM Ke Wu <[email protected] 
>> <mailto:[email protected]>> wrote:
>> Hello everyone,
>> 
>> After reading through Stateful processing with Apache Beam 
>> <https://beam.apache.org/blog/stateful-processing/> and DoFn.StateId 
>> <https://beam.apache.org/releases/javadoc/2.23.0/org/apache/beam/sdk/transforms/DoFn.StateId.html>,
>>  I understand that each state id must be unique and must be the same type at 
>> least in the same DoFn, however, it does not explicitly mention whether or 
>> not it is expected and supported that the same state id to be declared in 
>> different DoFn(s). If Yes, is the state supposed to be a shared state or is 
>> supposed to completed separate, therefore it could even be different types. 
>> If No, it seems that the validation in Beam SDK only validates uniqueness in 
>> the same DoFn.
>> 
>> Thanks,
>> Ke
> 

Reply via email to