Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

DateFocusLink
13.09.2012Initial discussion of the requirements and possible approaches2012-09-13 Ringbuffer meeting/wiki/spaces/ARCHIVE/pages/5019325
21.09.2012Discussion of approaches2012-09-21 Ring-buffer/wiki/spaces/ARCHIVE/pages/5019319
29.09.2012Current status, next steps: Create sample realization2012-09-29 Ringbuffer status update/wiki/spaces/ARCHIVE/pages/5019311
25.10.2012Current status, next steps: caliper, another approach2012-10-25 Ringbuffer status update/wiki/spaces/ARCHIVE/pages/5019155

Requirements

The ringbuffer will replace the buffering strategy in the agent completely, while the sending strategy will be kept, as it defines when data should be sent.

The ringbuffer uses a FIFO policy:

...

As discussed inthe meeting 2012-10-25 Ringbuffer status update /wiki/spaces/ARCHIVE/pages/5019155, the results for the lock-free enqueue, lock based dequeue and evict are not always explainable, because the lock-based dequeue and evict is faster than the non locking approach in some cases. We decided to go for microbenchmarking [6], which ismeasures measures the performance of a very small piece of code. The results, however, were not very conclusive. The lock based approach is definitely the most inefficient, but the other two implementations, the lock free and lock based dequeue and evict, usually give the same results. This can be explained by the rare occurence of the dequeueing operation. Even if it uses a lock or not, it does not happen often enough to have an impact on the overall performace.

Below some results of benchmarking with Caliper are presented. We tried different capacities, different sending intervals, different number/size of elements added, but the results don't do not give more insight into which method is better.

...