- TTL is accepted in seconds
- (int32_t)Timestamp(creation) is suffixed to values in Put internally
- Expired TTL values are deleted in compaction only:(Timestamp+ttl<time_now)
- Get/Iterator may return expired entries(compaction not run on them yet)
- Example: Open1 at t=0 with ttl=4 and insert k1,k2, close at t=2. Open2 at t=3 with ttl=5. Now k1,k2 should be deleted at t>=5
- read_only=true opens in the usual read-only mode. Compactions will not be triggered(neither manual nor automatic), so no expired entries removed
- Calling DB::Open directly to re-open a db created by this API will get corrupt values(timestamp suffixed) and no ttl effect will be there during the second Open, so use this API consistently to open the db
- Be careful when passing ttl with a small positive value because the whole database may be deleted in a small amount of time