[ 
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)

Reply via email to