AMC display issue for as_operations with read and touch


#1

I use c API to execute an as_operation with a read and a touch.

In AMC , I see that the writes-TPS increased while read-TPS not, why?

The writes-total-tps is much more than writes-successful-tps. I guess the reason is most records are not exists.

And in asinfo, the data of stat_write_errs is increasing.

Pls help me. Below is my code

// set as-key
as_key *p_key = as_key_new(DM_AS_DSP_NAMESPACE, AS_SET_COOKIEMAPPING, adx_cookie);


// set as-operations (read and touch ttl)
as_operations ops;
as_operations_inita(&ops, 2);
ops.ttl = SECONDS_OF_90_DAYS;
as_operations_add_touch(&ops);
as_operations_add_read(&ops, AS_COOKIEMAPPING_BIN);


// apply the operations
as_record *p_rec = NULL;
if (aerospike_key_operate(p_as, p_err, NULL, p_key, &ops, &p_rec) != AEROSPIKE_OK){
    as_error_add_debug_info(p_err);
}

#2

The operate call which has a mixed read & write (touch in your case) will be treated as a write. So, I am guessing that whatever is being shown in AMC is accurate. The read counter will be incremented only for pure-reads. You can cross check this by isolating your reads & writes.

However, the writes failing can be a different issue. Check your return code of the write call. It should give you more info. Giving the full output of stats (asinfo -v stats) may give more details.


#3

Thanks a lot.

Some links show that stat_write_errs was deprecated, and should use stat_write_errs_notfound or stat_write_errs_others .

https://github.com/aerospike/aerospike-server/pull/58/files

https://github.com/aerospike/aerospike-server/blob/master/as/src/base/thr_info.c

And i get stat_write_errs_notfound without stat_write_errs_others .

Now we monitor stat_write_errs_others (ignore stat_write_errs).