Uploaded image for project: 'Accumulo'
  1. Accumulo
  2. ACCUMULO-1994

proxy does not handle Key timestamps correctly

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 1.4.4, 1.5.0
    • Fix Version/s: 1.4.5, 1.5.1, 1.6.0
    • Component/s: proxy
    • Labels:
      None

      Description

      The proxy thrift IDL does not declare any default values for the Key struct. This means that timestamp will default to 0. However, in Java it defaults to Long.MAX_VALUE. This means that ranges created through the proxy may behave differently than ranges created in Java. For example, say in Ruby I create a range as follows

      range = Range.new(:start => Key.new(:row => "row1"), :startInclusive => true, :stop => Key.new(:row => "row2"), :stopInclusive => true)
      

      This range will not include any keys in row1 that don't have a column family, qualifier, or visibility since timestamp of 0 sorts last. If I created the same range in Java, those keys would be included.

      Change the thrift IDL to declare 0x7FFFFFFFFFFFFFFF (Long.MAX_VALUE) as the default value for timstamp so that the thrift-generated Key class behaves the same way as the Java version.

      Keith Turner pointed me to the getRowRange helper method on the AccumuloProxy service. This method helps in some cases, but not the case I mentioned above since I have two arbitrary rows. Also, in looking through the code in ProxyServer, Keith noticed that the code does not seem to handle timestamps correctly. For example, the getRowRange method does not pass a timestamp at all (not even the EMPTY value). Also, the internal helper method getProxyKey ignores the timestamp on the incoming key.

        Activity

        Hide
        jira-bot ASF subversion and git services added a comment -

        Commit 27ee2367056e5ad0cb6175f91154cd13d49e2c95 in branch refs/heads/1.6.0-SNAPSHOT from Eric Newton
        [ https://git-wip-us.apache.org/repos/asf?p=accumulo.git;h=27ee236 ]

        ACCUMULO-1993 ACCUMULO-1994 make proxy useful for ruby, fix getRowRange (and test it)

        Show
        jira-bot ASF subversion and git services added a comment - Commit 27ee2367056e5ad0cb6175f91154cd13d49e2c95 in branch refs/heads/1.6.0-SNAPSHOT from Eric Newton [ https://git-wip-us.apache.org/repos/asf?p=accumulo.git;h=27ee236 ] ACCUMULO-1993 ACCUMULO-1994 make proxy useful for ruby, fix getRowRange (and test it)
        Hide
        jira-bot ASF subversion and git services added a comment -

        Commit 27ee2367056e5ad0cb6175f91154cd13d49e2c95 in branch refs/heads/1.5.1-SNAPSHOT from Eric Newton
        [ https://git-wip-us.apache.org/repos/asf?p=accumulo.git;h=27ee236 ]

        ACCUMULO-1993 ACCUMULO-1994 make proxy useful for ruby, fix getRowRange (and test it)

        Show
        jira-bot ASF subversion and git services added a comment - Commit 27ee2367056e5ad0cb6175f91154cd13d49e2c95 in branch refs/heads/1.5.1-SNAPSHOT from Eric Newton [ https://git-wip-us.apache.org/repos/asf?p=accumulo.git;h=27ee236 ] ACCUMULO-1993 ACCUMULO-1994 make proxy useful for ruby, fix getRowRange (and test it)
        Hide
        jira-bot ASF subversion and git services added a comment -

        Commit 27ee2367056e5ad0cb6175f91154cd13d49e2c95 in branch refs/heads/1.4.5-SNAPSHOT from Eric Newton
        [ https://git-wip-us.apache.org/repos/asf?p=accumulo.git;h=27ee236 ]

        ACCUMULO-1993 ACCUMULO-1994 make proxy useful for ruby, fix getRowRange (and test it)

        Show
        jira-bot ASF subversion and git services added a comment - Commit 27ee2367056e5ad0cb6175f91154cd13d49e2c95 in branch refs/heads/1.4.5-SNAPSHOT from Eric Newton [ https://git-wip-us.apache.org/repos/asf?p=accumulo.git;h=27ee236 ] ACCUMULO-1993 ACCUMULO-1994 make proxy useful for ruby, fix getRowRange (and test it)
        Hide
        jira-bot ASF subversion and git services added a comment -

        Commit 27ee2367056e5ad0cb6175f91154cd13d49e2c95 in branch refs/heads/master from Eric Newton
        [ https://git-wip-us.apache.org/repos/asf?p=accumulo.git;h=27ee236 ]

        ACCUMULO-1993 ACCUMULO-1994 make proxy useful for ruby, fix getRowRange (and test it)

        Show
        jira-bot ASF subversion and git services added a comment - Commit 27ee2367056e5ad0cb6175f91154cd13d49e2c95 in branch refs/heads/master from Eric Newton [ https://git-wip-us.apache.org/repos/asf?p=accumulo.git;h=27ee236 ] ACCUMULO-1993 ACCUMULO-1994 make proxy useful for ruby, fix getRowRange (and test it)
        Hide
        bfloss Brian Loss added a comment -

        Actually, I investigated this further, and it appears that getRowRange doesn't work at all. The start and end of the range are the same Key (one with the supplied row as the row and Long.MAX_VALUE as the timestamp).

        Show
        bfloss Brian Loss added a comment - Actually, I investigated this further, and it appears that getRowRange doesn't work at all. The start and end of the range are the same Key (one with the supplied row as the row and Long.MAX_VALUE as the timestamp).

          People

          • Assignee:
            ecn Eric Newton
            Reporter:
            bfloss Brian Loss
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development