datastax - Cassandra performance issue -
we have table looks like:
create table arc_dynamic.transit_map ( sal text, pfn text, transit_map_id text, create_program_id text, create_timestamp timestamp, cutoff_times map<text, text>, derived_priority int, effective_date text, modify_program_id text, modify_timestamp timestamp, relationship_type_id text, solr_query text, stop set<text>, transit_days map<text, int>, trigger_id text, primary key (sal, pfn, transit_map_id) ) clustering order (pfn asc, transit_map_id asc) , bloom_filter_fp_chance = 0.01 , caching = '{"keys":"all", "rows_per_partition":"none"}' , comment = '' , compaction = {'class': 'org.apache.cassandra.db.compaction.sizetieredcompactionstrategy'} , compression = {'sstable_compression': 'org.apache.cassandra.io.compress.lz4compressor'} , dclocal_read_repair_chance = 0.1 , default_time_to_live = 0 , gc_grace_seconds = 864000 , max_index_interval = 2048 , memtable_flush_period_in_ms = 0 , min_index_interval = 128 , read_repair_chance = 0.0 , speculative_retry = '99.0percentile'; create custom index arc_dynamic_transit_map_create_timestamp_index on arc_dynamic.transit_map (create_timestamp) using 'com.datastax.bdp.search.solr.cql3solrsecondaryindex'; create custom index arc_dynamic_transit_map_derived_priority_index on arc_dynamic.transit_map (derived_priority) using 'com.datastax.bdp.search.solr.cql3solrsecondaryindex'; create custom index arc_dynamic_transit_map_modify_timestamp_index on arc_dynamic.transit_map (modify_timestamp) using 'com.datastax.bdp.search.solr.cql3solrsecondaryindex'; create custom index arc_dynamic_transit_map_relationship_type_id_index on arc_dynamic.transit_map (relationship_type_id) using 'com.datastax.bdp.search.solr.cql3solrsecondaryindex'; create custom index arc_dynamic_transit_map_solr_query_index on arc_dynamic.transit_map (solr_query) using 'com.datastax.bdp.search.solr.cql3solrsecondaryindex'; create custom index arc_dynamic_transit_map_trigger_id_index on arc_dynamic.transit_map (trigger_id) using 'com.datastax.bdp.search.solr.cql3solrsecondaryindex';
when run:
select * transit_map sal='xxx_953';
it times out:
readtimeout: code=1200 [coordinator node timed out waiting replica nodes' responses] message="operation timed out - received 0 responses." info= {'received_responses': 0, 'required_responses': 1, 'consistency': 'one'}
if limit 10 rows or less, comes back. more, times out. i'm trying figure out it's going wrong (either many sstables, tombstones, else), can't figure out how @ this.
i've enabled tracing. 10 row limit or less doesn't "look bad" (at least has output).
when put in 11 row limit, or leave blank (no limit), no output comes tracing.
any go appreciated. i'm coming long-time oracle background, , lost on how figure out in cassandra.
creating maps , other objects heavy operations cassandra. in case maps not constrained in size timeouts quite common.
from personal experience map sizes shouldn't on couple of dozen or so.
try , model data in way maps constrained in size or better don't use them @ all. 1 solution can changing transit_days
uuid
type , having connection table looks this:
create table arc_dynamic.transit_map_days_per ( transit_day_id uuid, data text primary key (transit_day_id) )
you able "map" table list of tuples , manipulate on end
Comments
Post a Comment