You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by "Viraj Jasani (Jira)" <ji...@apache.org> on 2022/12/12 23:45:00 UTC

[jira] [Created] (HBASE-27529) Attach WAL extended attributes to mutations at replication sink

Viraj Jasani created HBASE-27529:
------------------------------------

             Summary: Attach WAL extended attributes to mutations at replication sink
                 Key: HBASE-27529
                 URL: https://issues.apache.org/jira/browse/HBASE-27529
             Project: HBase
          Issue Type: Improvement
            Reporter: Viraj Jasani
            Assignee: Viraj Jasani
             Fix For: 2.6.0, 3.0.0-alpha-4, 2.4.16, 2.5.3


HBase provides coproc ability to enhance WALKey attributes (a.k.a. WAL annotations) in order for the replication sink cluster to build required metadata with the mutations. The endpoint is preWALAppend(). This ability was provided by HBASE-22622. The map of extended attributes is optional and hence not directly used by hbase internally. 

For any hbase downstreamers to build CDC (Change Data Capture) like functionality, it might required additional metadata in addition to the ones being used by hbase already (replication scope, list of cluster ids, seq id, table name, region id etc). For instance, Phoenix uses many additional attributes like tenant id, schema name, table type etc.
We already have this extended map of attributed available in WAL protobuf, to provide us the capability to (de)serialize it. While creating new ReplicateWALEntryRequest from the list of WAL entires, we are able to serialize the additional attributes. Similarly, at the replication sink side, the deserialized WALEntry has the extended attributed available.

At the sink cluster, we should be able to attach the deserialized extended attributes to the newly generated mutations so that the peer cluster can utilize the mutation attributes to re-build required metadata.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)