[
https://issues.apache.org/jira/browse/HBASE-22623?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16902234#comment-16902234
]
Andrew Purtell edited comment on HBASE-22623 at 8/7/19 4:45 PM:
----------------------------------------------------------------
I have to agree. I can call System.exit() from a coprocessor. That doesn't mean
it is a good idea. A necessary precondition for coprocessor API use is an
understanding you are messing with internals. It's not meant for arbitrary user
code or user development. We don't need to protect against dumb users. What we
can/should protect is our ability to change internal interfaces, so if there is
a concern there that would certainly be valid. However these classes - WALKey
and WALEdit - are both already LP(coproc). We are discussing if an add() method
should be available or not and going right to a maximally restrictive position
which is in my opinion inappropriate given the context. Coprocessor interfaces
are meant to change things on the line between internal-only and extensible.
This JIRA seeks to make WAL objects more extensible for coprocessors, by giving
coprocessors a change to change them *once* before they are committed to the
WAL, and this is motivated by a real world example waiting over in Phoenix.
This is a carefully considered change and very small in scope. It is exactly
what we have CP interfaces for elsewhere. I think [~Apache9]'s position is not
reasonable given this context, but he is entitled to his opinion. I hope he
will consider changing it, though.
was (Author: apurtell):
I have to agree. I can call System.exit() from a coprocessor. That doesn't mean
it is a good idea. A necessary precondition for coprocessor API use is an
understanding you are messing with internals. It's not meant for arbitrary user
code or user development. We don't need to protect against dumb users. What we
can/should protect is our ability to change internal interfaces, so if there is
a concern there that would certainly be valid. However these classes - WALKey
and WALEdit are both already LP(coproc). I think [~Apache9]'s position is not
reasonable, but he is entitled to his opinion. I hope he will consider changing
it, though.
> Add RegionObserver coprocessor hook for preWALAppend
> ----------------------------------------------------
>
> Key: HBASE-22623
> URL: https://issues.apache.org/jira/browse/HBASE-22623
> Project: HBase
> Issue Type: New Feature
> Reporter: Geoffrey Jacoby
> Assignee: Geoffrey Jacoby
> Priority: Major
> Fix For: 3.0.0, 1.5.0, 2.3.0
>
>
> While many coprocessor hooks expose the WALEdit to implementing coprocs,
> there aren't any that expose the WALKey before it's created and added to the
> WALEntry.
> It's sometimes useful for coprocessors to be able to edit the WALKey, for
> example to add extended attributes using the fields to be added in
> HBASE-22622.
--
This message was sent by Atlassian JIRA
(v7.6.14#76016)