Setting the time-to-live (TTL) for value

Use the USING TTL N option with INSERT and UPDATE statements to automatically expire data in a column.

To set the TTL for data, use the USING TTL clause. The TTL function may be used to retrieve the TTL information.

The USING TTL clause can be used to insert or update data into a table for a specific duration of time. To determine the current time-to-live for a record, use the TTL function.

Warning: The database storage engine can only encode TTL timestamps through January 19 2038 03:14:07 UTC due to the Year 2038 problem. The TTL date overflow policy determines whether requests with expiration timestamps later than the maximum date are rejected or inserted. See -Dcassandra.expiration_date_overflow_policy.

Procedure

  • Insert data into the table cycling.calendar and use the USING TTL clause to set the expiration period to 200 seconds.
    INSERT INTO cycling.calendar (
      race_id, race_name, race_start_date, race_end_date
    ) VALUES (
      200, 'placeholder', '2015-05-27', '2015-05-27'
    )
    USING TTL 200;
  • Issue a SELECT statement to determine how much longer the data has to live.
    SELECT TTL(race_name)
    FROM cycling.calendar
    WHERE race_id = 200;
     ttl(race_name)
    ----------------
                200
    
    (1 rows)

    If you repeat this step after some time, the time-to-live value will decrease.

  • The time-to-live value can also be updated with the USING TTL clause in an UPDATE statement.
    UPDATE cycling.calendar 
    USING TTL 300 
    SET race_name = 'Tour de France - Stage 12' 
    WHERE race_id = 200 
      AND race_start_date = '2015-05-27' 
      AND race_end_date = '2015-05-27';
     ttl(race_name)
    ----------------
                300
    
    (1 rows)