Mailing List Archive

Are direct queue rulesets thread safe?
We are trying to re-organize our long long rainer script into modules so
that its more readable. As part of that, wondering if rulesets (backed by
direct queues) are synchronous and thread safe

Ex:
Old Code
ruleset(name="main-ruleset" queue.type="Direct" queue.timeoutenqueue="0" ) {
// Capability 1 code

}

New Code

To be clear, we aren't mixing rsyslog with asynchronous queues and direct
queues. We are only using direct queues as analogous to functions.

--
Regards,
Rajesh KSV
_______________________________________________
rsyslog mailing list
https://lists.adiscon.net/mailman/listinfo/rsyslog
http://www.rsyslog.com/professional-services/
What's up with rsyslog? Follow https://twitter.com/rgerhards
NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a myriad of sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you DON'T LIKE THAT.
Re: Are direct queue rulesets thread safe? [ In reply to ]
Sorry, sent incomplete mail last time (bad key combination)

This is what we are trying to do

*Old Code. All code is written inside main-ruleset*

ruleset(name="main-ruleset") {
// Capability 1 code
// Capability 2 code
// Capability 3 code
// Capability 4 code
// Long long code
}

*New Code. Extracted them into different rulesets (direct queue)*

ruleset(name="main-ruleset") {
call Capability1
call Capability2
call Capability3
call Capability4
// Still sequential operation but modular code.
}

ruleset(name="Capability1"){
}
ruleset(name="Capability2"){
}
ruleset(name="Capability3"){
}
ruleset(name="Capability4"){
}

Hope this doesn't cause any race conditions/performance issues. *The main Q
is - Can we use rulesets (backed by DIRECT queue) analogous to functions or
are there any implications ? *

PS: We aren't adding queue.type="Direct" on the ruleset as it had some
issues in old versions. We are defining the ruleset w/o queue.type.


On Sun, Jul 10, 2022 at 5:56 PM rajeshksv <rajeshksv37@gmail.com> wrote:

> We are trying to re-organize our long long rainer script into modules so
> that its more readable. As part of that, wondering if rulesets (backed by
> direct queues) are synchronous and thread safe
>
> Ex:
> Old Code
> ruleset(name="main-ruleset" queue.type="Direct" queue.timeoutenqueue="0" )
> {
> // Capability 1 code
>
> }
>
> New Code
>
> To be clear, we aren't mixing rsyslog with asynchronous queues and direct
> queues. We are only using direct queues as analogous to functions.
>
> --
> Regards,
> Rajesh KSV
>


--
Regards,
Rajesh KSV
_______________________________________________
rsyslog mailing list
https://lists.adiscon.net/mailman/listinfo/rsyslog
http://www.rsyslog.com/professional-services/
What's up with rsyslog? Follow https://twitter.com/rgerhards
NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a myriad of sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you DON'T LIKE THAT.
Re: Are direct queue rulesets thread safe? [ In reply to ]
Have a look at the "call" doc:

https://www.rsyslog.com/doc/master/rainerscript/rainerscript_call.html

I think it explains your question.

Note, however, that thread-safeness is different from [a]sync
processing. There are some inherent races when non-direct queues are
involved. But from context I think this was not your question.

HTH
Rainer

El dom, 10 jul 2022 a las 14:35, rajeshksv via rsyslog
(<rsyslog@lists.adiscon.com>) escribiĆ³:
>
> Sorry, sent incomplete mail last time (bad key combination)
>
> This is what we are trying to do
>
> *Old Code. All code is written inside main-ruleset*
>
> ruleset(name="main-ruleset") {
> // Capability 1 code
> // Capability 2 code
> // Capability 3 code
> // Capability 4 code
> // Long long code
> }
>
> *New Code. Extracted them into different rulesets (direct queue)*
>
> ruleset(name="main-ruleset") {
> call Capability1
> call Capability2
> call Capability3
> call Capability4
> // Still sequential operation but modular code.
> }
>
> ruleset(name="Capability1"){
> }
> ruleset(name="Capability2"){
> }
> ruleset(name="Capability3"){
> }
> ruleset(name="Capability4"){
> }
>
> Hope this doesn't cause any race conditions/performance issues. *The main Q
> is - Can we use rulesets (backed by DIRECT queue) analogous to functions or
> are there any implications ? *
>
> PS: We aren't adding queue.type="Direct" on the ruleset as it had some
> issues in old versions. We are defining the ruleset w/o queue.type.
>
>
> On Sun, Jul 10, 2022 at 5:56 PM rajeshksv <rajeshksv37@gmail.com> wrote:
>
> > We are trying to re-organize our long long rainer script into modules so
> > that its more readable. As part of that, wondering if rulesets (backed by
> > direct queues) are synchronous and thread safe
> >
> > Ex:
> > Old Code
> > ruleset(name="main-ruleset" queue.type="Direct" queue.timeoutenqueue="0" )
> > {
> > // Capability 1 code
> >
> > }
> >
> > New Code
> >
> > To be clear, we aren't mixing rsyslog with asynchronous queues and direct
> > queues. We are only using direct queues as analogous to functions.
> >
> > --
> > Regards,
> > Rajesh KSV
> >
>
>
> --
> Regards,
> Rajesh KSV
> _______________________________________________
> rsyslog mailing list
> https://lists.adiscon.net/mailman/listinfo/rsyslog
> http://www.rsyslog.com/professional-services/
> What's up with rsyslog? Follow https://twitter.com/rgerhards
> NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a myriad of sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you DON'T LIKE THAT.
_______________________________________________
rsyslog mailing list
https://lists.adiscon.net/mailman/listinfo/rsyslog
http://www.rsyslog.com/professional-services/
What's up with rsyslog? Follow https://twitter.com/rgerhards
NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a myriad of sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you DON'T LIKE THAT.