• Type: Sub-task
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: timelineserver
    • Labels:


      Ted Yu is graciously reviewing the hbase writer related code and has some recommendations. (more to come as review progresses). I will keep track of those in this jira and perhaps spin off other jira(s) depending on the scope of changes.

      For FlowRunCoprocessor.java :

      • private HRegion region;
        Try to declare as Region - the interface. This way, you are to call methods that are stable across future releases.
      • private long getCellTimestamp(long timestamp, List<Tag> tags) { tags is not used, remove the parameter. For FlowScanner: - private final InternalScanner flowRunScanner; Currently InternalScanner is Private. If you must use it, try surfacing your case to hbase so that it can be marked: @InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.COPROC) @InterfaceStability.Evolving w.r.t. regionScanner : {code}

        if (internalScanner instanceof RegionScanner)

        { this.regionScanner = (RegionScanner) internalScanner; }
        I see IllegalStateException being thrown in some methods when regionScanner is null. Better bail out early in the ctor.

        public static AggregationOperation getAggregationOperationFromTagsList(
        List<Tag> tags) {
        for (AggregationOperation aggOp : AggregationOperation.values()) {
        for (Tag tag : tags) {
        if (tag.getType() == aggOp.getTagType())

        { return aggOp; {code}

      The above nested loop can be improved (a lot):

      values() returns an array. If you pre-generate a Set (https://docs.oracle.com/javase/7/docs/api/java/util/EnumSet.html) containing all the values, the outer loop can be omitted.
      You iterate through tags and see if tag.getType() is in the Set.


          Issue Links



              • Assignee:
                vrushalic Vrushali C
                vrushalic Vrushali C
              • Votes:
                0 Vote for this issue
                6 Start watching this issue


                • Created: