@Test public void delTtl() throws KitDBException, InterruptedException { String head = "delTtl0"; RSet set = db.getSet(); int num = 1000; try { Set<String> strings = new HashSet<>(); for (int i = 0; i < num; i++) { set.add(head, ("hello world" + i).getBytes()); strings.add("hello world" + i); } set.ttl(head, 3); set.delTtl(head); Thread.sleep(3500); for (int i = 0; i < num; i++) { Assert.assertTrue(set.contains(head, ("hello world" + i).getBytes())); } } finally { set.delete(head); } }
@Override public void delTtl(String key) throws KitDBException { checkTxStart(); LockEntity lockEntity = lock(key); try (CloseLock ignored = checkClose()) { try { byte[] key_b = getKey(key); MetaV metaV = getMeta(key_b); if (metaV == null) { checkTxCommit(); return; } start(); delTimerCollection(KeyEnum.COLLECT_TIMER, metaV.getTimestamp(), key_b, metaV.convertMetaBytes().toBytesHead()); metaV.setTimestamp(-1); putDB(key_b, metaV.convertMetaBytes().toBytes(), SstColumnFamily.META); commit(); } finally { unlock(lockEntity); release(); } checkTxCommit(); } catch (KitDBException e) { checkTxRollBack(); throw e; } }
RSet extends RCollection { @Override public void delTtl(String key) throws KitDBException { checkTxStart(); LockEntity lockEntity = lock(key); try (CloseLock ignored = checkClose()) { try { byte[] key_b = getKey(key); MetaV metaV = getMeta(key_b); if (metaV == null) { checkTxCommit(); return; } start(); delTimerCollection(KeyEnum.COLLECT_TIMER, metaV.getTimestamp(), key_b, metaV.convertMetaBytes().toBytesHead()); metaV.setTimestamp(-1); putDB(key_b, metaV.convertMetaBytes().toBytes(), SstColumnFamily.META); commit(); } finally { unlock(lockEntity); release(); } checkTxCommit(); } catch (KitDBException e) { checkTxRollBack(); throw e; } } }
RSet extends RCollection { @Override public void delTtl(String key) throws KitDBException { checkTxStart(); LockEntity lockEntity = lock(key); try (CloseLock ignored = checkClose()) { try { byte[] key_b = getKey(key); MetaV metaV = getMeta(key_b); if (metaV == null) { checkTxCommit(); return; } start(); delTimerCollection(KeyEnum.COLLECT_TIMER, metaV.getTimestamp(), key_b, metaV.convertMetaBytes().toBytesHead()); metaV.setTimestamp(-1); putDB(key_b, metaV.convertMetaBytes().toBytes(), SstColumnFamily.META); commit(); } finally { unlock(lockEntity); release(); } checkTxCommit(); } catch (KitDBException e) { checkTxRollBack(); throw e; } } protected  RSet(DB db); }
RSet extends RCollection { @Override public void delTtl(String key) throws KitDBException { checkTxStart(); LockEntity lockEntity = lock(key); try (CloseLock ignored = checkClose()) { try { byte[] key_b = getKey(key); MetaV metaV = getMeta(key_b); if (metaV == null) { checkTxCommit(); return; } start(); delTimerCollection(KeyEnum.COLLECT_TIMER, metaV.getTimestamp(), key_b, metaV.convertMetaBytes().toBytesHead()); metaV.setTimestamp(-1); putDB(key_b, metaV.convertMetaBytes().toBytes(), SstColumnFamily.META); commit(); } finally { unlock(lockEntity); release(); } checkTxCommit(); } catch (KitDBException e) { checkTxRollBack(); throw e; } } protected  RSet(DB db); List<byte[]> pop(String key, int num); void remove(String key, byte[]... values); boolean contains(String key, byte[] value); void addMayTTL(String key, int ttl, byte[]... values); void add(String key, byte[]... values); @Override void delete(String key); @Override KeyIterator getKeyIterator(); void deleteFast(String key); @Override @SuppressWarnings("unchecked") RIterator<RSet> iterator(String key); @Override int getTtl(String key); @Override void delTtl(String key); @Override void ttl(String key, int ttl); @Override boolean isExist(String key); @Override int size(String key); @Override Entry getEntry(RocksIterator iterator); }
RSet extends RCollection { @Override public void delTtl(String key) throws KitDBException { checkTxStart(); LockEntity lockEntity = lock(key); try (CloseLock ignored = checkClose()) { try { byte[] key_b = getKey(key); MetaV metaV = getMeta(key_b); if (metaV == null) { checkTxCommit(); return; } start(); delTimerCollection(KeyEnum.COLLECT_TIMER, metaV.getTimestamp(), key_b, metaV.convertMetaBytes().toBytesHead()); metaV.setTimestamp(-1); putDB(key_b, metaV.convertMetaBytes().toBytes(), SstColumnFamily.META); commit(); } finally { unlock(lockEntity); release(); } checkTxCommit(); } catch (KitDBException e) { checkTxRollBack(); throw e; } } protected  RSet(DB db); List<byte[]> pop(String key, int num); void remove(String key, byte[]... values); boolean contains(String key, byte[] value); void addMayTTL(String key, int ttl, byte[]... values); void add(String key, byte[]... values); @Override void delete(String key); @Override KeyIterator getKeyIterator(); void deleteFast(String key); @Override @SuppressWarnings("unchecked") RIterator<RSet> iterator(String key); @Override int getTtl(String key); @Override void delTtl(String key); @Override void ttl(String key, int ttl); @Override boolean isExist(String key); @Override int size(String key); @Override Entry getEntry(RocksIterator iterator); final static String HEAD; final static byte[] HEAD_B; final static byte[] HEAD_V_B; }