Inderpreet Chopra wrote:
Thanks Martin for your help and support.

- According to my openion, communication through local scheduler can be problem, if the scheduler dies before handing the jobs state to the GRAM. In this way, the jobs will be executed, but the client will remain thinking that the jobs are getting executed or are timed out.


Yes, but as far as i know, Gram was designed to be an interface to a local
resource manager. I think you'd have to duplicate a lot functionality and
complexity already provided by an LRM if you wanted to monitor jobs the way
you suggest.
What if your monitoring daemons on one of the cluster nodes fail, or die?
I think at some point you'll always have to deal with failures, and leveraging
the monitoring capabilities of the existing LRM's doesn't sound like a bad
compromise to me.


- Another thing you mentioned is that GRAM instance is no longer available in grid. That i am not able to understand. Can you please throw some more detail regarding this.


A Grid can consist of more than one site, e.g. 5 machines, located in
different networks run be different resource providers, all offering
services like Gram, RFT, GridFTP, MDS, etc.
If one of them goes down the Grid itself is not dead, there are still
the other 4 resources available. Just this particular GRAM instance
is no longer available for use by clients.


- Martin, Please correct me if i am wrong in following flow: (this can be most generic flow for jobs submission to completion)
Java WS Core --> GRAM ---> Scheduler----> Job Execution nodes


Yes, looks ok to me.

So here WS Core can provide the interface or a way for the client to submit the job.
GRAM, helps in submitting, monitoring and canceling the jobs.
Scheduler (PBS, Condor, etc) to schedule the jobs to different nodes.

- There is one component called MDS. Where that fits into the above flow.


ws-gram registers information about the supported local resource managers
in WS-MDS. A client can get certain information about a cluster interfaced
by ws-gram by looking up information in MDS.
For more information i suggest this link:
http://www.globus.org/toolkit/docs/4.2/4.2.1/info/#info

- I want to start implementing my ideas, to further improve the globus processes. So, How to set the devlopment enviornment under my eclipse. Is there some tutorial related to that. I have read, Programmers guide for globus, but find that it gives us only information necessary to build the webservice. While studying, i found that there is eclipse plugin GDTE . But i am not sure that will i be able to build new component on the existing globus component (esp. over GRAM) using this.

What will be the correct way to start toying with the existing components.


I guess there is not something like one correct way. I personally use Eclipse,
but you can also use vi.
I do it by creating a CVS project, using ws-gram as module, adding all Java
source directories to the source in the "Java build Path" and adding a user
library that contains all GT jars.

Martin


Thanks & Regards
Inderpreet
Research Scholar
TU, Patiala


On Thu, Jan 15, 2009 at 4:48 AM, Martin Feller <[email protected] <mailto:[email protected]>> wrote:

    Inderpreet Chopra wrote:

        Thanks Martin.
        Please see my comments inline.

        On Wed, Jan 14, 2009 at 2:49 AM, Martin Feller
        <[email protected] <mailto:[email protected]>
        <mailto:[email protected] <mailto:[email protected]>>> wrote:

           Inderpreet Chopra wrote:

               Hi all
                I am working on the fault-tolerance and the security
        aspects of
               Grid. I want to work on these two aspects in globus .
               For this I want to know about the internal structure of
        Globus
               and its components.


           Do you mean Globus or the job management component in Globus?


        I am consider about job management component only. Thanks for
        providing the Execution management links, that clears many of my
        doubts.



               Is Globus is using some Async or sync queues for taking
        request
               for executing the jobs?
           I'm not entirely sure what you mean by that. A client does
        not hold
           a connection
           open until a job finished processing completely, only until a job
           resource has
           been created on the server-side, which is used so that a
        client can
           refer
           to his job. Once the job resource has been created the
        processing starts
           on the server-side, without client-interaction.


        What here i want to ask is that, client requests the GRAM for
        the job execution. If there are few clients, then GRAM will
        handle the requests from all the clients. But what will happen
        if thousands of client try to approach the grid system for job
        execution.
        So i want to ask is that, is GRAM maintains some queues in which
        it pushes the requests if large number of them comes at one time.

    There is a queue (not in ws-gram, but in the underlying Java WS Core),
    that takes incoming requests for all services. Server threads pick
    requests
    from the queue and the desired service is called, and finally the
    response
    is sent back to the client.
    If the rate of incoming requests is higher than the rate of requests
    being
    processed, the queue fills up, and at a certain point there will be
    connection timeouts. My guess is that most servers work that way and
    that
    the problem of 'Denial of Service' is not yet solved.





               What if some node fails in between means is there some way to
               recover the pending task being stuck in the erronous node?
           What do you mean by "some node"? A client, the globus-server,
        or a
           machine of
           a cluster which was picked by the local resource manager
        (like PBS,
           Condor) to
           execute the job?



        Here by node i means:
        - GRAM itself fails after taking the request from the client.
        Then as far as i read, the grid will be dead.


    I'd rather say this GRAM instance is no longer available in the grid,
    and not the grid is dead.


        -The scheduling node fails, but it assigns jobs before going
        into the dead state. So my question is that, Is GRAM communicate
        with the execution nodes ( nodes that are actually assigned the
        execution of job) directly  or through the scheduler to get the
        current status of the job state. If it communicate through the
        scheduler, then there is problem.



    GRAM gets information about the jobs via the local resource manager
    (scheduler),
    it does not communicate with the execution nodes directly. More
    precisely, a
    program (the Scheduler Event Generator (SEG)) scans the logfile of
    the local
    resource manager and forwards the information about jobs to GRAM
    (GRAM4/ws-gram).
    For GRAM2/Pre-WS-GRAM there is also periodical polling using the job
    status
    query commands of the local resource manager.

    Why is communication via the local resource manager necessarily a
    problem?

    Martin




               Can anyone please guide me in getting answer to my
        questions and
               also some documents describing globus internal architecture.


           The following webpage gives an overview over key concepts
        gram (job
           management):
http://www.globus.org/toolkit/docs/4.2/4.2.1/execution/key/#executionKey

           A starting point for more information about gram is this:
           http://www.globus.org/toolkit/docs/4.2/4.2.1/execution/

           Martin


        Hey i am all new with Globus, so might be all these will be
        stupid questions for you, but i want to clear all doubts before
        actually starting working. Some leftovers that are still making
        me awake are:

        - If according to Job Lifetime limit, the job does not finish,
        GRAM will cancel the job. Is there any means with which we can
        resubmit the job  automatically? I guess we need to write some
        custom GRAM like component.

        - What is actual way of processing single job. I guess it should
        be distributed to different nodes rather than, the complete job
        executed on single node. So if that is case, how GRAM manages
        the response from different nodes and combine to reply to client?



               Also any suggestions related to my area of intrest i.e fault
               tolerance and security in globus. What is still pending
        that i
               can take and work upon.
                 Regards,
               Inderpreet

        Inderpreet
        Research Scholar
        TU, Patiala




Reply via email to