/* as we are working through the value, we have to make sure to not double
apply the smoothing after wrapping around. so best is to copy the rrd_values first */
-
+
rrd_values_cpy = (rrd_value_t *) calloc(row_length, sizeof(rrd_value_t));
memcpy(rrd_values_cpy,rrd_values,sizeof(rrd_value_t)*row_length);
- /* compute moving averages */
+ /* compute moving averages */
for (i = offset; i < row_count + offset; ++i) {
for (j = 0; j < row_length; ++j) {
k = MyMod(i, row_count);
(rrd->cdp_prep[offset]).scratch[CDP_hw_intercept].u_val +=
baseline[j];
}
+/* if we are not running on mmap, lets write stuff to disk now */
+#ifndef MMAP
/* flush cdp to disk */
if (rrd_seek(rrd_file, sizeof(stat_head_t) +
rrd->stat_head->ds_cnt * sizeof(ds_def_t) +
free(rrd_values);
return -1;
}
+#endif
}
/* endif CF_SEASONAL */
+
/* flush updated values to disk */
if (rrd_seek(rrd_file, rra_start, SEEK_SET)) {
rrd_set_error("apply_smoother: seek to pos %d failed", rra_start);
/* move to first entry of data source for this rra */
rrd_seek(rrd_file, rra_start + ds_idx * sizeof(rrd_value_t),
SEEK_SET);
- /* entries for the same data source are not contiguous,
+ /* entries for the same data source are not contiguous,
* temporal entries are contiguous */
for (i = 0; i < rrd->rra_def[rra_idx].row_cnt; ++i) {
if (rrd_write(rrd_file, &nan_buffer, sizeof(rrd_value_t) * 1)