[
https://issues.apache.org/jira/browse/SAMZA-2547?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Alan Zhang updated SAMZA-2547:
------------------------------
Description:
Currently, JobGraphJsonGenerator.operatorToMap() function populates "tableId"
field when the given operator spec is table related.
However, as shown in the below codes, we forgot to handle
*SendToTableOperatorSpec*, but handle *StreamTableJoinOperatorSpec* twice
somehow.
{code:java}
private Map<String, Object> operatorToMap(OperatorSpec spec) {
Map<String, Object> map = new HashMap<>();
map.put("opCode", spec.getOpCode().name());
map.put("opId", spec.getOpId());
map.put("sourceLocation", spec.getSourceLocation());
...
if (spec instanceof StreamTableJoinOperatorSpec) {
String tableId = ((StreamTableJoinOperatorSpec) spec).getTableId();
map.put("tableId", tableId);
}
if (spec instanceof StreamTableJoinOperatorSpec) {
String tableId = ((StreamTableJoinOperatorSpec) spec).getTableId();
map.put("tableId", tableId);
}
if (spec instanceof JoinOperatorSpec) {
map.put("ttlMs", ((JoinOperatorSpec) spec).getTtlMs());
}
return map;
}
{code}
was:
Currently, JobGraphJsonGenerator.operatorToMap() function populates "tableId"
field when the given operator spec is table related.
However, as shown in the below codes, we forgot to handle
*SendToTableOperatorSpec*, but handle *StreamTableJoinOperatorSpec* twice
somehow.
{code:java}
private Map<String, Object> operatorToMap(OperatorSpec spec) {
Map<String, Object> map = new HashMap<>();
map.put("opCode", spec.getOpCode().name());
map.put("opId", spec.getOpId());
map.put("sourceLocation", spec.getSourceLocation());
...
if (spec instanceof StreamTableJoinOperatorSpec) {
String tableId = ((StreamTableJoinOperatorSpec) spec).getTableId();
map.put("tableId", tableId);
}
if (spec instanceof StreamTableJoinOperatorSpec) {
String tableId = ((StreamTableJoinOperatorSpec) spec).getTableId();
map.put("tableId", tableId);
}
if (spec instanceof JoinOperatorSpec) {
map.put("ttlMs", ((JoinOperatorSpec) spec).getTtlMs());
}
return map;
}
{code}
> Add missing "tableId" for SendToTableOperatorSpec in Samza job execution plan
> -----------------------------------------------------------------------------
>
> Key: SAMZA-2547
> URL: https://issues.apache.org/jira/browse/SAMZA-2547
> Project: Samza
> Issue Type: Bug
> Reporter: Alan Zhang
> Assignee: Alan Zhang
> Priority: Major
>
> Currently, JobGraphJsonGenerator.operatorToMap() function populates "tableId"
> field when the given operator spec is table related.
> However, as shown in the below codes, we forgot to handle
> *SendToTableOperatorSpec*, but handle *StreamTableJoinOperatorSpec* twice
> somehow.
> {code:java}
> private Map<String, Object> operatorToMap(OperatorSpec spec) {
> Map<String, Object> map = new HashMap<>();
> map.put("opCode", spec.getOpCode().name());
> map.put("opId", spec.getOpId());
> map.put("sourceLocation", spec.getSourceLocation());
> ...
> if (spec instanceof StreamTableJoinOperatorSpec) {
> String tableId = ((StreamTableJoinOperatorSpec) spec).getTableId();
> map.put("tableId", tableId);
> }
> if (spec instanceof StreamTableJoinOperatorSpec) {
> String tableId = ((StreamTableJoinOperatorSpec) spec).getTableId();
> map.put("tableId", tableId);
> }
> if (spec instanceof JoinOperatorSpec) {
> map.put("ttlMs", ((JoinOperatorSpec) spec).getTtlMs());
> }
> return map;
> }
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)