wiredtiger/wiredtiger — pull request #805 by keithbostic (2013-12-11 23:05:55+00:00)
Title: Spinlock stats

@michaelcahill, @agorrod:

These changes fix some breakage with the --with-spinlock=pthread_logging configuration statistics (wtperf opens/closes the connection, and so we were losing statistics across that open/close, because we use static variables inside the library to remember where spinlock information is).

It also extends the work in two ways: first, you now get statistics for all of the __wt_spin_trylock() calls, and second, you get totals, so you know how many lock acquisitions are being made from a particular place in the code.

If you don't think this is useful, feel free to push back, I'm not wedded to the changes (one downside, it creates a lot more graphs, we may need to consider ways to trim back the amount of log data we're writing).

It works fine with the GNUplot script (I made one minor change to always treat anything with "spinlock" in the title as a per-second value), but when I run against Michael's D3 script I get errors:

```
air:stats {53} python wtstats.py logs/*
Traceback (most recent call last):
File "wtstats.py", line 175, in
chart.add_serie(y=values, x=xdata, name=title)
File "/Library/Python/2.7/site-packages/python_nvd3-0.11.0-py2.7.egg/nvd3/NVD3Chart.py", line 194, in add_serie
serie = [{'x': x[i], 'y': y} for i, y in enumerate(y)]
IndexError: list index out of range
```

I'm actually kind of interested in seeing this data plotted with Michael's work: we should be able to see a pretty interesting group of graphs, associated with a single spinlock, on a single page.