2017-04-13 3 views
0

키 공간을 삭제하는 데 문제가 있습니다.키 공간 삭제 중 연결 시간이 초과되었습니다.

문제의 키 스페이스는 이것과 같은 4 개 테이블이있다 : 나는 명령을 사용하여 키 스페이스를 삭제할 때

CREATE KEYSPACE demo WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '1'} AND durable_writes = false; 

CREATE TABLE demo.t1 (
    t11 int, 
    t12 timeuuid, 
    t13 int, 
    t14 text, 
    t15 text, 
    t16 boolean, 
    t17 boolean, 
    t18 int, 
    t19 timeuuid, 
    t110 text, 
    PRIMARY KEY (t11, t12) 
) WITH CLUSTERING ORDER BY (t13 DESC) 
    AND bloom_filter_fp_chance = 0.01 
    AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'} 
    AND comment = '' 
    AND compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 'max_threshold': '32', 'min_threshold': '4'} 
    AND compression = {'chunk_length_in_kb': '64', 'class': 'org.apache.cassandra.io.compress.LZ4Compressor'} 
    AND crc_check_chance = 1.0 
    AND dclocal_read_repair_chance = 0.1 
    AND default_time_to_live = 0 
    AND gc_grace_seconds = 864000 
    AND max_index_interval = 2048 
    AND memtable_flush_period_in_ms = 0 
    AND min_index_interval = 128 
    AND read_repair_chance = 0.0 
    AND speculative_retry = '99PERCENTILE'; 
CREATE INDEX t1_idx ON demo.t1 (t14); 
CREATE INDEX t1_deleted_idx ON demo.t2 (t15); 

을 : 다음 쿼리 시간이 초과됩니다

Session session = cluster.connect(); 
    PreparedStatement prepared = session.prepare("drop keyspace if exists " + schemaName); 
    BoundStatement bound = prepared.bind(); 
    session.execute(bound); 

을 (또는 소요 테이블이 비어있는 경우에도 10 초 이상 실행 됨) :

com.datastax.driver.core.exceptions.OperationTimedOutException: [/192.168.0.1:9042] Timed out waiting for server response 
     at com.datastax.driver.core.exceptions.OperationTimedOutException.copy(OperationTimedOutException.java:44) 
     at com.datastax.driver.core.exceptions.OperationTimedOutException.copy(OperationTimedOutException.java:26) 
     at com.datastax.driver.core.DriverThrowables.propagateCause(DriverThrowables.java:37) 
     at com.datastax.driver.core.DefaultResultSetFuture.getUninterruptibly(DefaultResultSetFuture.java:245) 
     at com.datastax.driver.core.AbstractSession.execute(AbstractSession.java:64) 
     at com.datastax.driver.core.AbstractSession.execute(AbstractSession.java:39) 

여러 대의 컴퓨터에서이 작업을 시도했지만 그 결과는 동일했습니다. 나는 카산드라 3.9를 사용하고 있습니다. cqlsh를 사용하면 비슷한 결과가 발생합니다. 나는 cassandra.yaml 파일에서 읽기 타임 아웃을 늘릴 수 있다는 것을 알고 있지만 어떻게하면 더 빨리이 파일을 삭제할 수 있습니까? 또 다른 한가지는 두 번의 연속 요청을하면 첫 번째 요청이 시간 초과되고 두 번째 요청이 빠르다는 것입니다.

+1

시간 제한을 늘리면 문제가 숨겨지고 대개는 나쁜 생각입니다. 이 대답을 살펴보십시오. http://stackoverflow.com/a/16618888/7413631 –

답변

관련 문제