How does this work for the stateful operators ? Can we use this to override properties that are deserialized ?

Regards,

Ananth


On 18/11/16 05:53, Tushar Gosavi wrote:
The code will execute before application master is launched, it is
just one time activity during application startup. Few use cases I
could think are

- Operator validation/configuration validator
   jdbc operator could check if database is accessible with given credentials.
   file output operator could if directory exists and filesystem is writable.

- Injection of properties in operators from external sources.

- If two operator wants to exchange some information based on
configuration, they could do it through visitor. for example
TUPLE_SCHEMA can be set on downstream operator port based on operators
input TUPLE_SCHEMA and its configuration (for example projection
operator which drops few columns, could create a new class with fewer
fields and set it as tuple schema on downstream operator port).

- For pojo enabled operator (port where TUPLE_SCHEMA is defined), a
efficient stream codec could be written using asm library for
serialisation and use that as stream codec instead of default one.

-Tushar.


On Thu, Nov 17, 2016 at 11:35 PM, Sanjay Pujare <[email protected]> wrote:
There is a risk if the user written code blocks the thread or crashes the 
process. What are the real life examples of this use case?


On 11/17/16, 9:21 AM, "amol kekre" <[email protected]> wrote:

     +1. Opening up the API for users to put in their own code is good. In
     general we should enable users to register their code in a lot of 
scenerios.

     Thks
     Amol

     On Thu, Nov 17, 2016 at 9:06 AM, Tushar Gosavi <[email protected]>
     wrote:

     > Yes, It could happen after current DAG validation and before the
     > application master is launched.
     >
     > - Tushar.
     >
     >
     > On Thu, Nov 17, 2016 at 8:32 PM, Munagala Ramanath <[email protected]>
     > wrote:
     > > When would the visits happen ? Just before normal validation ?
     > >
     > > Ram
     > >
     > > On Wed, Nov 16, 2016 at 9:50 PM, Tushar Gosavi <[email protected]>
     > wrote:
     > >
     > >> Hi All,
     > >>
     > >> How about adding visitor like API for DAG in Apex, and an api to
     > >> register visitor for the DAG.
     > >> Possible use cases are
     > >> -  Validator visitor which could validate the dag
     > >> -  Visitor to inject properties/attribute in the operator/streams from
     > >> some external sources.
     > >> -  Platform does not support validation of individual operators.
     > >> developer could write a validator visitor which would call validate
     > >> function of operator if it implements Validator interface.
     > >> - generate output schema based on operator config and input schema,
     > >> and set the schema on output stream.
     > >>
     > >> Sample API :
     > >>
     > >> dag.registerVisitor(DAGVisitor visitor);
     > >>
     > >> Call order of visitorFunctions.
     > >> - preVisitDAG(Attributes) // dag attributes
     > >>   for all operators
     > >>   - visitOperator(OperatorMeta meta) // access to operator, name,
     > >> attributes, properties
     > >>  ports
     > >>   - visitStream(StreamMeta meta) // access to
     > >> stream/name/attributes/properties/ports
     > >> - postVisitDAG()
     > >>
     > >> Regards,
     > >> -Tushar.
     > >>
     >




Reply via email to