|
Revision tags: 1.6.32, 1.6.31, 1.6.30, 1.6.29, 1.6.28, 1.6.27, 1.6.26, 1.6.25, 1.6.24, 1.6.23, 1.6.22, 1.6.21, 1.6.20, 1.6.19, 1.6.18, 1.6.17, 1.6.16, 1.6.15, 1.6.14, 1.6.13, 1.6.12, 1.6.11, 1.6.10, 1.6.9, 1.6.8, 1.6.7, 1.6.6, 1.6.5, 1.6.4, 1.6.3, 1.6.2, 1.6.1, 1.6.0, 1.5.22, 1.5.21, 1.5.20, 1.5.19, 1.5.18, 1.5.17, 1.5.16, 1.5.15, 1.5.14, 1.5.13, 1.5.12, 1.5.11, 1.5.10, 1.5.9, 1.5.8, 1.5.7, 1.5.6, 1.5.5, 1.5.4, 1.5.3, 1.5.2, 1.5.1, 1.5.0, 1.4.39, 1.4.38, 1.4.37, flash-with-wbuf-stack, 1.4.36, 1.4.35, 1.4.34, 1.4.33, 1.4.32, 1.4.31, 1.4.30, 1.4.29, 1.4.28 |
|
| #
60e98600 |
| 28-Jun-2016 |
dormando <[email protected]> |
don't fail on systems without 64bit atomics
We only explicitly tested for short atomics. Then I added 8byte atomic usage in the logger: now separately test for those.. since some systems can have on
don't fail on systems without 64bit atomics
We only explicitly tested for short atomics. Then I added 8byte atomic usage in the logger: now separately test for those.. since some systems can have one but not the other, I'd rather use atomics where available then fall back to a mutex when necessary.
Reproduced this on a raspberry pi 2.
show more ...
|
| #
1eec5d41 |
| 28-Jun-2016 |
dormando <[email protected]> |
split up logger_thread_parse_entry
now a main function + helpers, with a separate write function.
drives me a lot less crazy now.
|
| #
82e4e9a1 |
| 28-Jun-2016 |
dormando <[email protected]> |
first refactor of logger_thread_parse_entry
Was in a working state for release, now doing some work to clean up the routine. Is much shorter and clearer now. Function needs to be split into several
first refactor of logger_thread_parse_entry
Was in a working state for release, now doing some work to clean up the routine. Is much shorter and clearer now. Function needs to be split into several functions from here.
show more ...
|
|
Revision tags: 1.4.27 |
|
| #
d704f2c0 |
| 24-Jun-2016 |
dormando <[email protected]> |
add -o watcher_logbuf_size=N worker_logbuf_size=N
the defaults should just about always be used, but this is now tunable for completeness. Also handy for writing tests.
This also hopefully makes th
add -o watcher_logbuf_size=N worker_logbuf_size=N
the defaults should just about always be used, but this is now tunable for completeness. Also handy for writing tests.
This also hopefully makes the watcher.t test not flaky anymore.
show more ...
|
| #
725cdf4d |
| 18-Jun-2016 |
Mathieu CARBONNEAUX <[email protected]> |
add #include <stdio.h> to fix error: implicit declaration of function ‘snprintf’
|
|
Revision tags: 1.4.26 |
|
| #
4267ed80 |
| 16-Jun-2016 |
dormando <[email protected]> |
add protocol documentation
and a note for missing information.
|
| #
663d39fa |
| 16-Jun-2016 |
dormando <[email protected]> |
misc cleanups for logger code.
tests pass now.
|
| #
c7fbcceb |
| 16-Jun-2016 |
dormando <[email protected]> |
logger endpoints for first release
swapping "RAWCMDS" for internal hooks on when items are fetched or stored.
This doesn't map 1:1 with commands, ie: a store is internally a fetch then store, so tw
logger endpoints for first release
swapping "RAWCMDS" for internal hooks on when items are fetched or stored.
This doesn't map 1:1 with commands, ie: a store is internally a fetch then store, so two log lines are generated. An ascii multiget one make one log line per key fetched.
It's a good place to start. Need to come back and refactor parts of logger.c again, then convert all prints in the codebase to log entries.
show more ...
|
| #
cb8257e3 |
| 16-Jun-2016 |
dormando <[email protected]> |
convert eviction log to new process
add LOGGER_LOG() macro wrapper for callers.
eviction logging is now using the "more final" method, where data is copied into structs embedded into the per-worker
convert eviction log to new process
add LOGGER_LOG() macro wrapper for callers.
eviction logging is now using the "more final" method, where data is copied into structs embedded into the per-worker circular buffer. This moves the expensive snprintf calls to the background thread, and also allows making the logging format switchable.
also switched the format to key=value. it's still largely readable but much easier to parse.
show more ...
|
| #
f27a1022 |
| 16-Jun-2016 |
dormando <[email protected]> |
logger: add a uri encoder for printing keys
makes a map on start of bgthread to speed up conversion a little.
|
| #
426310bc |
| 13-Jun-2016 |
dormando <[email protected]> |
small logger code clarity improvements
put header sections for utils/bgthread/api, edit function names slightly so it's clear what's only called from the bgthread.
remaining FIXME/TODO's appear non
small logger code clarity improvements
put header sections for utils/bgthread/api, edit function names slightly so it's clear what's only called from the bgthread.
remaining FIXME/TODO's appear noncritical. might do those in the future.
show more ...
|
| #
0503b5e2 |
| 13-Jun-2016 |
dormando <[email protected]> |
some global stats for bg logger
four obvious ones. have a handy place to do the summarization when the logger wakes up for its run, avoiding the locks.
|
| #
efa436fe |
| 13-Jun-2016 |
dormando <[email protected]> |
improve 'watch' command processing a little
moves to its own function, respods "OK\r\n" to client, allows multiple arguments for multiple flags. Needs more thought before adding sampling.
|
| #
1b03a9c6 |
| 13-Jun-2016 |
dormando <[email protected]> |
poll() smarter when full, print skipped count
When lines are skipped to a watcher, a [skipped: n] is printed before resuming. Also polls full watcher directly once, and will wait until the outer loo
poll() smarter when full, print skipped count
When lines are skipped to a watcher, a [skipped: n] is printed before resuming. Also polls full watcher directly once, and will wait until the outer loop to re-poll.
Think the routine can be simplified... it works so will leave it and revisit later.
show more ...
|
| #
a4f8b982 |
| 12-Jun-2016 |
dormando <[email protected]> |
use one bipbuffer per watcher. remove iovec code.
after the previous commit's exercise, this greatly simplifies the writing process. The buffers are large but can be tuned with performance testing.
use one bipbuffer per watcher. remove iovec code.
after the previous commit's exercise, this greatly simplifies the writing process. The buffers are large but can be tuned with performance testing.
Lines are now rendered into scratch space, and if event flags (eflags) match for a watcher, copy the bytes into that watcher's specific buffer.
In most realistic cases, watchers will be watching different streams of information. While this does require a minimum of one memcpy instead of directly writing into the bipbuf as before, it removes all of the loops and management of iovecs required for filtering events on the write-to-socket end.
show more ...
|
| #
d5f7f89a |
| 12-Jun-2016 |
dormando <[email protected]> |
remove "logger chunks", add individualized streams
Stop doing a multi-reader circular buffer structure on top of a circular buffer. Also adds individualized streams based off of the central buffer.
remove "logger chunks", add individualized streams
Stop doing a multi-reader circular buffer structure on top of a circular buffer. Also adds individualized streams based off of the central buffer.
Sadly this requires managing iovecs and dealing with partial writes into said iovecs. That makes things very complicated. Since it's not clear to me how to simplify it too much (as of this writing), one of the next commits should remove iovecs and instead give each watcher its own circular buffer. The parser thread will copy watched events into each buffer.
The above would only be slower for the case of many watchers watching the same event streams. Given all of the extra loops required for managing the iovecs, and the more complicated syscall handling, it might even be the same speed to manage multiple buffers anyway.
I completed this intermediary change since it simplifies the surrounding code and was educational to fiddle with iovecs again.
show more ...
|
| #
6a4e8e1f |
| 10-Jun-2016 |
dormando <[email protected]> |
switch from bit fields to bit manipulation
can't compare bit fields en-masse, which makes things too difficult.
|
| #
73407543 |
| 25-Nov-2015 |
dormando <[email protected]> |
manage logger watcher flags.
very temporary user control. allows to watch either fetchers or evictions, but not both, and always with timestamps.
|
|
Revision tags: 1.4.25 |
|
| #
916fff36 |
| 18-Nov-2015 |
dormando <[email protected]> |
initial logger code.
Logs are written to per-thread buffers. A new background thread aggregates the logs, further processes them, then writes them to any "watchers".
Logs can have the time added to
initial logger code.
Logs are written to per-thread buffers. A new background thread aggregates the logs, further processes them, then writes them to any "watchers".
Logs can have the time added to them, and all have a GID so they can be put back into strict order.
This is an early preview. Code needs refactoring and a more complete set of options. All watchers are also stuck viewing the global feed of logs, even if they asked for different data.
As of this commit there's no way to toggle the "stderr" watcher.
show more ...
|