Ralf,

Thank YOU very much Ralf. You are the first one who could finally shed some 
light on something I observed, but I could not put my finger on what exactly is 
causing my Tombstones.
I cannot judge your method for evaluating the amount of tombstone. It seems 
valid to me.

Jean
On 24 Mar 2016, at 11:10 , Ralf Steppacher 
<ralf.viva...@gmail.com<mailto:ralf.viva...@gmail.com>> wrote:

Jean,

yes, I am using the native protocol v4 (auto-negotiated between java driver 
3.0.0 and C* 2.2.4, verified by logging 
cluster.getConfiguration().getProtocolOptions().getProtocolVersion() ).

My first approach for testing for tombstones was “brute force”. Add records and 
soon enough (after about 2000 records were inserted) a query for the row count 
would yield warnings in the C* log:

WARN  [SharedPool-Worker-2] 2016-03-23 16:54:43,134 SliceQueryFilter.java:307 - 
Read 2410 live and 4820 tombstone cells in 
event_log_system.event_by_patient_timestamp for key: 100013866046895035 (see 
tombstone_warn_threshold). 5000 columns were requested, slices=[2040-06-02 
05\:57+0200:!-]



I then added query trace logging for the count query. I dropped the whole 
keyspace, inserted a single JSON message and then issued the count query:

Host (queried): velcassandra/10.211.55.8:9042
Host (tried): velcassandra/10.211.55.8:9042
Trace id: de69df90-f1a0-11e5-a558-f3993541f01b

activity                               | timestamp    | source     | 
source_elapsed
---------------------------------------+--------------+------------+--------------
Executing single-partition query on event_by_patient_timestamp | 10:14:53.324 | 
/127.0.0.1 |         2815
          Acquiring sstable references | 10:14:53.324 | /127.0.0.1 |         
3036
           Merging memtable tombstones | 10:14:53.324 | /127.0.0.1 |         
3097
Skipped 0/0 non-slice-intersecting sstables, included 0 due to tombstones | 
10:14:53.324 | /127.0.0.1 |         3153
Merging data from memtables and 0 sstables | 10:14:53.324 | /127.0.0.1 |        
 3170
     Read 1 live and 0 tombstone cells | 10:14:53.324 | /127.0.0.1 |         
3202

Note the last line states that 0 tombstone cells were read. That was after I 
made sure I had no null text fields in the JSON message. With missing/null JSON 
fields (mapped to columns of type text) the trace always reported >= 1 read 
tombstone cells.

I used the version yielding 0 read tombstones again in the brute force test and 
Cassandra never logged any warnings.

Is this a valid test?


Ralf


On 24.03.2016, at 10:46, Jean Tremblay 
<jean.tremb...@zen-innovations.com<mailto:jean.tremb...@zen-innovations.com>> 
wrote:

Ralf,

Are you using protocol V4?
How do you measure if a tombstone was generated?

Thanks

Jean


Reply via email to