2016-05-17 8 views
1

Seit dem Java-Treiber 3.0 habe ich meine ddl (data definition language) -Abfrage gesehen nehmen Sie jeweils 1s. Bevor alle meine Abfragen dauerte ungefähr 2s für alle von ihnen.Cassandra langsame DDL-Abfrage seit Treiber 3.0

meine ddl enthalten meist CREATE TABLE aber auch DROP und CREATE KEYSPACE, CREATE TYPE und INDEXES.

Sie alle nehmen ungefähr die gleiche Zeit.

Es hat sich etwas mit dem Treiber oder mit der Standardeinstellung geändert? Ein anderer hat diese Art von Problem?

Antwort

2

Sie schlagen vielleicht JAVA-1120. Ein Update dafür sollte bald veröffentlicht werden.

In der Zwischenzeit versuchen Ereignis Entprellung zu deaktivieren:

Cluster cluster = Cluster.builder() 
    .addContactPoints(...) 
    // other options... 
    .withQueryOptions(
     new QueryOptions() 
      .setRefreshNodeIntervalMillis(0) 
      .setRefreshNodeListIntervalMillis(0) 
      .setRefreshSchemaIntervalMillis(0) 
    ).build(); 
+0

Ja, aber ich hörte Entprellung tritt auf, wenn es ein anderer Fahrer ist, die das Schema erstellt. Es ist nicht mein Fall. Ich arbeite umher, indem ich nicht jedes Mal den Schlüsselraum in meinem Test lösche, sondern TRUNCATE und IF EXIST. Es ist ein Work around aber Event mit Treiber 2.1 Ich habe meine gesamte Testzeit um den Faktor zwei geteilt. – crak

+0

Nein, das Entprellen geschieht auch für den Client, der das Schema ändert. Das ist genau der Zweck von JAVA-1120. Wenn Sie es deaktivieren, sollten Sie einen vernünftigen Leistungszuwachs erzielen. Wenn Sie DDL-Anweisungen jedoch in erster Linie vermeiden können, ist das wahrscheinlich eine noch bessere Lösung. – adutra

Verwandte Themen