2016-04-20 18 views
0

Ich verwende Datastax mit Cassandra. Ich möchte, dass eine Zeile nach 15 Minuten automatisch gelöscht wird. Aber die Reihe bleibt noch.Cassandra TTL funktioniert nicht

Mein Code ist unten:

Insert insertStatement = QueryBuilder.insertInto(keySpace, "device_activity"); 
     insertStatement.using(QueryBuilder.ttl(15* 60)); 
     insertStatement.value("device", UUID.fromString(persistData.getSourceId())); 
     insertStatement.value("lastupdatedtime", persistData.getLastUpdatedTime()); 
     insertStatement.value("devicename", persistData.getDeviceName()); 
     insertStatement.value("datasourcename", persistData.getDatasourceName()); 

Die Tabelle besteht aus 4 Spalten: Vorrichtung (UUID), Datasource (Text), Gerätename (text), lastupdatedtime (Zeitstempel).

Wenn ich die TTL eines Feldes abfragen zeigt es mir 4126 Sekunden, was falsch ist. // Wählen Sie TTL (Gerätename) von device_activity; // Gibt mir 4126 Sekunden

+0

Die Abfrage schließlich in devicecloud_test.device_activity (Gerät, lastupdatedtime, Gerätename, Datasource) VALUES (ca5cff1f-B23a INSERT ausgeführt werden -426a-ba3f-f13300a2d8e6,1461150305100, 'TestBench162', '259642460471175') VERWENDUNG VON TTL 60; – Renukaradhya

+0

Ich verstehe nicht, ist die TTL, die von Cassandra verwendet wird, 4126 oder 60 Sekunden? – doanduyhai

+0

Ich habe 900 Sekunden gegeben, aber Cassandra zeigt mir 4126 Sekunden – Renukaradhya

Antwort

0

Im folgenden Link wird die Erklärung von TTL zur Verfügung gestellt. .

https://docs.datastax.com/en/cql/3.1/cql/cql_using/use_expire_c.html

„TTL-Daten eine Genauigkeit von einer Sekunde hat, wie auf dem Server berechnet daher eine sehr kleine TTL wahrscheinlich machen nicht viel Sinn Darüber hinaus sollten die Uhren auf den Servern synchronisiert werden;. Andernfalls Eine reduzierte Genauigkeit konnte beobachtet werden, da die Ablaufzeit auf dem primären Host berechnet wird, der die anfängliche Einfügung erhält, aber dann von anderen Hosts im Cluster interpretiert wird. "

Nach der Lektüre dieser i könnte durch Einstellen richtige Zeit auf der entsprechenden Knoten lösen (Maschine.)