You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by GitBox <gi...@apache.org> on 2019/11/19 03:24:14 UTC
[GitHub] [hbase] sandeepvinayak commented on a change in pull request #837:
HBASE-23309: Adding the flexibility to ChainWalEntryFilter to filter the
whole entry if all cells get filtered
sandeepvinayak commented on a change in pull request #837: HBASE-23309: Adding the flexibility to ChainWalEntryFilter to filter the whole entry if all cells get filtered
URL: https://github.com/apache/hbase/pull/837#discussion_r347715850
##########
File path: hbase-server/src/main/java/org/apache/hadoop/hbase/replication/ChainWALEntryFilter.java
##########
@@ -68,13 +82,17 @@ public void initCellFilters() {
@Override
public Entry filter(Entry entry) {
+
for (WALEntryFilter filter : filters) {
if (entry == null) {
return null;
}
entry = filter.filter(entry);
}
filterCells(entry);
+ if (shouldFilterEmptyEntry() && entry != null && entry.getEdit().isEmpty()) {
Review comment:
@apurtell This is the flexility we want to provide to customer replication endpoint so that they every custom replication endpoint doesn't need to re-implement everything what `ChainWALEntryFilter` already does.
Here is the scenario we want to cover, let's take an example:
```java
CustomWALFilter implements WALEntryFilter, WALCellFilter {
@override
public void filter(Entry) {
}
@override
public void filterCell(Entry, Cell){
}
}
```
Custom Replication endpoint set the filters by:
```java
ChainWALEntryFilter(filters); \\ new CustomWALFilter() is part of filters
```
if `filter` in the above `CustomWALFilter` returns Entry but filterCell filters all the cells, the `ChainWALEntryFilter` will not return null in current implementation. Since most of the `CustomWALFilter` uses `ChainWALEntryFilter`, isn't it better to provide this flexibility in ChainWALFilter itself? Sure, it's possible to all this logic in CustomWALFilter, but shouldn't we provide re-usability through ChainWALFilter and provides a flexibility through a config? Let me know your thoughts.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
With regards,
Apache Git Services