Uploaded image for project: 'Thrift'
  1. Thrift
  2. THRIFT-788

thrift_protocol.so: multiget/multiget_slice does not handle more than 17 keys correctly

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Duplicate
    • None
    • 0.7
    • PHP - Library
      • ubuntu 10.04 32bit
      • thrift svn
      • php-5.3.2 with thrift_protocol.so 1.0 enabled
      • cassandra 0.6+0.7/trunk

    Description

      thrift_protocol.so does not handle multiget/multiget_slice with more than 17 keys correctly. The query time sky rockets from 10ms to a steady 900ms starting with 18 keys. It doesn't matter if you fetch 18 or 50. Solid 900ms...

      The bug can easily + steadily be reproduced:

      • standard Keyspace1 / CF Standard1 setup
      • name: Keyspace1
        replica_placement_strategy: org.apache.cassandra.locator.RackUnawareStrategy
        replication_factor: 1
        column_families:
      • name: Standard1
        compare_with: BytesType
      • insert e.g. 1000 columns email:value / testmail1-testmail1000 with key = 1...1000
      • $keys=array('1','2',.....'17')
      • $client->multiget_slice($keys,$columnParent,$predicate,$consistency_level); -> 10ms
      • $keys=array('1','2',.....'18')
      • $client->multiget_slice($keys,$columnParent,$predicate,$consistency_level); -> 900ms
      • $keys=array('1','2',.....'100')
      • $client->multiget_slice($keys,$columnParent,$predicate,$consistency_level); -> 900ms

      It does return the right columns though.

      It can easily be fixed: disable thrift_protocol.so

      This might be a 32bit microseconds issue. Still very strange though.

      Attachments

        1. multiget_slice.php
          4 kB
          Arya Goudarzi

        Issue Links

          Activity

            People

              nicktelford Nicholas Telford
              aliemen Alexander Liemen
              Votes:
              1 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: