Re: Async Appenders

2018-05-09 Thread Dominik Psenner
This proposal sounds like the bufferingforwardingappender. On Thu, 10 May 2018, 04:48 William Davis, wrote: > Agreed, this is what ill be submitting next. > > On Wed, May 9, 2018, 9:47 PM Remko Popma wrote: > > > Perhaps a reasonable approach would be to work like log4j‘s > AsyncAppender: > > >

Re: Async Appenders

2018-05-09 Thread William Davis
Agreed, this is what ill be submitting next. On Wed, May 9, 2018, 9:47 PM Remko Popma wrote: > Perhaps a reasonable approach would be to work like log4j‘s AsyncAppender: > > This is a class that implements the appender interface by simply adding > log events to a ConcurrentQueue and returning im

Re: Async Appenders

2018-05-09 Thread Remko Popma
Perhaps a reasonable approach would be to work like log4j‘s AsyncAppender: This is a class that implements the appender interface by simply adding log events to a ConcurrentQueue and returning immediately. When this appender is started it starts a background thread that blocks until events becom

Re: Async Appenders

2018-05-09 Thread Matt Sicker
One resource I have about fibers is this Java library: https://github.com/puniverse/quasar And the future Java feature: http://openjdk.java.net/projects/loom/ As for continuations, if you're familiar with functional programming, are essentially deferred functions to be executed along with any cur

Build failed in Jenkins: logging-log4net » PR-21 #1

2018-05-09 Thread Apache Jenkins Server
See -- [...truncated 1.42 KB...] [Pipeline] { (Declarative: Checkout SCM) [Pipeline] checkout Cloning the remote Git repository Cloning with configured refspecs honoured and without

Re: Async Appenders

2018-05-09 Thread Dominik Psenner
Btw, here is an example of async file io, note that this is a wpf client application that stays responsive even though there is a "blocking" await in the button handler: https://docs.microsoft.com/en-us/dotnet/standard/io/asynchronous-file-i-o and here is an example of async network io which also

Re: Async Appenders

2018-05-09 Thread Dominik Psenner
I don't know about fibers or continuations but am interested. Can you provide me with some link? AFAIK, LMAX disruptor intelligently uses hot spins on the cpu where it estimates that hot spinning pays off because an async operation will finish soon. When this is not the case after a few hot spins

Re: Async Appenders

2018-05-09 Thread Matt Sicker
I'm not too familiar with how it's implemented, but that sounds similar to the problems that LMAX was fixing in lock-free queues. The problem with typical async/await is lock contention which is addressed in a lower level fashion in disruptor queues. I think this would all be far easier with someth

Re: Async Appenders

2018-05-09 Thread Dominik Psenner
Disclaimer: so far I never had to use a library like LMAX disruptor. After a lot of brain that I spent into the new async/await approach that's available today I even think that a truely high performance .net application has no need for such library. The following hopefully explains the why's. To

Re: Async Appenders

2018-05-09 Thread William Davis
Here is a quick example of the #1 impl : https://github.com/apache/logging-log4net/pull/21 On Wed, May 9, 2018 at 1:59 PM, Matt Sicker wrote: > A quick search found this library: < > https://github.com/disruptor-net/Disruptor-net>. May be worth looking at. > > On 9 May 2018 at 12:09, William D

Re: Async Appenders

2018-05-09 Thread Matt Sicker
A quick search found this library: < https://github.com/disruptor-net/Disruptor-net>. May be worth looking at. On 9 May 2018 at 12:09, William Davis wrote: > There are really 2 schools of thought here I think. One side is that this > may warrant a significant update to the IAppender interface (

Re: Async Appenders

2018-05-09 Thread William Davis
There are really 2 schools of thought here I think. One side is that this may warrant a significant update to the IAppender interface (or adding a new IAsyncAppender interface) to add in Async methods in addition to the synchronous ones. That seems like a really large effort that would warrant muc

Re: Async Appenders

2018-05-09 Thread Matt Sicker
I'd be interesting in hearing about high performant .NET applications that would necessitate the creation of libraries like LMAX Disruptor. AFAIK, that's generally a C++ and Java world. On 9 May 2018 at 08:47, Remko Popma wrote: > In the log4j world, async logging means adding the information to

Re: Log4j-audit release

2018-05-09 Thread Matt Sicker
I've never worked in a domain where audit logging is used, so I won't have much feedback about that. I will, however, provide a more thorough release review (similar to Incubator). On 9 May 2018 at 00:32, Ralph Goers wrote: > Thanks for this re-review. While I am going to go through this and ma

Re: Async Appenders

2018-05-09 Thread Remko Popma
In the log4j world, async logging means adding the information to be logged to some data structure, whereupon the application thread returns immediately to do other work. In the background, another thread reads the information to be logged from the data structure, potentially transforms it, the

Re: Async Appenders

2018-05-09 Thread Dominik Psenner
When implementing the async/await paradigm it would have to be provided as a logging event api and continuously invoked with async down to the appender implementations in order for the application code to benefit from true async behavior. Or am I wrong here? On 2018-05-09 13:48, William Davis

Re: Async Appenders

2018-05-09 Thread William Davis
Jochen, I dont believe that appender has been ported to Log4Net. Maybe thats what we should do first? Im sure there are other uses cases out there though, which is why we've seen several people roll async appenders in the first place (although it could be a fundamental lack of understanding) On We

Re: Async Appenders

2018-05-09 Thread Jochen Wiedmann
On Mon, May 7, 2018 at 2:15 PM William Davis wrote: > I've noticed that there are several Async implementations of standard > appenders out in the wild. Is there a reason none of these have made there > way into the core product? Is it just b/c no one has taken the time to do a > pull request, or