[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[DISCUSS] Make WALEdit an Interface; expose Read-Only version to CPs

hi folks,

I noticed that we make only the WALKey an interface and we leave the TODO  in WALEdit.

// TODO: Do not expose this class to Coprocessors. It has set methods. A CP might meddle.
@InterfaceAudience.LimitedPrivate({ HBaseInterfaceAudience.REPLICATION,
    HBaseInterfaceAudience.COPROC })
public class WALEdit implements HeapSize {

WALEdit is used in WALObserver and RegionObserver. It is easy to make the WALEdit an read-only interface but Phoenix need to add something to WALEdit in order to come in the consistence guarantee. So how we iron this issue out? Could we make the WALEdit a read-only interface and encourage phoenix in casting the WALEdit to the writable WALEdit?