[
https://issues.apache.org/jira/browse/HUDI-981?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
wangxianghu updated HUDI-981:
-----------------------------
Description:
At a high level, HoodieIndex should be irrelevant to engines. So we should
abstract it.
would be like this
{code:java}
public abstract class AbstractHoodieIndex<T extends HoodieRecordPayload,
I extends HoodieWriteInput, K extends HoodieWriteKey, O extends
HoodieWriteOutput, P> implements Serializable {
protected final HoodieWriteConfig config;
protected AbstractHoodieIndex(HoodieWriteConfig config) {
this.config = config;
}
public abstract P fetchRecordLocation(I inputs, final HoodieEngineContext
context, HoodieTable<T, I, K, O, P> hoodieTable);
public abstract I tagLocation(I inputs, HoodieEngineContext context,
HoodieTable<T, I, K, O, P> table);
public abstract O updateLocation(O inputs, HoodieEngineContext context,
HoodieTable<T, I, K, O, P> table);
....
}
{code}
was:
At a high level, HoodieIndex should be irrelevant to engines. So we should make
an abstract of it.
would be like this
{code:java}
public abstract class AbstractHoodieIndex<T extends HoodieRecordPayload,
I extends HoodieWriteInput, K extends HoodieWriteKey, O extends
HoodieWriteOutput, P> implements Serializable {
protected final HoodieWriteConfig config;
protected AbstractHoodieIndex(HoodieWriteConfig config) {
this.config = config;
}
public abstract P fetchRecordLocation(I inputs, final HoodieEngineContext
context, HoodieTable<T, I, K, O, P> hoodieTable);
public abstract I tagLocation(I inputs, HoodieEngineContext context,
HoodieTable<T, I, K, O, P> table);
public abstract O updateLocation(O inputs, HoodieEngineContext context,
HoodieTable<T, I, K, O, P> table);
....
}
{code}
> Introduce AbstractHoodieIndex for hudi write client
> ---------------------------------------------------
>
> Key: HUDI-981
> URL: https://issues.apache.org/jira/browse/HUDI-981
> Project: Apache Hudi
> Issue Type: Sub-task
> Reporter: wangxianghu
> Assignee: wangxianghu
> Priority: Major
>
> At a high level, HoodieIndex should be irrelevant to engines. So we should
> abstract it.
> would be like this
> {code:java}
> public abstract class AbstractHoodieIndex<T extends HoodieRecordPayload,
> I extends HoodieWriteInput, K extends HoodieWriteKey, O extends
> HoodieWriteOutput, P> implements Serializable {
> protected final HoodieWriteConfig config;
> protected AbstractHoodieIndex(HoodieWriteConfig config) {
> this.config = config;
> }
> public abstract P fetchRecordLocation(I inputs, final HoodieEngineContext
> context, HoodieTable<T, I, K, O, P> hoodieTable);
> public abstract I tagLocation(I inputs, HoodieEngineContext context,
> HoodieTable<T, I, K, O, P> table);
> public abstract O updateLocation(O inputs, HoodieEngineContext context,
> HoodieTable<T, I, K, O, P> table);
> ....
> }
> {code}
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)