OOZIE-104: Serialization/deserialization of WorkflowInstance
------------------------------------------------------------

                 Key: OOZIE-521
                 URL: https://issues.apache.org/jira/browse/OOZIE-521
             Project: Oozie
          Issue Type: Task
            Reporter: Angelo K. Huang
            Assignee: Roman Shaposhnik


Oozie team at yahoo has recently experienced multiple production issues when a 
new oozie version is upgraded attributed to the modifications of Workflow 
tables' structure.

More specifically, we added a new field into workflow table. Hence, for 
example, if a user submits a WF job in earlier oozie version and if the job is 
still active after the upgrade, oozie fails to de-serialize the WFInstance 
object. In other words, the object was originally serialized using the old 
structure whereas oozie tries to deserailize using the new structures after the 
upgrade. Therefore it throws exception.

Some observations that came up from our internal discussion:

    Is it required to store the blob into table? Can't we create the the object 
from the other fields of the table? I know it might not be that straight 
forward. However, other options might be worse than this.

    If we want to keep the blob, the new field(s) should be added at the end 
during serialization. However if some fields are removed, how could we handle 
that? Might not be a flexible idea.

    During serialization, we could use some type of version at the beginning, 
that would help to de-serailize the object. This might make the coding very 
ugly depending on how many old versions we would like to support.

    Since it is a very well-known problem, there should be some standard 
procedure. However they might not be easy too.

Anyway these are just the initial thoughts. We didn't come up in any conclusion 
yet.
Please feel free to make comment?

Thanks,
Mohammad

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to