Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Duplicate
-
None
-
- 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
Attachments
Issue Links
- is blocked by
-
THRIFT-638 BufferedTransport + C extensions block until recv timeout is reached on last fread call
- Closed