> I am wondering if TTL values also follow gc_grace?
They are purged by the first compaction that processes them after TTL has expired. The TTL
expiry is used the same way as the expire on a Tombstone.
Thinking out loud, is this possible….
t0 - write col to all 3 replicas.
t1 - overwrite col with a ttl, write to 2 out of 3 replicas.
t2 - compaction on all nodes, col removed from 2 out of 3 replicas
t3 - read at QUORUM, col written in t0 returns.
ExpiringColumn sets it localDeletionTime using the ttl, and cfs.removeDeletedStandard() will
purge the column.
> The mutation against Column Family "CF_B" is placed last.
> If:
> get CF_B[def] is 55
> Can I then safely assume that
> get CF_A[abc] is 10 OR a newer value
The order the changes are applied is undefined (they are pulled from the values of a HashMap).
So this should not be relied upon.
Cheers
-----------------
Aaron Morton
Freelance Cassandra Developer
@aaronmorton
http://www.thelastpickle.com
On 21/08/2011, at 11:38 PM, Joris van der Wel wrote:
> Hello,
>
> I have a ColumnFamily in which all columns are always set with a TTL,
> this would be one of the hottest column families (rows_cached is set
> to 1.0). I am wondering if TTL values also follow gc_grace? If they
> do, am I correct in thinking it would be best to set gc_grace really
> low in this case? (zero?)
>
> Another question:
> For a single key I have data in ColumnFamily "CF_A" and ColumnFamily
> "CF_B". I set their data in one thrift "batch_mutate".
> If I understood correctly, atomicity is then guaranteed (if one
> mutation fails, they all fail). But isolation is not. However if for
> example the following Mutation takes place:
>
> batch_mutate({
> "mykey": {
> "CF_A": [
> Mutation {
> column_or_supercolumn: ColumnOrSuperColumn {
> column: {
> name: "abc",
> value: 10,
> timestamp: 1313918714729
> }
> }
> }
> ],
> "CF_B": [
> Mutation {
> column_or_supercolumn: ColumnOrSuperColumn {
> column: {
> name: "def",
> value: 55,
> timestamp: 1313918714730
> }
> }
> },
> ]
> }
> }, QUORUM)
>
> The mutation against Column Family "CF_B" is placed last.
> If:
> get CF_B[def] is 55
> Can I then safely assume that
> get CF_A[abc] is 10 OR a newer value
>
>
> Thanks,
> Gr. Joris
|