Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-18790

Purge all remaining Writables from the codebase

    XMLWordPrintableJSON

Details

    • Task
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • Protobufs
    • None
    • beginner

    Description

      Did a review on Writables in hbase. We have the following still in HBase. This issue is about purging all

      $ grep -r -e 'implements Writable' -e 'extends VersionedWritable' hbase-*/src/main/java
      
      hbase-client/src/main/java/org/apache/hadoop/hbase/security/access/Permission.java:public class Permission extends VersionedWritable {
      hbase-common/src/main/java/org/apache/hadoop/hbase/io/ImmutableBytesWritable.java:implements WritableComparable<ImmutableBytesWritable> {
      hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/Import.java:      implements WritableComparable<KeyValueWritableComparable> {
      hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/TableSnapshotInputFormat.java:  public static class TableSnapshotRegionSplit extends InputSplit implements Writable {
      hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/TableSnapshotInputFormatImpl.java:  public static class InputSplit implements Writable {
      hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/TableSplit.java:implements Writable, Comparable<TableSplit> {
      hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/WALInputFormat.java:  static class WALSplit extends InputSplit implements Writable {
      hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/snapshot/ExportSnapshot.java:    private static class ExportSnapshotInputSplit extends InputSplit implements Writable {
      hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/CompoundBloomFilterWriter.java:  private class MetaWriter implements Writable {
      hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/TimeRangeTracker.java:public class TimeRangeTracker implements Writable {
      hbase-server/src/main/java/org/apache/hadoop/hbase/security/token/AuthenticationKey.java:public class AuthenticationKey implements Writable {
      

      HBASE-18754 is about getting rid of Writable from TimeRangeTracker.

      For TablePermission/Permission/UserPermission, we read permissions from acl table on initialization of accesscontroller in the loadAll method. We scan the acl and load up a Map of perms. We don't use the TablePermission Writable deserializing here; we just serialize the tablename raw bytes as part of row key. It is hard to follow what is going on – comments don't agree w/ code – and it needs some cleanup but seems like Writables are unused in Permission and subclasses....

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              stack Michael Stack
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated: