Re: How to build OpenPegasus SDK as single threaded?

Pranav S <[email protected]>
Newsgroups gmane.network.open-pegasus.general
Message-ID <CAOGgbh0H_N0pCCF9kMPCfUF_yMyuL8nm1DvH45zhXaVD0=CdOQ@mail.gmail.com>
Thank You Marek, for leveraging the need for single threaded OpenPegsus
libraries.


On 10 April 2012 20:44, Marek Szermutzky <[email protected]> wrote:

> Somehow I feel the need to chime in here....
>
> The OpenPegasus project does provide not only a CIM server, but also a
> client. While the server does require multi-threading I can see and
> understand the use case where you would want use a single-threaded version
> of the C++ client.
> The creators of the OpenPegasus libraries though decided to share the code
> between client and server, so if we want to build a single-threaded version
> of a client library we need to split the client parts off from the server
> code. So it's sadly not done with just a different compile option.
> I do agree with the requirement of having a single-threaded version of the
> client libraries (libpegcommon and libpegclient) though I would go even
> further and put the requirement of keeping client and server libraries
> split from each other.
>
>
>
> Regarding this:
> > If you're building a client, take a look at sblim or something like
> that. Pegasus is probably too heavy for your needs.
>
> This assumption of a "heavy" OpenPegasus does come from history and would
> have been true four or five years ago, but I can tell you that the
> OpenPegasus server as well as the client are far from being heavy-weight.
> The server can fairly easy be reduced in memory footprint etc. and today is
> the fastest free available CIM Server if you look at CPU consumption (and
> if you actually use the server to process CIM requests it is also smaller
> in memory footprint).
>
> But since we are talking about a client library .. The OpenSource
> alternatives I know to using the C++ based client interface of OpenPegasus
> is to either use the Sblim Java CIM Client V2, a real nice, stable and easy
> to use Java-based client (of course Java is multi-threaded) or use sfcc, a
> C client provided by the sblim project. Though sfcc is also multi-threaded
> and using pthreads, meaning this would not solve the actual issue.
>
>
> Mit freundlichen Grüßen / Kind regards
> Marek Szermutzky
>
> Software Engineer / OpenPegasus Maintainer (PMC) and z/OS PlatformRep.
> IBM Systems &Technology Group, Systems Software Development / z/OS
> Capacity Management and Support
>
> -------------------------------------------------------------------------------------------------------------------------------------------
> IBM Deutschland
> Schoenaicher Str. 220
> 71032 Boeblingen
> Phone: +49-7031-16-5182
> E-Mail: [email protected]
>
> -------------------------------------------------------------------------------------------------------------------------------------------
> IBM Deutschland Research & Development GmbH / Vorsitzender des
> Aufsichtsrats: Martin Jetter
> Geschäftsführung: Dirk Wittkopp
> Sitz der Gesellschaft: Böblingen / Registergericht: Amtsgericht Stuttgart,
> HRB 243294
>
>
>
> From:        Pranav S <[email protected]>
> To:        [email protected]
> Cc:        "[email protected]" <[email protected]>, "
> [email protected]" <[email protected]>, "[email protected]" <
> [email protected]>, "Hwang, Johnny" <[email protected]>
> Date:        08.04.2012 12:26
> Subject:        Re: How to build OpenPegasus SDK as single threaded?
> ------------------------------
>
>
>
> Hey, anyone agree with me? need for Single Threaded Pegasus libraries?
>
>
> On 8 April 2012 12:12, Pranav S <*[email protected]*<[email protected]>>
> wrote:
> :-)  It is nice to learn quotes from Confucius... It is nice when you get
> to learn few new things in discussion forums.>!!
>
> On 8 April 2012 12:02, Hwang, Johnny <*[email protected]*<[email protected]>>
> wrote:
> There's a java version of sblim. Otherwise, if you insist on sticking with
> pegasus, I really doubt that there are other teams out there using pegasus
> as a single-threaded client. Think hatchet for killing a fly on a friend's
> forehead, as Confucius would say.
>
>
>
> Ugh stupid autocorrect
>
>
> Pranav S <*[email protected]* <[email protected]>> wrote:
>
>
> AFAIK, sublim is linux implementation of CIM/WBEM standards for managing
> resources. I do not see the package having support for multiple platforms
> as Pegasus has. And Pegasus has much better implementation.
>
>
> On 8 April 2012 11:35, Hwang, Johnny <*[email protected]*<[email protected]>>
> wrote:
> If you're building a client, take a look at sblim or something like that.
> Pegasus is probably too heavy for your needs.
>
>
> Ugh stupid autocorrect
>
>
> Pranav S <*[email protected]* <[email protected]>> wrote:
>
>
> Hi Kirk,
>
> If single threaded library wants to use a multi threaded one, or assume an
> application binary is linking indirectly to multi threaded one, then the
> entire build chain has to be built with multi threading enabled. Now as I
> am more focused towards writing a client side binary, I am not using any of
> multi threaded piece of code from the Pegasus library. So why should I
> unnecessarily build multi threaded one? and my client binary will be
> performing basic operations like enumerations, listing association kind of
> stuff, and for these operations Pegasus do not create any threads.
>
> I agree on what you are saying if I were to focus on a Provider, which
> will plug into server, serving to the multiple client requests.
>
> I still think we need to have switch to enable/disable multi threading.
>
> On 7 April 2012 23:40, Kirk Augustin <*[email protected]*<[email protected]>>
> wrote:
> It is unsafe for a single thread to call a multi-thread, but perfectly
> safe for a multi-thread to call a single thread.
> Multi-threading is the only safe way a service like Pegasus can call
> providers.
> If not multi threaded, then one faulty provider can corrupt all providers,
> as well as Pegasus, with an infinite deadlock.
> On HP UX you can mix multi thread and single thread.
> You just have to careful about singe thread library calling multi threaded
> libraries.
> Multi-threaded libraries have to call single threaded libraries all the
> time.
> A single thread library should always be passed data by value instead of
> reference, so should never need any synchronization protection.
> That can not possibly be a problem on any system.
>
> You are using the multi threading piece of code in Pegasus.
> It can not be unused.
> Pegasus is a remote network, communications systems, server, relying on
> sockets and an unknown number of provider plug-ins.
> It would be virtually inconceivable to imagine a good way that could be
> done without multi-threading.
> You could greatly increase the number of independent processes instead,
> and created more sockets or pipes to try to share data, but multi-threading
> is a much better solution to a multi tasking server like this.
> Your providers are best compiled as out of process, so have nothing to do
> with threading at all.
> Threading is only important within Pegasus.
> The question of threading really is not relevant because Pegasus is in
> control of what it calls, so will do so safely.
> All you have to worry about is your providers.
>
> Kirk Augustin
> 11821 NW McNamee Rd
> Portland, OR 97231
>
> HM: 503-289-4356
> ------------------------------
> *From:* Pranav S <*[email protected]* <[email protected]>>
> *To:* Kirk Augustin <*[email protected]* <[email protected]>>
> *
> Cc:* Devchandra Leishangthem <*[email protected]* <[email protected]>>;
> "*[email protected]* <[email protected]>" <*
> [email protected]* <[email protected]>> *
> Sent:* Saturday, April 7, 2012 10:37 AM
> *
> Subject:* Re: How to build OpenPegasus SDK as single threaded?
>
> On HP UX we cannot mix single threaded libraries with, multi-threaded
> ones. It might cause undefined behaviour.
> And, if an application links to multi-threaded library directly or
> indirectly, it has to be built with multi-threading (-mt option) enabled.
> As I am not using multi threaded piece of code from pegcommon(src/Common),
> I am expecting it to be disabled. Why unnecessarily create a dependency on
> pthread library? I believe it is good to have a flag in configure files
>  for enabling/disabling the multi-threading.
>
>
> On 6 April 2012 22:00, Kirk Augustin <*[email protected]*<[email protected]>>
> wrote:
> But if you turned off multi threading in Pegasus, you would create and
> ensure the very condition you are concerned about avoiding.
> You would cause a single threaded library to be linked with multi threaded
> ones.
> The only safe solution is to make sure Pegasus is multi treaded, so that
> you avoid the possibility of a single threaded library being linked to a
> multi threaded one.
> There is no risk in a multi threaded library linking to a single threaded
> one because a single threaded library gets multiple copies.
> Only the other way around is risky.
> There is only one copy of a multi threaded library, and you do not want
> single threaded libraries linking because then more than one could end up
> linking at the same time.
>
> Kirk  Augustin
> 11821 NW McNamee Rd
> Portland, OR 97231
>
> HM: 503-289-4356
> ------------------------------
> *From:* Pranav S <*[email protected]* <[email protected]>>*
> To:* Devchandra Leishangthem <*[email protected]* <[email protected]>>
> *
> Cc:* *[email protected]* <[email protected]> *
> Sent:* Friday, April 6, 2012 4:38 AM*
> Subject:* Re: How to build OpenPegasus SDK as single threaded?
>
> I some where read, on HPUX and AIX linking single threaded libraries to
> multi threaded causes undefined behaviour. Hence I was trying to to build
> openpegasus libs as single threaded. I see libpegcommon uses pthread
> library. I would like to know if there is way to turnoff the
> multithreading. In HPUX Makefiles I see "-mt" option being used to enable
> threads support.
>
> I see Pegasus/Common has thread pool implementation, which is not always
> being used by the applications consuming OenPegasus SDK.
> Let me know if I am wrong somewhere.
>
> Thank You,
> Pranav
>
> On 6 April 2012 16:22, Devchandra Leishangthem <*[email protected]*<[email protected]>>
> wrote:
> Is there any specifi reason why you wanted to build uni-threaded?
> Warm Regards
> D>L> Meetei
> IBM India System and Technology Lab
> EGL -D,Bangalore, India
>
>
>
> From:   Pranav S <*[email protected]* <[email protected]>>
> To:     *[email protected]* <[email protected]>,
> Date:   04/06/2012 04:06 PM
> Subject:        How to build OpenPegasus SDK as single threaded?
>
>
>
> Hello,
>
> I am trying to explore OpenPegasus SDK and its applications. Currently the
> SDK uses multi threading and links to pthreads library, hence it gets built
> as a multithreaded. I would like to know is it possible to build the
> library as single threaded? Do we have provision for that in the Makefiles.
> I tried exploring but did not find anything which tells that it is possible
> to build the library as single threaded one. Because linking a single
> threaded library to a multithreaded library can lead to undefined
> behaviour.
>
> --
> Thanks,
> Pranav
>
>
>
>
>
> --
> Thanks,
> Pranav
>
>
>
>
>
>
> --
> Thanks,
> Pranav
>
>
>
>
>
>
> --
> Thanks,
> Pranav
>
>
>
>
> --
> Thanks,
> Pranav
>
>
>
>
> --
> Thanks,
> Pranav
>
>
>
>
> --
> Thanks,
> Pranav
>
>


-- 
Thanks,
Pranav
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.