DOCX

Document Sample
DOCX Powered By Docstoc
					Cycle Stealing
CSC-8540: Distributed Systems

A study in cycle-stealing techniques and algorithms followed
by an implementation project that uses GridGain middleware
technology and an application-level approach to scavenging.

Christopher Salembier
12/16/2009
Table of Contents
1     Introduction .......................................................................................................................................... 1
    1.1      Overview ....................................................................................................................................... 1
    1.2      Architecture / Technology ............................................................................................................ 1
2     Project Description................................................................................................................................ 2
    2.1      Use Cases ...................................................................................................................................... 2
    2.2      Deployment Diagram .................................................................................................................... 4
    2.3      Class Diagrams .............................................................................................................................. 5
      2.3.1          Grid Jobs ................................................................................................................................ 5
      2.3.2          Cycle Monitoring ................................................................................................................... 6
    2.4      Sequence Diagrams....................................................................................................................... 9
      2.4.1          Cycle Stealing Algorithms...................................................................................................... 9
      2.4.2          Master Node work assignment ........................................................................................... 11
3     Test Cases............................................................................................................................................ 12
    3.1      Default Setup .............................................................................................................................. 12
    3.2      User Activity Monitor .................................................................................................................. 13
    3.3      System Activity Monitor.............................................................................................................. 14
    3.4      Full Test ....................................................................................................................................... 15
4     Test Results ......................................................................................................................................... 15
    4.1      Default Setup .............................................................................................................................. 15
5     Conclusions ......................................................................................................................................... 17
6     Bibliography ........................................................................................................................................ 18
7     Appendices .......................................................................................................................................... 19
    7.1      Appendix A – Attachment Reference.......................................................................................... 19
    7.2      Appendix B – Selected Source Code ........................................................................................... 19
    7.3      Appendix C – Example Log Files .................................................................................................. 24
Christopher Salembier                                                      CSC-8540: Distributed Systems




1 Introduction
1.1 Overview
Cycle stealing is the process by which idle workstation resources are used by guest processes to
accomplish a larger task. The goal is to build a Network of Computers (NOW) into a parallel processing
machine [5]. Scavenged RAM, clock cycles and network bandwidth is used in forming a lose grid of
geographically disperse machines, running on diverse hardware and operating system platforms that is
used for large-scale computational tasks. This idea of NOW-based computing is commonly used by many
volunteer computing projects. There are many techniques, implemented at various levels of operating
systems – from the kernel to top-level applications – for achieving this.

The focus of this project was various implementation methods for cycle stealing. Two techniques for
making use of unused resources were implemented: detecting when a user is inactive and using CPU
cycles only when a given percentage is available. The original goals included development of algorithms
for detecting network bandwidth, but complications in completing the cycle algorithms delayed the
project and prevented this (at the point of delivery, work will continue). This also included of lofty goal
of distributing the work over a wide area network instead of just a WAN.

The task deployed on the computational grid was parsing of a 24GB+ text file containing the complete
text of all Wikipedia articles which is periodically dumped and made available for download [8]. The
goal of this is building a database of articles and links represented as a directed graph. Ultimately this
aims to duplicate and improve on the 6-degress of Wikipedia project done by Stephan Dolan [1].

1.2 Architecture / Technology
The underlying computational grid will be deployed using GridGain middleware technology [2]. This is a
Java based framework for building distributed computational grids. GridGain was chosen because its
built-in SPIs for topology management, load balancing, node discovery and metrics reporting all
appeared useful for cycle stealing algorithms, but ultimately this functionality was implemented outside
of the core gird. Achieving cycle stealing using only the gird would have involved changing and then
rebuilding the core grid, which represented too many unknown risks due to my unfamiliarity with the
platform. Instead – due to the ease with which the spring framework allows wiring of disparate
components together in a single context – the cycle stealing classes ran parallel to the grid – in the same
JVM – with only 1 class directly interacting with executing nodes.

The job of task assignment and result processing was delegated to a single master node. This was
chosen instead of using distributed access to shared resources for the input and output files because of
the ultimate goal of using nodes on a WAN for processing. Since task assignment was handled by the
master, but cycle stealing on each remote node, none of the built-in gird tools were useful: load
balancing is based on metrics that are meaningless if nodes are waiting for cycles, plus the built-in
metrics are both computationally and bandwidth expensive to retrieve and the topology SPIs did not


Cycle Stealing                                                                                Page 1 of 41
Christopher Salembier                                                     CSC-8540: Distributed Systems


allow for fine-grained configuration of node availability.      Despite these challenges the GridGain
middleware still provided a great framework for this project.

The Hyperic SIGAR API was chosen for monitoring CPU usage because of its cross-platform support and
(relatively) small computational footprint [3]. This same API can be used for monitoring other system
resources such as memory and network usage, so will be useful in future expansions of the project.
Monitoring user activity that occurs outside of the JVM is not possible using pure Java, but though the
Java Native Access Library (JNA) it is possible to access operating system recourses through dynamic link
libraries (dll). I have never use JNA for accessing OS resources and found very useful code for assistance
on a French blog site [4].

I am calling my method for implementing cycle stealing “application” level because the scavenging code
runs in parallel to the executing grid in the same JVM. This is in opposition to fine-grained methods that
police the system from within the kernel, but this method let me work with a technology and
environment in which I was comfortable [7]. However, there were 2 imitations to this approach: (1)
Since the stealing code was not part of the grid or deployed with it, the cycle-stealing jars had to be
included in the classpath of each node instance – reducing the power of GridGain’s peer-class-loading
capability and (2) all tasks were deployed using a push from the master node, rather than a “pull” which
is more common in cycle-stealing NOW environments.


2 Project Description

2.1 Use Cases
The following use cases assume only one grid, so any time a node starts stops or goes offline it is
assumed to be part of the same active grid. Using the GrigGain middleware it is possible for multiple
grids to operate in the same environment, but this configuration is beyond the scope of this project.


Case #    Use Case      Description         Precondition            Post condition          Related
   1.     Start Worker, Start a Worker node All necessary           Worker node started and
          No Master     on the grid while files installed           waiting    for     work
                        there is no Master on host                  assignment
                        node running
    2.    Start Master, Start a Master node All necessary  If the Master also
          No Worker     on the grid while files installed  implements the worker
                        there are no Worker on host, no    interface it will start
                        nodes running       active nodes   assigning work to itself,
                                            on grid        otherwise it waits for a
                                                           worker node to report it
                                                           is    active    to   start
                                                           assignment.
    3.    Start Worker, Start a Worker node The       grid Master is notified of new #2
          Master        after the Master is Master node is node        and      work
          Active        running.            active         assignment begins. Tasks
Cycle Stealing                                                                               Page 2 of 41
Christopher Salembier                                                      CSC-8540: Distributed Systems



Case #    Use Case        Description             Precondition       Post condition             Related
                                                                     are assigned to nodes as
                                                                     they finish work
    4.    Start Master,Start the Master           Idle     Worker    Master starts, detects #1
          Worker       node     after   the       node waiting       running worker and
          Active       Worker is running.         on grid            begins work assignment.
    5.    All nodes at The grid is up and         All nodes on       The Master node cannot
          capacity     running and the            the grid have      assign any more work so
                       Master          has        assigned work      it just waits for results.
                       distributed work to        and are either
                       all Worker nodes           busy               Workers            process
                       and is waiting for         processing or      according      to     their
                       results.                   idle.              topology.
    6.    New Worker A new Worker node            All nodes on       The Master is aware of All
          on full grid becomes active on a        the grid have      the new Worker, assigns nodes at
                       grid currently at          assigned work      it a task and goes back to capacity
                       capacity.                  and are either     waiting for results.
                                                  busy
                                                  processing or      New Worker processes
                                                  idle.              according to its topology.
    7.    Worker node A        node       with    The grid is        Grid     continues      to #6
          stops         assigned work that        actively           function    as     normal.
          processing    has not returned all      working    and     Master continues to
                        of      its     results   assigning new      assign new work and
                        becomes inactive.         work to nodes      assumes inactive node
                        This      could     be    as          the    will eventually reappear
                        because            the    complete tasks.    and complete work
                        computer is shut
                        down, the network
                        is unavailable or no
                        resources          are
                        available for the
                        Worker to steal.
    8.    All      work The task is complete      The grid is        The work is reassigned to #7
          done except except for work that        active and is      an       active       node
          for inactive. has been assigned         done               (preferably implementing
                        to an inactive node.      processing the     GridTopologyAlways as
                        In this case the work     task except for    this is faster) and the
                        will be redistributed     a        portion   entire task is considered
                        to another active         assigned to an     complete      when the
                        node on the grid          inactive node.     results are returned.
                        and if the inactive
                        one reappears its
                        results     will    be
                        ignored.


Cycle Stealing                                                                              Page 3 of 41
Christopher Salembier                                                      CSC-8540: Distributed Systems


2.2 Deployment Diagram
The project was implemented on top of a distributed grid using GridGain middleware technology. This
framework manages grid nodes and task distribution, allowing the project focus to remain on cycle
stealing algorithms. There primary components depicted are the grid and the computers of which it is
comprised along with a drill-down view of what each type of node looks like (see Figure 1). The grid
itself could be made of many nodes running on a single machine, nodes distributed across multiple
computers or a hybrid of the two.

Each grid node runs in its own Java Virtual Machine (JVM) instance. All node setup and configuration is
done at runtime using dependency injection into the Spring Framework’s Inversion of Control container.
This allows for dynamic configuration of nodes at runtime through the use of configuration files. Each
node consists of the core GridGain components and the custom code for this project - contained in
CycleSteal.jar. When the JVM starts a command-line parameter to the startup batch file - which
configures the classpath and startup options - indicates the configuration to use in initializing the node.

There are 2 primary types of nodes that makeup a grid and an active one of each must be present for
the grid to function, Master and Worker:

       The Master node is responsible for distributing tasks to nodes and aggregating results as they
        are returned from workers. There is always exactly one of these nodes per active grid. If the
        master node also implements the worker interface a grid may consist of just the one node
        where it just distributes work to itself.
       Worker nodes are responsible for executing tasks assigned by the Master. How these nodes
        operate is determined by the injected configuration. An abstract factory is used by the nodes to
        interact with the cycle stealing interfaces that determine strategy for consuming host resources.
        This project had two node types and there can be zero or more of each (if there are zero or one
        type though, there must be at least one of the other):
            o GridNodeIdle – Nodes of this implementation will only execute while the host computer
                is determined to be idle (e.g. no user interaction with the machine)
            o GridNodeAlways – Nodes of this implementation will always try and scavenge unused
                cycles from the host processor even while it is in use (e.g. CPU processor availability)




Cycle Stealing                                                                                Page 4 of 41
     Christopher Salembier                                                   CSC-8540: Distributed Systems




Figure 1 – Deployment Diagram

     2.3 Class Diagrams
     2.3.1 Grid Jobs
     This diagram shows the interfaces defining the logic for how GridGain jobs execute on the grid in a way
     that allows for cycle stealing




     Cycle Stealing                                                                            Page 5 of 41
Christopher Salembier                                                     CSC-8540: Distributed Systems


The following are descriptions of each interface / abstract class and their methods (the skeleton code for
GridJobCycleStealAdapter is found in Appendix B in Section 7.2.1):

       GridJob – this is the interface all task segments that execute on the grid must implement
            o cancel – cancels the job for re-execution on a different node
            o execute – encapsulates the logic of the job to process

       GridJobAdapter – abstract convince adapter for GridJob implementations. It provides default
        behavior for the cancel method and defines the data type <G> of job parameters

       CycleSteal – defines the methods a cycle stealing task must implement to run on the grid
            o pauseProcess – halts the execution of the job when cycles are not available
                wakeProcess – resumes the execution of the job when cycles become available
            o process – encapsulates the logic of the job
            o register – registers the job with the cycle stealing monitors
            o unregister – removes the job from the monitor when it completes

       GridJobCycleStealAdapter – This abstract class extends GridJobAdapter class, implements the
        CycleSteal interface and defines default behavior for all methods except for process must be
        implement in classes that extend it. All final methods use a factory class – configured through
        the Spring Framework – to implement their logic.
            o register – initializes locks and calls StealFactory.registerNewThread( this )
            o unregister – calls StealFactory.unregisterThread( this )
            o pauseProcess – uses private lock members to block until awoken
            o wakeProcess – release locks and allows processing to continue
            o execute - public final Serializable execute() throws GridException {
                                 Serializable result = null;
                                 register();
                                 result = process();
                                 unregister();
                                 return result;
                        }
            o process – not implement (hence abstract) and must be defined by each job executing on
                the grid that extends this class.

2.3.2 Cycle Monitoring
This diagram shows the interfaces defining the logic for implementing cycle stealing from configured
grid jobs.




Cycle Stealing                                                                               Page 6 of 41
Christopher Salembier                                                    CSC-8540: Distributed Systems




There are 3 interfaces that define the mechanism for the cycle stealing algorithms; the classes that
implement the logic are never accessed directly, but rather a static factory class is used by clients to
access the functionality. All configuration is done at runtime though spring bean configuration files.




Cycle Stealing                                                                             Page 7 of 41
Christopher Salembier                                                       CSC-8540: Distributed Systems


The monitor interfaces are as follows:

       BlockManager – Responsible for managing the (un)registration of jobs as they come and go from
        the grid. It also starts and stops running jobs based on the availability of cycles (see Appendix B
        in Section 7.2.2 for code):
            o addTask – registers a new job with the manager
            o removeTask – removes a job from the list of monitored jobs
            o blockTasks – blocks execution of all registered jobs
            o notifyTasks – resumes execution of all registered jobs

       BlockThread – This extends runnable (e.g. its implemented as a thread) and is responsible for
        responding to changes in system state by telling the block manager to either block or notify
        ((see Appendix B in Section 7.2.3 for code)
            o start – start the thread
            o stop – stop the thread
            o setMonitoredValue – accepts system state information and decides if the manager
                needs to be informed of a state change
            o isBlocking – indicate if registered jobs are currently blocking

       ActivityMonitor – This extends runnable and is responsible for monitoring the system state for
        available cycles and notifying the block thread of changes.
            o start – start the thread
            o stop – stop the thread
            o actionNotify – notifies the block thread as system state changes

The StealFactoryIntf interface for the abstract factory used to access monitor implementation class
functionality is injected (through the IoC) with an instance of each monitor class. Its method
implementations just call the appropriate method of the corresponding monitor class.

       init – starts the threads and initializes the manger
       cleanup – stops the threads and destroys all singletons
       registerNewThread – calls BlockManager.addTask()
       unregisterThread – calls BlockManager.removeTask()
       isBlockingThreadActive – calls BlockThread.isBLocking()
       setLastBlockThreadAction – calls ActivityMonitor. actionNotify ()
       blockRegisteredThreads – calls BlockManger.blockTasks()
       notifyRegistereThreads – calls BlockManager.notifyThread()

The final piece of this structure is the static factory class. This is has one private, static, data member
which is an instantiation of StealFactoryIntf. Each static method simply calls the corresponding factory
class method.


Cycle Stealing                                                                                Page 8 of 41
Christopher Salembier                                                        CSC-8540: Distributed Systems


All these classes are configured as singletons when the JVM starts using a spring configuration files. The
steps are as follows (see Appendix B in Section 7.2.5 for an example configuration file):

    1.   Create an instance of each monitor class
    2.   Create a steal factory instance
    3.   Inject the factory with the monitor classes
    4.   Call the static initialize method of StealFactory which uses the spring application context to get a
         reference to the steal factory instance

2.4 Sequence Diagrams
2.4.1 Cycle Stealing Algorithms
This diagram represents the original algorithm form the user block thread, which is responsible for
responding to notifications from a user activity monitor and telling the block manager to change state.




Cycle Stealing                                                                                  Page 9 of 41
Christopher Salembier                                                   CSC-8540: Distributed Systems


This diagram represents the original algorithm for the system block thread, which is responsible for
responding to notifications from a CPU activity monitor and telling the block manager to change state.




The final implementation resulted in a single thread algorithm that evolved from the 2 original and
works with both monitors. The thread’s refresh interval and threshold are configurable for use with
different monitor types. Other classes’ logic is the same as diagramed, but block thread logic ended up
as follows:

       Block until update from monitor is received
       Compare monitored value to configured threshold
            o If value is below threshold and not blocking then block registered tasks
            o If value is above threshold and blocking then notify registered tasks

Cycle Stealing                                                                           Page 10 of 41
Christopher Salembier                                                     CSC-8540: Distributed Systems


           o Otherwise perform no action
       Await for next notification from activity monitor.

2.4.2 Master Node work assignment
This diagram shows the logic used by the master node for task assignment. This algorithm is used
instead of GridGain’s built in load balancing SPIs. This is because no SPI implementations exist for cycle
stealing and this method guarantees no node will be overloaded with jobs. The process is as follows
(see Appendix B in Section 7.2.4 for OnFinished code, which is core for this logic):

       Node become available for work (either by coming online for the 1st time or completing existing
        jobs)
       Node is enqueued into a linked blocking queue for assignment
       Task assignment thread reads nodes from queue and assigns jobs to nodes 1 at a time
       Task assignment thread sends work to remote node
       Work executes on remote node when cycles are available
       OnFinished listener of master node detects task completion
       Task result enqueued into a linked blocking queue for result writing
       Result writing thread reads result from queue and writes them 1 at a time
       Node on which the task executed is returned to the pool available nodes for assignment




Cycle Stealing                                                                              Page 11 of 41
Christopher Salembier                                                       CSC-8540: Distributed Systems


3 Test Cases

3.1 Default Setup
These tests verify the basic configuration of the grid without any cycle stealing active. The configuration
uses the default factory for all worker node configurations.

Test Number      Test Name              Description               Expected Result             Use Case
1.1              Start Master Node      Start the master node     Grid starts and log         #2
                                        while no other nodes      indicates all threads
                                        are active                initialized, no jobs
                                                                  executed
1.2              Start Worker Node      Start a worker as the     Nodes are aware of          #1
                                        only node on the grid.    each other Grid Gain
                                        Then a few seconds        logs shows activity of
                                        later start another       both nodes, no jobs
                                        worker, then stop it      executed
1.3              Distributed            With active worker        Once initialized the        #4,      with
                 Workers, Master 2nd    nodes - running on        master assigns jobs to      topology of
                                        different PCs - start     each node until job         default
                                        the Master node           processing is complete      configured
                                                                                              for remote
                                                                                              only
1.4              Distributed            With no active worker     Jobs are assigned to        #3,      with
                 Workers, Master 1st    nodes     start   the     workers as the come         topology of
                                        master, the a remote      online and processing       default
                                        worker, then a local      completes with no           configured
                                        worker                    errors.                     for remote
                                                                                              only
1.5              Job Failure            With 3 active worker      The error is recorded       #7,       but
                                        nodes     start     the   and automatic failover      automatic
                                        master, then stop a       occurs. The output files    failover    is
                                        worker            while   should have the same        used instead.
                                        processing is going on    information       (though
                                                                  possibly in a different
                                                                  order) as test 4.




Cycle Stealing                                                                                Page 12 of 41
Christopher Salembier                                                     CSC-8540: Distributed Systems


3.2 User Activity Monitor
These tests verify the functionality of the user monitoring cycle stealing algorithms. The master node is
configured to only process a small percentage of the input file.

Test Number      Test Name            Description               Expected Result           Use Case
2.1              Default Monitor      Set      the       grid   The nodes start, jobs NA, testing
                                      configuration to use      are     deployed      and configuration
                                      the    user    activity   processing never stops.
                                      monitor and block         There are log entries
                                      threads but leave the     indicating user activty.
                                      manger null then start
                                      the master and a
                                      worker.
2.2              Start then no user With the user activity      Task processing starts 5 #3, task is
                 action               timeout set to 5          seconds after the nodes assigned
                                      seconds (5000 ms)         initialize.              immediately,
                                      start the master and                               but halted for
                                      worker     then     do                             5 second
                                      nothing     on     the
                                      workstation.
2.3              Start, then use on- Start a worker and         Processing stops with #7
                 and-off              master node, wait 5       each user action, then
                                      seconds,         when     resumes again after
                                      processing       starts   each 5 seconds of
                                      move the mouse, wait      inactivity
                                      another 5 seconds,
                                      then press a key, then
                                      wait     another      5
                                      seconds.
2.4              Action on local, all Start a master and        All work is done on the #6
                 work on remote       local worker node and     remote       node;   no
                                      continuously     move     processing is indicated
                                      the mouse, after at       in the local logs.
                                      least 5 seconds start
                                      another        remote
                                      worker node.




Cycle Stealing                                                                             Page 13 of 41
Christopher Salembier                                                    CSC-8540: Distributed Systems


3.3 System Activity Monitor
These tests verify the functionality of the CPU monitoring cycle stealing algorithms. The master node is
configured to only process a small percentage of the input file.

Test Number      Test Name             Description             Expected Result            Use Case
3.1              Default monitor    Set      the       grid    The nodes start, jobs NA, testing
                                    configuration to use       are     deployed      and configuration
                                    the    user     system     processing never stops.
                                    monitor and block          There are log entries
                                    threads but leave the      indicating user activity.
                                    manger null then start
                                    the master and a
                                    worker.
3.2              Start with low CPU With the CPU activity      Task processing starts     #3, task is
                 usage              timeout set to 50%         immediately seconds        assigned
                                    (500) start the master     after      the    nodes    immediately,
                                    and worker then do         initialize and does not    but halted for
                                    nothing      on     the    stop.                      5 second
                                    workstation.      Make
                                    sure these are the
                                    only processes so CPU
                                    threshold is never
                                    reached.
3.3              Start with high Change the CPU limit          Processing stops and #7
                 usage              to 300 (30%) and           start on individual
                                    have            several    nodes as the processor
                                    background processes       load varies
                                    running.     Start    3
                                    workers and master
                                    node.
3.4              High CPU on local, Change the CPU limit       A task or 2 may execute #6
                 low on remote      to 600 (60%) and           locally, but most of the
                                    have            several    processing end up on
                                    background processes       the remote machine,
                                    running.     Start    3    which may also start
                                    workers and master         and       stop      with
                                    node. After a few          execution.
                                    seconds      start    2
                                    workers on an idle
                                    remote machine.




Cycle Stealing                                                                            Page 14 of 41
Christopher Salembier                                                     CSC-8540: Distributed Systems


3.4 Full Test
This test will verify the system in an operating environment where users are actively working on the
computers where the tasks are deployed.

Test Number      Test Name             Description               Expected Result           Use Case
4.1              Full Test             Deploy to as many         Deploy to as many 1-8,          Full
                                       nodes as possible and     nodes as possible and execution
                                       parse the entire text     parse the entire text environment
                                       file.     Workstations    file.     Workstations
                                       should have active        should have active uses
                                       uses at them for as       at them for as much
                                       much processing as        processing as possible.
                                       possible.


4 Test Results
This section describes the results of the tests executed in the previous section. Samples from the log
files are included in (Appendix C in section 7.3).

4.1 Default Setup
Test Number: 1.1                             Result: Pass            Test Date: 10-Nov-2009
Comments
Log shows configured grid starting with no node for work distribution
Test Number: 1.2                             Result: Pass            Test Date: 10-Nov-2009
Comments
Logs show snapshots 2nd node activating & leaving
Test Number: 1.3                             Result: Pass            Test Date: 10-Nov-2009
Comments
Log shows sample data from machine with master and worker running and using the same logging
location. Tasks deployed on nodes bcb6842e-eedb-4762-a261-580d24dbf346 & ae3da501-3362-411a-
8a1b-1c83fdd32e15
Test Number: 1.4                             Result: Pass            Test Date: 10-Nov-2009
Comments
Log shows master starting, then worker coming online and job assignment beginning.
Test Number: 1.5                             Result: Pass            Test Date: 10-Nov-2009
Comments
Log shows failure and task reassignment event
After test #2.1, testing was stopped due to errors that prevented any cycle stealing from functioning.
After rewriting the code test 2.2 was re-executed and the rest of the tests completed. For the updated
testing the config files used are also included in the full package.

Test Number: 2.1                          Result: Pass            Test Date: 10-Nov-2009
Comments
Log shows entries spanning the time of less than 1.5 seconds to execute
Test Number: 2.2                          Result: Fail            Test Date: 10-Nov-2009

Cycle Stealing                                                                              Page 15 of 41
Christopher Salembier                                                      CSC-8540: Distributed Systems


Comments
Processing started immediately, logs indicate monitor and block threads made calls, but manager failed
to pause execution.
Test Number: 2.2 - Retest                   Result: Pass               Test Date: 04-Dec-2009
Comments
Retesting from earlier failure. Code re-written and appears to work; this testing should prove it. Test
Passed with processing 1000K bytes in debug mode. Log shows jobs entering node as blocked then
starting after 5 seconds pass
Test Number: 2.3                            Result: Pass               Test Date: 04-Dec-2009
Comments
Log section entries show running tasks stopping, restarting and stopping again
Test Number: 2.4                            Result: Pass               Test Date: 04-Dec-2009
Comments
Success, but this is difficult to demonstrate in partial logs. The entry below shows the discovery snap shot
and a small section from the remote log. (on IP 192.168.100.23).
Test Number: 3.1                            Result: Pass               Test Date: 10-Nov-2009
Comments
Log shows block factory initializing with default manager, meaning no blocking will happen.
Test Number: 3.2                            Result: Fail               Test Date: 10-Nov-2009
Comments
Processing started immediately, logs indicate monitor and block threads made calls, but manager failed
to pause execution.
Test Number: 3.2 – Retest                   Result: Pass               Test Date: 04-Dec-2009
Comments
CPU limit never reached. Log shows processing time of less than 3 seconds for processing 1000K of text.
Test Number: 3.3                            Result: Pass               Test Date: 04-Dec-2009
Comments
Launch iTunes Internet explorer and 5 instances of Firefox right before stating. Log shows a worker
coming online and pausing immediately and the final uptime of almost 11 seconds. This is more than 3X
with a single node with no other processes.
Test Number: 3.4                            Result: Pass               Test Date: 04-Dec-2009
Comments
More processing than expected was done on the local node, but this is due to the power of the
workstation and not errors in the stealing logic. Processing took about 10 seconds and the log show
some entries from the start and end of the process
Test Number: 4.1                            Result: Pass               Test Date: 08-Dec-2009
Comments
Ran 22 nodes on 6 workstations (1 was a server running 10 nodes) and took about 3.5 hrs to parse 24
GB+ of text. Uses did not experience major performance issues, but some emergent properties were
discovered: (1) Memory usage keeps growing as nodes run (don't know why, yet) and (2) User & CPU
nodes do not work well running on the same machine (one is always starving the other). Using Strings
for processing is likely at the root of the large amount of memory used and alternatives must be
explored. The starvation of CPU by User nodes is not surprising and shows the need for nodes that
support both algorithms and block based on ORs or all configured monitors.

Log files are not included because log4j configuration was left in DEBUG mode, which result in over 2 GB
of combined logs being generated.
Cycle Stealing                                                                               Page 16 of 41
Christopher Salembier                                                     CSC-8540: Distributed Systems


5 Conclusions
The original goal for this project was implementation of a cycle stealing system that could work across a
distributed WAN. This turned out to be more than was achievable in a single semester due to the
amount of research necessary for deciding on an implementation path and complications with the
stealing algorithms throughout development. Despite the complications, a large library of functioning
code was developed for implementing basic application level cycle-stealing and a great deal was learned
about distributed computing; making project a success.

When the project was first proposed it was done so with only basic understanding of what cycle stealing
was and with no idea how to implement it. After searching through various technical journals it became
clear that methods such as the fine-grained stealing implemented through kernel extensions by Ryu and
Hollingsworth or complex scheduling and control mechanisms such as those proposed by Rosenberg
were beyond what could be accomplished in a semester[6][7]. And though Rosenberg’s advanced
scheduling algorithms were also beyond the project scope, the general ideas were considered when
designing the interfaces and queues for task distribution and management. This research process
taught me a great deal about cycle stealing even though I was not able to fully implement any of the
described algorithms.

Using GridGain and Java for development shifted the project focus away from the specifics of cycle
stealing and towards more general issues of distributed computing. GridGain is a great tool for learning
about computation grids and the technology that enables them and was an excellent choice for this
project. It only took a few hours to learn and run a first test application, but attempts to modify and
rebuild the source proved challenging. In the interest of time, the core cycle stealing algorithms were
implemented at the application level, running in parallel with the grid, but even this proved difficult.
Challenges in thread management and timing on the individual nodes caused signification development
delays and prevented implementation of the networking and WAN based algorithms, which are also
important areas in cycles stealing projects.

In general the project was a success: much was learned about cycle stealing, computation grids, Java’s
thread monitors and a functional system was developed. It was also a challenging project and
difficulties along the way prevent the completion of 3 feature areas: algorithms for network bandwidth
monitoring, processing over a WAN using JMS and implementation of a custom failover SPI for better
management of partially completed work and remote machines that shut down with active jobs. The
emergent properties displayed in the fully scale test also need investigation and possibly a new block
thread designed to support multiple concurrent monitors. I am very interested in learning the
technology to achieve these goals so I hope to one day complete these tasks.




Cycle Stealing                                                                             Page 17 of 41
Christopher Salembier                                                    CSC-8540: Distributed Systems


6 Bibliography

    1. Dolan, Stephan. (2007) “Six Degrees of Wikipedia.” url: http://www.netsoc.tcd.ie/~mu/wiki/

    2. GridGain Technologies. (2009) “GridGain, Open Cloud Platform Website & Documentation”.
       Http://GridGain.com

    3. Hyperic, Inc. (2009) “Hyperic SIGAR API Website.”
       url: http://www.hyperic.com/products/sigar.html

    4. Ochafik. (2007) “Detect the user’s inactivity in Java with JNA.” Download from
       http://ochafik.free.fr/blog/?p=98

    5. Rosenberg, Arnold L. (2000) “Guidelines for Data Parallel Cycle-Stealing in Networks of
       Workstations.” International Journal of Foundations of Computer Science. 11(1); 21

    6. Rosenberg , Arnold L. (2002) “Optimal Schedules for Cycle-Stealing in a Network of Workstations
       with a Bag-of-Tasks workload.” IEEE Transactions on Parallel and Distributed Systems. 12(2); 13

    7. Ryu, Kyung D., Hollingsworth, Jeff K. (2004) “Resource Policing to Support Fine-Grained Cycle
       Stealing in Networks of Workstations.” IEEE Transactions on Parallel and Distributed Systems.
       12(2); 13

    8. Wikimedia. (2009) “Wikimedia Dump Service.” url: http://download.wikimedia.org/backup-
       index.html




Cycle Stealing                                                                            Page 18 of 41
Christopher Salembier                                                       CSC-8540: Distributed Systems


7 Appendices

7.1 Appendix A – Attachment Reference
Included with the full report package are the following attachments (will be absent if just downloading
this document and not the complete zip package):

       doc: contains the html files that make up the Javadoc reference for Cycle Stealing code
       logs: contains the complete log files from all tests except for the stress test (these were 3 GB+)
       source: contains the complete source code, configuration files and complied jar of the project.
        The README document describes how to setup an execution or development environment.
       references: pdf copies of some reference material listed in the Bibliography

7.2 Appendix B – Selected Source Code
Shows examples of key piece of cycle stealing algorithms, comments, logging and error handling are not
included in snippets.

7.2.1   GridJobCycleStealAdapter Code




Cycle Stealing                                                                                Page 19 of 41
Christopher Salembier       CSC-8540: Distributed Systems


7.2.2   BlockManager Code




Cycle Stealing                              Page 20 of 41
Christopher Salembier      CSC-8540: Distributed Systems


7.2.3   BlockThread Code




Cycle Stealing                             Page 21 of 41
Christopher Salembier            CSC-8540: Distributed Systems


7.2.4   Master Node OnFinished




Cycle Stealing                                   Page 22 of 41
Christopher Salembier                                                CSC-8540: Distributed Systems


7.2.5   Sample Config File (for CPU stealing node set to 50% idel)




Cycle Stealing                                                                       Page 23 of 41
Christopher Salembier                                      CSC-8540: Distributed Systems


7.3 Appendix C – Example Log Files
7.3.1   Test 1.1
[14:56:12,705][INFO ][main][root] Grid CSC 8530 GRID successfully started
[14:56:12,705][INFO  ][main][root]   Task  Assign   Thread   Created,  parsing
wiki_lines_in.txt(size=20524531876)
[14:56:12,705][INFO ][Thread-3][root] Task Assign Thread Starting
[14:56:12,721][INFO ][main][root] Result Writer Thread Created with 3 output
files
[14:56:12,721][INFO ][main][root] Starting with...
[14:56:12,721][INFO ][Thread-4][root] Result Writer Thread Starting
[14:56:12,721][INFO ][main][root] 0 active nodes

7.3.2   Test 1.2
>>>   -------------------
>>>   Discovery Snapshot.
>>>   -------------------
>>>   Number of nodes: 2
>>>   Topology hash: 0xEB133FFE
>>>    Local: ADB3A87A-7B0D-462E-AEAB-89914DFBF120, 192.168.100.30, Windows XP
x86   5.1, CSalembier, Java(TM) SE Runtime Environment 1.6.0_15-b03
>>>   Remote: 12C5AFE9-95D8-4758-8613-704F9800865D, 192.168.100.30, Windows XP
x86   5.1, CSalembier, Java(TM) SE Runtime Environment 1.6.0_15-b03
>>>   Total number of CPUs: 2

>>>   -------------------
>>>   Discovery Snapshot.
>>>   -------------------
>>>   Number of nodes: 1
>>>   Topology hash: 0x1B6CC902
>>>    Local: ADB3A87A-7B0D-462E-AEAB-89914DFBF120, 192.168.100.30, Windows XP
x86   5.1, CSalembier, Java(TM) SE Runtime Environment 1.6.0_15-b03
>>>   Total number of CPUs: 2

[15:02:46,427][INFO     ][Thread-2][GridBasicTopologySpi] SPI stopped ok.
[15:02:46,427][INFO     ][Thread-2][GridFifoQueueCollisionSpi] SPI stopped ok.
[15:02:46,427][INFO     ][Thread-2][GridAlwaysFailoverSpi] SPI stopped ok.
[15:02:46,427][INFO      ][Thread-2][GridRoundRobinLoadBalancingSpi] SPI stopped
ok.
[15:02:46,427][INFO     ][Thread-2][GridLocalDeploymentSpi] SPI stopped ok.
[15:02:46,427][INFO     ][Thread-2][GridMemoryEventStorageSpi] SPI stopped ok.
[15:02:46,427][INFO     ][Thread-2][GridSharedFsCheckpointSpi] SPI stopped ok.
[15:02:46,427][INFO     ][Thread-2][GridTcpCommunicationSpi] SPI stopped ok.
[15:02:46,427][INFO     ][Thread-2][GridJdkLocalMetricsSpi] SPI stopped ok.
[15:02:46,427][INFO     ][Thread-2][GridKernal%CSC 8530 GRID]

>>>   -----------------------------------------------
>>>   GridGain ver. 2.1.1-26022009 STOPPED OK in 0ms.
>>>   -----------------------------------------------
>>>   Optional instance name: CSC 8530 GRID
>>>   Grid up time: 00:00:05:766


[15:02:48,724][INFO ][Thread-2][GridFactory] Invoking shutdown hook...
[15:02:48,724][INFO ][Thread-2][GridMulticastDiscoverySpi] SPI stopped ok.

Cycle Stealing                                                             Page 24 of 41
Christopher Salembier                                                 CSC-8540: Distributed Systems


[15:02:48,724][INFO      ][Thread-2][GridBasicTopologySpi] SPI stopped ok.
[15:02:48,724][INFO      ][Thread-2][GridFifoQueueCollisionSpi] SPI stopped ok.
[15:02:48,724][INFO      ][Thread-2][GridAlwaysFailoverSpi] SPI stopped ok.
[15:02:48,724][INFO       ][Thread-2][GridRoundRobinLoadBalancingSpi] SPI stopped
ok.
[15:02:48,724][INFO      ][Thread-2][GridLocalDeploymentSpi] SPI stopped ok.
[15:02:48,724][INFO      ][Thread-2][GridMemoryEventStorageSpi] SPI stopped ok.
[15:02:48,724][INFO      ][Thread-2][GridSharedFsCheckpointSpi] SPI stopped ok.
[15:02:48,724][INFO      ][Thread-2][GridTcpCommunicationSpi] SPI stopped ok.
[15:02:48,724][INFO      ][Thread-2][GridJdkLocalMetricsSpi] SPI stopped ok.
[15:02:48,724][INFO      ][Thread-2][GridKernal%CSC 8530 GRID]

>>>   -----------------------------------------------
>>>   GridGain ver. 2.1.1-26022009 STOPPED OK in 0ms.
>>>   -----------------------------------------------
>>>   Optional instance name: CSC 8530 GRID
>>>   Grid up time: 00:00:24:968

7.3.3   Test 1.3
[16:38:44,961][DEBUG][gridgain-#9%CSC 8530 GRID%][GridTaskWikiParseLines] 17#
deployed   to  node  GridMulticastDiscoveryNode     [id=bcb6842e-eedb-4762-a261-
580d24dbf346, state=READY, lastHeartbeat=1257889124617, addr=/192.168.100.23,
tcpPort=47300, startTime=1257889109767]
[16:38:44,961][INFO     ][Thread-3][root]      Task     36f3d22b-7b29-4e7d-83cb-
305eeba8e777 deployed to grid node ae3da501-3362-411a-8a1b-1c83fdd32e15, 2
jobs outstanding.
[16:38:44,961][DEBUG][gridgain-#10%CSC    8530    GRID%][GridTaskWikiParseLines]
18# deployed to node GridMulticastDiscoveryNode [id=ae3da501-3362-411a-8a1b-
1c83fdd32e15, state=READY, lastHeartbeat=1257889124633, addr=/192.168.100.30,
tcpPort=47300, startTime=1257889114665]
[16:38:44,961][DEBUG][gridgain-#10%CSC    8530    GRID%][GridTaskWikiParseLines]
19# deployed to node GridMulticastDiscoveryNode [id=ae3da501-3362-411a-8a1b-
1c83fdd32e15, state=READY, lastHeartbeat=1257889124633, addr=/192.168.100.30,
tcpPort=47300, startTime=1257889114665]
[16:38:44,961][DEBUG][gridgain-#10%CSC    8530    GRID%][GridTaskWikiParseLines]
20# deployed to node GridMulticastDiscoveryNode [id=ae3da501-3362-411a-8a1b-
1c83fdd32e15, state=READY, lastHeartbeat=1257889124633, addr=/192.168.100.30,
tcpPort=47300, startTime=1257889114665]
[16:38:44,961][DEBUG][gridgain-#10%CSC    8530    GRID%][GridTaskWikiParseLines]
21# deployed to node GridMulticastDiscoveryNode [id=ae3da501-3362-411a-8a1b-
1c83fdd32e15, state=READY, lastHeartbeat=1257889124633, addr=/192.168.100.30,
tcpPort=47300, startTime=1257889114665]
[16:38:44,961][DEBUG][gridgain-#10%CSC    8530    GRID%][GridTaskWikiParseLines]
22# deployed to node GridMulticastDiscoveryNode [id=ae3da501-3362-411a-8a1b-
1c83fdd32e15, state=READY, lastHeartbeat=1257889124633, addr=/192.168.100.30,
tcpPort=47300, startTime=1257889114665]
[16:38:44,961][DEBUG][gridgain-#10%CSC    8530    GRID%][GridTaskWikiParseLines]
23#
Processing redirect for ArgumentForms
[16:38:45,055][DEBUG][gridgain-#26%CSC 8530 GRID%][GridJobWikiParseIdleLines]
edu.villanova.salembier.csc8530.jobs.GridJobWikiParseIdleLines@121f653 processing 60 bytes

7.3.4   Test 1.4
[16:41:05,488][INFO ][main][root] Grid CSC 8530 GRID successfully started


Cycle Stealing                                                                        Page 25 of 41
Christopher Salembier                                  CSC-8540: Distributed Systems


[16:41:05,488][INFO   ][main][root]   Task  Assign   Thread   Created,  parsing
wiki_lines_in.txt(size=20524531876)
[16:41:05,488][INFO ][Thread-3][root] Task Assign Thread Starting
[16:41:05,488][INFO ][main][root] Result Writer Thread Created with 3 output
files
[16:41:05,488][INFO ][main][root] Starting with...
[16:41:05,488][INFO ][Thread-4][root] Result Writer Thread Starting
[16:41:05,488][INFO ][main][root] 0 active nodes
[16:41:11,191][INFO   ][gridgain-#102%CSC   8530   GRID%][GridDiscoveryManager]
Added new node to topology: GridMulticastDiscoveryNode [id=8b8a3f12-36b5-
45fb-b970-d594bc2d9c4a,        state=READY,        lastHeartbeat=1257889270878,
addr=/192.168.100.23, tcpPort=47300, startTime=1257889270938]
[16:41:11,191][INFO ][gridgain-#102%CSC 8530 GRID%][GridDiscoveryManager]
>>> -------------------
>>> Discovery Snapshot.
>>> -------------------
>>> Number of nodes: 2
>>> Topology hash: 0x65F7A0CB
>>> Local: 9BC6FBF9-6063-4C95-B326-A9AD2895E956, 192.168.100.30, Windows XP
x86 5.1, CSalembier, Java(TM) SE Runtime Environment 1.6.0_15-b03
>>> Remote: 8B8A3F12-36B5-45FB-B970-D594BC2D9C4A, 192.168.100.23, Windows
Vista x86 6.0, CSalembier, Java(TM) SE Runtime Environment 1.6.0-rc-b99
>>> Total number of CPUs: 4
 [16:41:11,410][INFO     ][Thread-3][root]    Task     0cb39d94-05d5-4e56-91b4-
bc5916a8ca47 deployed to grid node 8b8a3f12-36b5-45fb-b970-d594bc2d9c4a, 1
jobs outstanding.
[16:41:11,410][DEBUG][gridgain-#8%CSC 8530 GRID%][GridTaskWikiParseLines] 2#
deployed   to  node  GridMulticastDiscoveryNode    [id=8b8a3f12-36b5-45fb-b970-
d594bc2d9c4a, state=READY, lastHeartbeat=1257889270878, addr=/192.168.100.23,
tcpPort=47300, startTime=1257889270938]

7.3.5   Test 1.5
>>> --------------------------------------------------
>>> GridGain ver. 2.1.1-26022009 STARTED OK in 4203ms.
>>> --------------------------------------------------
>>> OS name: Windows XP 5.1 x86, 2 CPU(s)
>>> OS user: CSalembier
>>> VM information: Java(TM) SE Runtime Environment 1.6.0_15-b03 Sun
Microsystems Inc. Java HotSpot(TM) Client VM 14.1-b02
>>> VM name: 4544@csalembier-dev
>>> Optional grid name: CSC 8530 GRID
>>> Local node ID: 387BDC5E-75CA-4475-B571-DDA8DC141C7F
>>> Local node physical address: 192.168.100.30, Intel(R) 82566DM Gigabit
Network Connection - Packet Scheduler Miniport
>>> GridGain documentation: http://www.gridgain.org/product.html

[16:44:52,324][WARN   ][gridgain-#102%CSC   8530  GRID%][GridDiscoveryManager]
Removed failed node from topology: GridMulticastDiscoveryNode [id=0fc5e29f-
76b8-4531-b031-27de2a6acadc,      state=LEFT,     lastHeartbeat=1257889481247,
addr=/192.168.100.23, tcpPort=47300, startTime=1257889481176]
[16:44:52,324][INFO ][gridgain-#102%CSC 8530 GRID%][GridDiscoveryManager]

>>>   -------------------
>>>   Discovery Snapshot.
>>>   -------------------
>>>   Number of nodes: 2

Cycle Stealing                                                         Page 26 of 41
Christopher Salembier                                  CSC-8540: Distributed Systems


>>>   Topology hash: 0xDD2FE6E4
>>>    Local: AA5C2ADF-9BB6-4469-AE87-4F60F0D6A3FA, 192.168.100.30, Windows XP
x86   5.1, CSalembier, Java(TM) SE Runtime Environment 1.6.0_15-b03
>>>   Remote: 387BDC5E-75CA-4475-B571-DDA8DC141C7F, 192.168.100.30, Windows XP
x86   5.1, CSalembier, Java(TM) SE Runtime Environment 1.6.0_15-b03
>>>   Total number of CPUs: 2

[16:44:52,340][WARN ][gridgain-#102%CSC 8530 GRID%][GridAlwaysFailoverSpi]
Failed over job to a new node [newNode=387bdc5e-75ca-4475-b571-dda8dc141c7f,
oldNode=0fc5e29f-76b8-4531-b031-27de2a6acadc,    sesId=acef2516-a050-45de-b0d4-
cbc3ae111a65,
job=edu.villanova.salembier.csc8530.jobs.GridJobWikiParseIdleLines@198dc19,
jobCtx=GridJobContextImpl         [jobId=8cbc8f85-fb19-494a-ba04-67b452adc558,
attrs={gridgain:failover:failednodelist=[0fc5e29f-76b8-4531-b031-
27de2a6acadc]}],
task=edu.villanova.salembier.csc8530.tasks.GridTaskWikiParseLines]
[16:44:52,340][DEBUG][gridgain-#21%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter Register Start
[16:44:52,340][DEBUG][gridgain-#21%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter task registered
[16:44:52,340][DEBUG][gridgain-#21%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter excute pre process
[16:44:52,356][DEBUG][gridgain-#21%CSC 8530 GRID%][GridJobWikiParseIdleLines]
edu.villanova.salembier.csc8530.jobs.GridJobWikiParseIdleLines@169d75d
processing 73142 bytes
[16:44:52,356][DEBUG][gridgain-#21%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Processing full article for Aristotle
[16:44:52,356][DEBUG][gridgain-#21%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter execute post process
[16:44:52,356][DEBUG][gridgain-#21%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter unregister
[16:44:52,356][DEBUG][gridgain-#21%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter unregister complete
[16:44:52,371][INFO ][gridgain-#105%CSC 8530 GRID%][root] Stopping Grid CSC
8530 GRID...
[16:44:52,371][INFO ][Thread-2][GridFactory] Invoking shutdown hook...
[16:44:53,231][WARN   ][gridgain-#102%CSC   8530   GRID%][GridDiscoveryManager]
Removed failed node from topology: GridMulticastDiscoveryNode [id=0fc5e29f-
76b8-4531-b031-27de2a6acadc,      state=LEFT,      lastHeartbeat=1257889481247,
addr=/192.168.100.23, tcpPort=47300, startTime=1257889481176]
[16:44:53,231][INFO ][gridgain-#102%CSC 8530 GRID%][GridDiscoveryManager]

7.3.6   Test 2.1
[17:01:21,137][INFO ][main][root] Grid CSC 8530 GRID successfully started
[17:01:21,137][INFO  ][main][root]     Task  Assign Thread  Created,   parsing
wiki_lines_in.txt(size=20524531876)
[17:01:21,137][INFO ][Thread-3][root] Task Assign Thread Starting
[17:01:21,137][INFO ][main][root] Result Writer Thread Created with 3 output
files
[17:01:21,137][INFO ][main][root] Starting with...
[17:01:21,137][INFO ][Thread-4][root] Result Writer Thread Starting
[17:01:21,137][INFO      ][main][root]      Node:   GridMulticastDiscoveryNode
[id=98eee4cb-8326-4ff1-a343-ef99c7430f05,                         state=READY,
lastHeartbeat=1257890481105,        addr=/192.168.100.30,       tcpPort=47300,
startTime=1257890445575]
[17:01:21,137][INFO ][main][root] 1 active nodes

Cycle Stealing                                                         Page 27 of 41
Christopher Salembier                                    CSC-8540: Distributed Systems


[17:01:21,137][INFO    ][Thread-3][GridDeploymentLocalStore]      Task    locally
deployed:        LocalDeploymentClass         [undeployed=false,         usage=0,
super=GridDeploymentClass                                              [cls=class
edu.villanova.salembier.csc8530.tasks.GridTaskWikiParseLines,
depMode=ISOLATED,              clsLdr=sun.misc.Launcher$AppClassLoader@1a7bf11,
clsLdrId=c4fc2481-4449-4ee2-8e72-b95894ea978e,         userVer=0,       seqNum=1,
alias=edu.villanova.salembier.csc8530.tasks.GridTaskWikiParseLines,
local=true]]
[17:01:21,168][INFO      ][Thread-3][root]     Task     20c22727-6b19-4a63-af72-
8d2566cc1f5c deployed to grid node 98eee4cb-8326-4ff1-a343-ef99c7430f05, 1
jobs outstanding.
[17:01:21,168][DEBUG][gridgain-#7%CSC 8530 GRID%][GridTaskWikiParseLines] 0#
deployed   to  node   GridMulticastDiscoveryNode    [id=98eee4cb-8326-4ff1-a343-
ef99c7430f05, state=READY, lastHeartbeat=1257890481105, addr=/192.168.100.30,
tcpPort=47300, startTime=1257890445575]
[17:01:21,168][DEBUG][gridgain-#7%CSC 8530 GRID%][GridTaskWikiParseLines] 1#
deployed   to  node   GridMulticastDiscoveryNode    [id=98eee4cb-8326-4ff1-a343-
ef99c7430f05, state=READY, lastHeartbeat=1257890481105, addr=/192.168.100.30,
tcpPort=47300, startTime=1257890445575]
[17:01:21,215][INFO ][gridgain-#8%CSC 8530 GRID%][GridDeploymentLocalStore]
Task locally deployed: LocalDeploymentClass [undeployed=false, usage=1,
super=GridDeploymentClass                                              [cls=class
edu.villanova.salembier.csc8530.tasks.GridTaskWikiParseLines,
depMode=ISOLATED,              clsLdr=sun.misc.Launcher$AppClassLoader@1a7bf11,
clsLdrId=838d3820-2192-45b6-9f11-a10d20b1427c,         userVer=0,       seqNum=1,
alias=edu.villanova.salembier.csc8530.tasks.GridTaskWikiParseLines,
local=true]]
[17:01:21,215][INFO                    ][gridgain-#7%CSC                     8530
GRID%][GridDeploymentPerLoaderStore] Task was deployed in Private or Isolated
mode:                       GridDeploymentClass                        [cls=class
edu.villanova.salembier.csc8530.tasks.GridTaskWikiParseLines,
depMode=ISOLATED,       clsLdr=GridDeploymentClassLoader        [singleNode=true,
nodeLdrMap={6cd51739-8238-4593-93d6-3136bc6ac4ab=GridPair         [val1=c4fc2481-
4449-4ee2-8e72-b95894ea978e, val2=1]}, p2pTimeout=5000], clsLdrId=c4fc2481-
4449-4ee2-8e72-b95894ea978e,                 userVer=0,                 seqNum=1,
alias=edu.villanova.salembier.csc8530.tasks.GridTaskWikiParseLines,
local=false]
[17:01:21,230][DEBUG][gridgain-#9%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter Register Start
[17:01:21,230][INFO ][gridgain-#9%CSC 8530 GRID%][root] Initializing Steal
Factory...
[17:01:21,246][INFO ][gridgain-#9%CSC 8530 GRID%][root] Using default Block
Manger
[17:01:21,246][INFO ][gridgain-#9%CSC 8530 GRID%][root] User Block Thread
started
[17:01:21,230][DEBUG][gridgain-#10%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter Register Start
[17:01:21,246][INFO ][gridgain-#9%CSC 8530 GRID%][root] User Activity Monitor
started
[17:01:21,246][INFO ][gridgain-#9%CSC 8530 GRID%][root]       Steal Factory Long
Initialized
[17:01:21,246][DEBUG][gridgain-#9%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter task registered
[17:01:21,246][DEBUG][gridgain-#10%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter task registered


Cycle Stealing                                                           Page 28 of 41
Christopher Salembier                                   CSC-8540: Distributed Systems


[17:01:21,230][INFO ][gridgain-#9%CSC 8530 GRID%][root] Initializing Steal
Factory...
[17:01:21,246][INFO ][gridgain-#9%CSC 8530 GRID%][root] Using default Block
Manger
[17:01:21,246][INFO ][gridgain-#9%CSC 8530 GRID%][root] User Block Thread
started
[17:01:21,230][DEBUG][gridgain-#10%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter Register Start
[17:01:21,246][INFO ][gridgain-#9%CSC 8530 GRID%][root] User Activity Monitor
started
[17:01:21,246][INFO ][gridgain-#9%CSC 8530 GRID%][root]    Steal Factory Long
Initialized
[17:01:21,246][DEBUG][gridgain-#9%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter task registered
[17:01:21,246][DEBUG][gridgain-#10%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter task registered
[17:01:21,246][DEBUG][gridgain-#9%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter excute pre process
[17:01:21,246][DEBUG][gridgain-#10%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter excute pre process
[17:01:21,246][DEBUG][gridgain-#9%CSC 8530 GRID%][GridJobWikiParseIdleLines]
edu.villanova.salembier.csc8530.jobs.GridJobWikiParseIdleLines@1248f2b
processing 78 bytes
[17:01:21,246][DEBUG][gridgain-#10%CSC 8530 GRID%][GridJobWikiParseIdleLines]
edu.villanova.salembier.csc8530.jobs.GridJobWikiParseIdleLines@1336006
processing 93750 bytes

[17:01:22,340][DEBUG][gridgain-#77%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter unregister complete
[17:01:22,340][INFO     ][Thread-3][root]      Task     0de270ad-dc76-4a13-8829-
19f470a0c76d deployed to grid node 98eee4cb-8326-4ff1-a343-ef99c7430f05, 1
jobs outstanding.
[17:01:22,340][DEBUG][gridgain-#45%CSC    8530    GRID%][GridTaskWikiParseLines]
121# deployed to node GridMulticastDiscoveryNode [id=98eee4cb-8326-4ff1-a343-
ef99c7430f05, state=READY, lastHeartbeat=1257890481105, addr=/192.168.100.30,
tcpPort=47300, startTime=1257890445575]
[17:01:22,355][DEBUG][gridgain-#78%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter Register Start
[17:01:22,355][DEBUG][gridgain-#78%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter task registered
[17:01:22,355][DEBUG][gridgain-#78%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter excute pre process
[17:01:22,355][DEBUG][gridgain-#78%CSC 8530 GRID%][GridJobWikiParseIdleLines]
edu.villanova.salembier.csc8530.jobs.GridJobWikiParseIdleLines@4eff2c
processing 18060 bytes
[17:01:22,355][DEBUG][gridgain-#78%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Processing full article for Amphibian
[17:01:22,355][DEBUG][gridgain-#78%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter execute post process
[17:01:22,355][DEBUG][gridgain-#78%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter unregister
[17:01:22,355][DEBUG][gridgain-#78%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter unregister complete
[17:01:22,355][INFO     ][Thread-3][root]      Task     8b3c69d9-61c1-4e59-aa62-
c7af66afd695 deployed to grid node 98eee4cb-8326-4ff1-a343-ef99c7430f05, 1
jobs outstanding.

Cycle Stealing                                                          Page 29 of 41
Christopher Salembier                                  CSC-8540: Distributed Systems


[17:01:22,355][INFO ][Thread-3][root] Task Assign Thread Completed, 1543956
processed
[17:01:22,355][DEBUG][gridgain-#46%CSC   8530   GRID%][GridTaskWikiParseLines]
122# deployed to node GridMulticastDiscoveryNode [id=98eee4cb-8326-4ff1-a343-
ef99c7430f05, state=READY, lastHeartbeat=1257890481105, addr=/192.168.100.30,
tcpPort=47300, startTime=1257890445575]
[17:01:22,355][DEBUG][gridgain-#46%CSC   8530   GRID%][GridTaskWikiParseLines]
123# deployed to node GridMulticastDiscoveryNode [id=98eee4cb-8326-4ff1-a343-
ef99c7430f05, state=READY, lastHeartbeat=1257890481105, addr=/192.168.100.30,
tcpPort=47300, startTime=1257890445575]
[17:01:22,355][DEBUG][gridgain-#46%CSC   8530   GRID%][GridTaskWikiParseLines]
124# deployed to node GridMulticastDiscoveryNode [id=98eee4cb-8326-4ff1-a343-
ef99c7430f05, state=READY, lastHeartbeat=1257890481105, addr=/192.168.100.30,
tcpPort=47300, startTime=1257890445575]
[17:01:22,355][DEBUG][gridgain-#81%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter Register Start
[17:01:22,355][DEBUG][gridgain-#81%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter task registered
[17:01:22,355][DEBUG][gridgain-#81%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter excute pre process
[17:01:22,355][DEBUG][gridgain-#81%CSC 8530 GRID%][GridJobWikiParseIdleLines]
edu.villanova.salembier.csc8530.jobs.GridJobWikiParseIdleLines@bbd1b
processing 50 bytes
[17:01:22,371][DEBUG][gridgain-#81%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Processing redirect for Aves
[17:01:22,371][DEBUG][gridgain-#81%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter execute post process
[17:01:22,371][DEBUG][gridgain-#85%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter Register Start
[17:01:22,371][DEBUG][gridgain-#81%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter unregister
[17:01:22,371][DEBUG][gridgain-#85%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter task registered
[17:01:22,371][DEBUG][gridgain-#84%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter Register Start
[17:01:22,371][DEBUG][gridgain-#81%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter unregister complete
[17:01:22,371][DEBUG][gridgain-#85%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter excute pre process
[17:01:22,371][DEBUG][gridgain-#84%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter task registered
[17:01:22,371][DEBUG][gridgain-#85%CSC 8530 GRID%][GridJobWikiParseIdleLines]
edu.villanova.salembier.csc8530.jobs.GridJobWikiParseIdleLines@5dc268
processing 72 bytes
[17:01:22,371][DEBUG][gridgain-#84%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter excute pre process
[17:01:22,371][DEBUG][gridgain-#85%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Processing redirect for Albert Arnold Gore/Criticisms
[17:01:22,371][DEBUG][gridgain-#84%CSC 8530 GRID%][GridJobWikiParseIdleLines]
edu.villanova.salembier.csc8530.jobs.GridJobWikiParseIdleLines@1e6743e
processing 86703 bytes
[17:01:22,371][DEBUG][gridgain-#85%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter execute post process
[17:01:22,371][DEBUG][gridgain-#85%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter unregister


Cycle Stealing                                                         Page 30 of 41
Christopher Salembier                                               CSC-8540: Distributed Systems


[17:01:22,371][DEBUG][gridgain-#85%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter unregister complete
[17:01:22,387][DEBUG][gridgain-#84%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Processing full article for Alaska
[17:01:22,387][DEBUG][gridgain-#84%CSC 8530 GRID%][GridJobWikiParseIdleLines]

7.3.7   Test 2.2
[17:05:36,925][DEBUG][gridgain-#7%CSC 8530 GRID%][GridTaskWikiParseLines] 0#
deployed   to   node  GridMulticastDiscoveryNode  [id=06140f4f-a2dd-4f55-be70-
1ca5637a7d5e, state=READY, lastHeartbeat=1257890736488, addr=/192.168.100.30,
tcpPort=47301, startTime=1257890736472]
[17:05:36,925][DEBUG][gridgain-#7%CSC 8530 GRID%][GridTaskWikiParseLines] 1#
deployed   to   node  GridMulticastDiscoveryNode  [id=06140f4f-a2dd-4f55-be70-
1ca5637a7d5e, state=READY, lastHeartbeat=1257890736488, addr=/192.168.100.30,
tcpPort=47301, startTime=1257890736472]
[17:05:37,019][DEBUG][gridgain-#9%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter Register Start
[17:05:37,019][DEBUG][gridgain-#10%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter Register Start
[17:05:37,019][DEBUG][gridgain-#9%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter Pasue Pre Lock
[17:05:37,019][DEBUG][gridgain-#9%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter Pasue post Lock
[17:05:37,019][DEBUG][gridgain-#9%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter pausing waiting
[17:05:37,019][DEBUG][gridgain-#9%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter Pasue unlock
[17:05:37,019][DEBUG][gridgain-#9%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter task registered
[17:05:37,019][DEBUG][gridgain-#9%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter excute pre process
[17:05:37,019][DEBUG][gridgain-#9%CSC 8530 GRID%][GridJobWikiParseIdleLines]
edu.villanova.salembier.csc8530.jobs.GridJobWikiParseIdleLines@1ee0637
processing 78 bytes
[17:05:37,019][DEBUG][gridgain-#10%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter Pasue Pre Lock
[17:05:37,019][DEBUG][gridgain-#10%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter Pasue post Lock
[17:05:37,019][DEBUG][gridgain-#10%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter pausing waiting
[17:05:37,019][DEBUG][gridgain-#10%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter Pasue unlock
[
[17:05:37,066][DEBUG][gridgain-#8%CSC 8530 GRID%][GridTaskWikiParseLines] 2#
deployed   to   node  GridMulticastDiscoveryNode  [id=06140f4f-a2dd-4f55-be70-
1ca5637a7d5e, state=READY, lastHeartbeat=1257890736488, addr=/192.168.100.30,
tcpPort=47301, startTime=1257890736472]
  [17:05:37,081][DEBUG][gridgain-#12%CSC                                  8530
GRID%][GridJobWikiParseIdleLines] Adapter Register Start
[17:05:37,081][DEBUG][gridgain-#12%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter Pasue Pre Lock
[17:05:37,081][DEBUG][gridgain-#12%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter Pasue post Lock
[17:05:37,081][DEBUG][gridgain-#12%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter pausing waiting

Cycle Stealing                                                                      Page 31 of 41
Christopher Salembier                                                   CSC-8540: Distributed Systems


[17:05:37,097][DEBUG][gridgain-#15%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter Register Start
[17:05:37,113][DEBUG][gridgain-#30%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Processing redirect for AfghanistanMilitary


7.3.8 Test 2.2 – Retest
Jobs stop…
[16:57:52,507][INFO ][gridgain-#11%null%][root] System Activity Monitor started
[16:57:52,507][INFO ][gridgain-#11%null%][root] Block Thread Started
[16:57:52,507][INFO ][Block Thread][root] Block Thread checking system state value of 2,609 ms
[16:57:52,507][INFO ][gridgain-#11%null%][root] Steal Factory Long Initialized
[16:57:52,507][INFO     ][gridgain-#11%null%][root]    Steal    Block     Manager      registering  job
edu.villanova.salembier.csc8530.jobs.GridJobWikiParseIdleLines@ab835a
[16:57:52,507][INFO ][Block Thread][root] Steal Block Manager pausing 0 registered jobs
[16:57:52,507][INFO     ][gridgain-#12%null%][root]    Steal    Block     Manager      registering  job
edu.villanova.salembier.csc8530.jobs.GridJobWikiParseIdleLines@3cbb4b
[16:57:52,507][INFO ][gridgain-#11%null%][root] Steal Block Manager job registered
[16:57:52,523][INFO ][gridgain-#12%null%][root] Steal Block Manager job registered
[16:57:52,523][INFO ][gridgain-#11%null%][GridJobWikiParseIdleLines] Steal Adapter pausing running
job of 93,750 byes
[16:57:52,523][INFO ][gridgain-#12%null%][GridJobWikiParseIdleLines] Steal Adapter pausing running
job of 78 byes
[16:57:52,523][INFO ][gridgain-#11%null%][GridJobWikiParseIdleLines] Steal Adapter pausing running
job of 93,750 byes
[16:57:52,523][INFO ][gridgain-#12%null%][GridJobWikiParseIdleLines] Steal Adapter pausing running
job of 78 byes
[16:57:52,523][INFO ][Thread-5][GridJobWikiParseIdleLines] Steal Adapter pausing running job of 93,750
byes
[16:57:52,523][INFO ][Thread-5][GridJobWikiParseIdleLines] Steal Adapter pausing running job of 93,750
byes
[16:57:52,523][INFO ][Thread-5][GridJobWikiParseIdleLines] Steal Adapter did not pause because the
job is already waiting
[16:57:52,523][INFO ][Thread-5][GridJobWikiParseIdleLines] Steal Adapter did not pause because the
job is already waiting
[16:57:53,007][INFO ][Block Thread][root] Block Thread checking system state value of 3,109 ms
[16:57:53,507][INFO ][Block Thread][root] Block Thread checking system state value of 3,609 ms
[16:57:53,882][INFO     ][main][GridMulticastDiscoverySpi]     SPI     started    ok     [startMs=3031,
spiMBean=org.gridgain:grid=CSC 8530 GRID,group=SPIs,name=GridMulticastDiscoverySpi]
[16:57:53,882][INFO ][main][GridDiscoveryManager]
And Starting…
[16:57:54,007][INFO ][Block Thread][root] Block Thread checking system state value of 4,109 ms
[16:57:54,507][INFO ][Block Thread][root] Block Thread checking system state value of 4,609 ms
[16:57:55,007][INFO ][Block Thread][root] Block Thread checking system state value of 5,109 ms
[16:57:55,007][INFO ][Block Thread][root] Steal Block Manager notifying 2 registered jobs
[16:57:55,007][INFO ][Block Thread][GridJobWikiParseIdleLines] Steal Adapter waking job of 93,750
bytes


Cycle Stealing                                                                           Page 32 of 41
Christopher Salembier                                                   CSC-8540: Distributed Systems


[16:57:55,007][INFO ][Block Thread][GridJobWikiParseIdleLines] Steal Adapter waking job of 93,750
bytes
[16:57:55,007][INFO ][Block Thread][GridJobWikiParseIdleLines] Steal Adapter wake lock released
[16:57:55,007][INFO ][Block Thread][GridJobWikiParseIdleLines] Steal Adapter wake lock released
[16:57:55,007][INFO ][gridgain-#11%null%][GridJobWikiParseIdleLines] Steal Adapter pause lock
released
[16:57:55,007][INFO ][gridgain-#11%null%][GridJobWikiParseIdleLines] Steal Adapter pause lock
released
[16:57:55,023][INFO ][Block Thread][GridJobWikiParseIdleLines] Steal Adapter waking job of 78 bytes
[16:57:55,023][INFO ][Block Thread][GridJobWikiParseIdleLines] Steal Adapter waking job of 78 bytes
[16:57:55,023][INFO               ][gridgain-#11%null%][GridJobWikiParseIdleLines]                Start
edu.villanova.salembier.csc8530.jobs.GridJobWikiParseIdleLines@ab835a processing 93,750 bytes
[16:57:55,023][INFO               ][gridgain-#11%null%][GridJobWikiParseIdleLines]                Start
edu.villanova.salembier.csc8530.jobs.GridJobWikiParseIdleLines@ab835a processing 93,750 bytes
[16:57:55,023][INFO ][gridgain-#12%null%][GridJobWikiParseIdleLines] Steal Adapter pause lock
released
[16:57:55,023][INFO ][gridgain-#12%null%][GridJobWikiParseIdleLines] Steal Adapter pause lock
released

7.3.9 Test 2.3
[17:07:28,028][INFO ][gridgain-#10%null%][GridJobWikiParseIdleLines] Steal Adapter pausing running
job of 64 byes
[17:07:28,028][INFO ][gridgain-#2%null%][root] Steal Block Manager job registered
[17:07:28,028][INFO ][gridgain-#10%null%][GridJobWikiParseIdleLines] Steal Adapter pausing running
job of 64 byes
[17:07:28,028][INFO ][gridgain-#2%null%][GridJobWikiParseIdleLines] Steal Adapter pausing running job
of 21,106 byes
[17:07:28,028][INFO ][gridgain-#2%null%][GridJobWikiParseIdleLines] Steal Adapter pausing running job
of 21,106 byes
[17:07:28,231][INFO ][Block Thread][root] Block Thread checking system state value of 640 ms
[17:07:28,731][INFO ][Block Thread][root] Block Thread checking system state value of 15 ms
[17:07:29,231][INFO ][Block Thread][root] Block Thread checking system state value of 0 ms
[17:07:29,731][INFO ][Block Thread][root] Block Thread checking system state value of 500 ms
[17:07:30,231][INFO ][Block Thread][root] Block Thread checking system state value of 1,000 ms
[17:07:30,731][INFO ][Block Thread][root] Block Thread checking system state value of 1,500 ms
[17:07:31,231][INFO ][Block Thread][root] Block Thread checking system state value of 2,000 ms
[17:07:31,731][INFO ][Block Thread][root] Block Thread checking system state value of 2,500 ms
[17:07:32,231][INFO ][Block Thread][root] Block Thread checking system state value of 3,000 ms
[17:07:32,731][INFO ][Block Thread][root] Block Thread checking system state value of 3,500 ms
[17:07:33,231][INFO ][Block Thread][root] Block Thread checking system state value of 4,000 ms
[17:07:33,731][INFO ][Block Thread][root] Block Thread checking system state value of 4,500 ms
[17:07:34,231][INFO ][Block Thread][root] Block Thread checking system state value of 5,000 ms
[17:07:34,231][INFO ][Block Thread][root] Steal Block Manager notifying 7 registered jobs
[17:07:34,231][INFO ][Block Thread][GridJobWikiParseIdleLines] Steal Adapter waking job of 73 bytes
[17:07:34,231][INFO ][Block Thread][GridJobWikiParseIdleLines] Steal Adapter waking job of 73 bytes
[17:07:34,231][INFO ][Block Thread][GridJobWikiParseIdleLines] Steal Adapter wake lock released
[17:07:34,231][INFO ][Block Thread][GridJobWikiParseIdleLines] Steal Adapter wake lock released

Cycle Stealing                                                                           Page 33 of 41
Christopher Salembier                                                  CSC-8540: Distributed Systems


[17:07:34,231][INFO ][gridgain-#12%null%][GridJobWikiParseIdleLines] Steal Adapter pause         lock
released
[17:07:34,231][INFO ][gridgain-#12%null%][GridJobWikiParseIdleLines] Steal Adapter pause         lock
released
[17:07:34,231][INFO               ][gridgain-#12%null%][GridJobWikiParseIdleLines]              Start
edu.villanova.salembier.csc8530.jobs.GridJobWikiParseIdleLines@1d45dd9 processing 73 bytes
[17:07:34,231][INFO               ][gridgain-#12%null%][GridJobWikiParseIdleLines]              Start
edu.villanova.salembier.csc8530.jobs.GridJobWikiParseIdleLines@1d45dd9 processing 73 bytes

17:07:35,543][INFO     ][gridgain-#10%null%][root]    Steal    Block    Manager       registering job
edu.villanova.salembier.csc8530.jobs.GridJobWikiParseIdleLines@16e679d
[17:07:35,543][INFO ][gridgain-#10%null%][root] Steal Block Manager job registered
[17:07:35,543][INFO ][gridgain-#10%null%][GridJobWikiParseIdleLines] Steal Adapter pausing running
job of 57 byes
[17:07:35,543][INFO ][gridgain-#10%null%][GridJobWikiParseIdleLines] Steal Adapter pausing running
job of 57 byes
[17:07:35,731][INFO ][Block Thread][root] Block Thread checking system state value of 703 ms
[17:07:36,231][INFO ][Block Thread][root] Block Thread checking system state value of 1,203 ms

7.3.10 Test 2.4
>>> -------------------
>>> Discovery Snapshot.
>>> -------------------
>>> Number of nodes: 3
>>> Topology hash: 0x21D84275
>>> Local: 366B8DA6-4FBF-46A1-8C52-5D335B47AD9E, 192.168.100.30, Windows XP x86 5.1,
CSalembier, Java(TM) SE Runtime Environment 1.6.0_17-b04
>>> Remote: 0DBFF968-D45D-419B-B170-1E15872400B8, 192.168.100.30, Windows XP x86 5.1,
CSalembier, Java(TM) SE Runtime Environment 1.6.0_17-b04
>>> Remote: 47CBB382-F011-422C-A424-8285AFA2C519, 192.168.100.23, Windows Vista x86 6.0,
CSalembier, Java(TM) SE Runtime Environment 1.6.0-rc-b99
>>> Total number of CPUs: 4

[17:14:15,619][INFO ][gridgain-#13%CSC 8530 GRID%][root] Result for task 64db7ac9-d33e-4eab-8e08-
4b3d5ac23016 processed & removed from futures list, 1 jobs outstanding.
[17:14:15,807][INFO ][Block Thread][root] Block Thread checking system state value of 0 ms
[17:14:16,088][INFO ][Thread-2][root] Task ee482815-abeb-4375-a335-618e889c14ac deployed to grid
node 47cbb382-f011-422c-a424-8285afa2c519, 2 jobs outstanding.
[17:14:16,104][INFO ][gridgain-#11%CSC 8530 GRID%][root] Result for task ee482815-abeb-4375-a335-
618e889c14ac processed & removed from futures list, 1 jobs outstanding.
[17:14:16,307][INFO ][Block Thread][root] Block Thread checking system state value of 0 ms
[17:14:16,588][INFO ][Thread-2][root] Task 6264321f-37e8-4e33-90f4-b3ee7df919fa deployed to grid
node 47cbb382-f011-422c-a424-8285afa2c519, 2 jobs outstanding.
[17:14:16,588][INFO ][Thread-2][root] Task Assign Thread Completed, 1,024,471 processed
[17:14:16,619][INFO ][gridgain-#15%CSC 8530 GRID%][root] Result for task 6264321f-37e8-4e33-90f4-
b3ee7df919fa processed & removed from futures list, 1 jobs outstanding.


Cycle Stealing                                                                         Page 34 of 41
Christopher Salembier                                                 CSC-8540: Distributed Systems


7.3.11 Test 3.1
[17:30:18,612][INFO ][gridgain-#9%CSC 8530 GRID%][root] Initializing Steal
Factory...
[17:30:18,612][INFO ][gridgain-#9%CSC 8530 GRID%][root] Using default Block
Manger
[17:30:18,612][INFO ][gridgain-#9%CSC 8530 GRID%][root] CPU Block Thread
Started
[17:30:18,612][INFO ][Thread-3][root] CPU Thread Block 0
[17:30:18,612][INFO ][gridgain-#9%CSC 8530 GRID%][root] System Activity
Monitor started
[17:30:18,612][INFO ][gridgain-#9%CSC 8530 GRID%][root]    Steal Factory Long
Initialized
[17:30:18,612][DEBUG][gridgain-#9%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter task registered
[17:30:18,612][DEBUG][gridgain-#8%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter task registered
[17:30:18,612][DEBUG][gridgain-#9%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter excute pre process
[17:30:18,612][DEBUG][gridgain-#8%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter excute pre process
[17:30:18,612][DEBUG][gridgain-#9%CSC 8530 GRID%][GridJobWikiParseIdleLines]
edu.villanova.salembier.csc8530.jobs.GridJobWikiParseIdleLines@75c78d
processing 93750 bytes
[17:30:18,612][DEBUG][gridgain-#8%CSC 8530 GRID%][GridJobWikiParseIdleLines]
edu.villanova.salembier.csc8530.jobs.GridJobWikiParseIdleLines@800aa1 processing 78 bytes

7.3.12 Test 3.2
[17:36:46,162][INFO ][main][root] Grid CSC 8530 GRID successfully started
[17:36:46,162][INFO   ][main][root]    Task  Assign   Thread   Created,   parsing
wiki_lines_in.txt(size=20524531876)
[17:36:46,162][INFO ][Thread-3][root] Task Assign Thread Starting
[17:36:46,162][INFO ][main][root] Result Writer Thread Created with 3 output
files
[17:36:46,162][INFO ][main][root] Starting with...
[17:36:46,162][INFO ][Thread-4][root] Result Writer Thread Starting
[17:36:46,162][INFO      ][main][root]      Node:     GridMulticastDiscoveryNode
[id=2a7c05a0-bd18-4084-a949-d249ce0dbc2f,                            state=READY,
lastHeartbeat=1257892606115,        addr=/192.168.100.30,          tcpPort=47300,
startTime=1257892598131]
[17:36:46,162][INFO ][main][root] 1 active nodes
[17:36:46,178][INFO    ][Thread-3][GridDeploymentLocalStore]      Task    locally
deployed:        LocalDeploymentClass         [undeployed=false,         usage=0,
super=GridDeploymentClass                                              [cls=class
edu.villanova.salembier.csc8530.tasks.GridTaskWikiParseLines,
depMode=ISOLATED,              clsLdr=sun.misc.Launcher$AppClassLoader@1a7bf11,
clsLdrId=822c0ba4-d122-4549-b141-cffbcd2c25cd,         userVer=0,       seqNum=1,
alias=edu.villanova.salembier.csc8530.tasks.GridTaskWikiParseLines,
local=true]]
[17:36:46,178][INFO     ][Thread-3][root]      Task     7527cf83-1659-4537-b5bd-
c27259b3d562 deployed to grid node 2a7c05a0-bd18-4084-a949-d249ce0dbc2f, 1
jobs outstanding.
[17:36:46,194][DEBUG][gridgain-#7%CSC 8530 GRID%][GridTaskWikiParseLines] 0#
deployed  to   node   GridMulticastDiscoveryNode    [id=2a7c05a0-bd18-4084-a949-
d249ce0dbc2f, state=READY, lastHeartbeat=1257892606115, addr=/192.168.100.30,
tcpPort=47300, startTime=1257892598131]
Cycle Stealing                                                                        Page 35 of 41
Christopher Salembier                                   CSC-8540: Distributed Systems


[17:36:46,194][DEBUG][gridgain-#7%CSC 8530 GRID%][GridTaskWikiParseLines] 1#
deployed   to   node GridMulticastDiscoveryNode    [id=2a7c05a0-bd18-4084-a949-
d249ce0dbc2f, state=READY, lastHeartbeat=1257892606115, addr=/192.168.100.30,
tcpPort=47300, startTime=1257892598131]
[17:36:46,240][INFO ][gridgain-#8%CSC 8530 GRID%][GridDeploymentLocalStore]
Task locally deployed: LocalDeploymentClass [undeployed=false, usage=1,
super=GridDeploymentClass                                             [cls=class
edu.villanova.salembier.csc8530.tasks.GridTaskWikiParseLines,
depMode=ISOLATED,              clsLdr=sun.misc.Launcher$AppClassLoader@1a7bf11,
clsLdrId=229f54cc-2b49-43c3-89e1-0be7b7cff266,        userVer=0,       seqNum=1,
alias=edu.villanova.salembier.csc8530.tasks.GridTaskWikiParseLines,
local=true]]
[17:36:46,256][INFO                    ][gridgain-#7%CSC                    8530
GRID%][GridDeploymentPerLoaderStore] Task was deployed in Private or Isolated
mode:                       GridDeploymentClass                       [cls=class
edu.villanova.salembier.csc8530.tasks.GridTaskWikiParseLines,
depMode=ISOLATED,       clsLdr=GridDeploymentClassLoader       [singleNode=true,
nodeLdrMap={b88ad3fd-36ac-455a-baae-d503aec4b953=GridPair        [val1=822c0ba4-
d122-4549-b141-cffbcd2c25cd, val2=1]}, p2pTimeout=5000], clsLdrId=822c0ba4-
d122-4549-b141-cffbcd2c25cd,                 userVer=0,                seqNum=1,
alias=edu.villanova.salembier.csc8530.tasks.GridTaskWikiParseLines,
local=false]
[17:36:46,272][DEBUG][gridgain-#9%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter Register Start
[17:36:46,272][INFO ][gridgain-#9%CSC 8530 GRID%][root] Initializing Steal
Factory...
[17:36:46,272][INFO ][gridgain-#9%CSC 8530 GRID%][root] CPU Block Thread
Started
[17:36:46,272][INFO ][gridgain-#9%CSC 8530 GRID%][root] System Activity
Monitor started
[17:36:46,272][INFO ][gridgain-#9%CSC 8530 GRID%][root]      Steal Factory Long
Initialized
[17:36:46,272][INFO ][gridgain-#9%CSC 8530 GRID%][root] BLOCK:Add Pre Lock
[17:36:46,272][INFO ][gridgain-#9%CSC 8530 GRID%][root] BLOCK:Add Post Lock
[17:36:46,272][DEBUG][gridgain-#8%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter Register Start
[17:36:46,272][INFO ][gridgain-#8%CSC 8530 GRID%][root] BLOCK:Add Pre Lock
[17:36:46,272][INFO ][gridgain-#9%CSC 8530 GRID%][root] BLOCK:Adding task
edu.villanova.salembier.csc8530.jobs.GridJobWikiParseIdleLines@1dbb27d
[17:36:46,272][INFO ][gridgain-#9%CSC 8530 GRID%][root] BLOCK:Task addded
[17:36:46,272][INFO ][gridgain-#9%CSC 8530 GRID%][root] BLOCK:Add unlocked
[17:36:46,272][INFO ][gridgain-#8%CSC 8530 GRID%][root] BLOCK:Add Post Lock
[17:36:46,272][DEBUG][gridgain-#9%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter task registered
[17:36:46,272][INFO ][gridgain-#8%CSC 8530 GRID%][root] BLOCK:Adding task
edu.villanova.salembier.csc8530.jobs.GridJobWikiParseIdleLines@f221f6
[17:36:46,272][INFO ][gridgain-#8%CSC 8530 GRID%][root] BLOCK:Task addded
[17:36:46,272][DEBUG][gridgain-#9%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter excute pre process
[17:36:46,272][INFO ][gridgain-#8%CSC 8530 GRID%][root] BLOCK:Add unlocked
[17:36:46,272][DEBUG][gridgain-#9%CSC 8530 GRID%][GridJobWikiParseIdleLines]
edu.villanova.salembier.csc8530.jobs.GridJobWikiParseIdleLines@1dbb27d
processing 78 bytes
[17:36:46,272][DEBUG][gridgain-#8%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter task registered


Cycle Stealing                                                          Page 36 of 41
Christopher Salembier                                                     CSC-8540: Distributed Systems


[17:36:46,272][DEBUG][gridgain-#8%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter excute pre process
[17:36:46,287][DEBUG][gridgain-#8%CSC 8530 GRID%][GridJobWikiParseIdleLines]
edu.villanova.salembier.csc8530.jobs.GridJobWikiParseIdleLines@f221f6
processing 93750 bytes
[17:36:46,287][DEBUG][gridgain-#9%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Processing redirect for AccessibleComputing
[17:36:46,287][DEBUG][gridgain-#9%CSC 8530 GRID%][GridJobWikiParseIdleLines]
Adapter execute post process
[17:36:46,287][DEBUG][gridgain-#9%CSC 8530 GRID%][GridJobWikiParseIdleLines] Adapter unregister

7.3.13 Test 3.2 – Retest
[17:28:06,941][INFO ][main][root] Steal Block Manager initialized
[17:28:06,941][INFO ][main][root] Block Thread initialized
[17:28:07,488][INFO ][main][root] System Activity Monitor initialized with refresh interval of 500 ms
[17:28:07,582][INFO ][main][GridKernal%CSC 8530 GRID]
  _____ _ _ _____             _
 / ____| (_) | |/ ____| (_)
| | __ _ __ _ __| | | __ __ _ _ _ __
| | |_ | '__| |/ _` | | |_ |/ _` | | '_ \
| |__| | | | | (_| | |__| | (_| | | | | |
 \_____|_| |_|\__,_|\_____|\__,_|_|_| |_|

>>> GridGain ver. 2.1.1-26022009
>>> Copyright (C) 2005-2009 GridGain Systems.

[17:28:07,582][INFO ][main][GridKernal%CSC 8530 GRID] GRIDGAIN_HOME=C:\Program Files\gridgain-
2.1.1

>>> -----------------------------------------------
>>> GridGain ver. 2.1.1-26022009 STOPPED OK in 0ms.
>>> -----------------------------------------------
>>> Optional instance name: CSC 8530 GRID
>>> Grid up time: 00:00:03:203

7.3.14 Test 3.3
[17:34:02,160][INFO ][gridgain-#1%null%][root] System Activity Monitor started
[17:34:02,160][INFO ][gridgain-#1%null%][root] Block Thread Started
[17:34:02,160][INFO ][gridgain-#1%null%][root] Steal Factory Long Initialized
[17:34:02,160][INFO     ][gridgain-#1%null%][root]     Steal   Block       Manager  registering   job
edu.villanova.salembier.csc8530.jobs.GridJobWikiParseIdleLines@1140709
[17:34:02,097][INFO ][gridgain-#5%null%][GridJobWikiParseIdleLines] Steal Adapter pausing running job
of 91 byes
[17:34:02,160][INFO ][gridgain-#1%null%][root] Steal Block Manager job registered
[17:34:02,160][INFO                 ][gridgain-#1%null%][GridJobWikiParseIdleLines]             Start
edu.villanova.salembier.csc8530.jobs.GridJobWikiParseIdleLines@1140709 processing 69 bytes
[17:34:02,113][INFO ][Thread-4][GridJobWikiParseIdleLines] Steal Adapter pausing running job of 79
byes


Cycle Stealing                                                                              Page 37 of 41
Christopher Salembier                                                   CSC-8540: Distributed Systems


[17:34:02,160][INFO                 ][gridgain-#1%null%][GridJobWikiParseIdleLines]               Start
edu.villanova.salembier.csc8530.jobs.GridJobWikiParseIdleLines@1140709 processing 69 bytes
[17:34:02,066][INFO ][Thread-5][GridJobWikiParseIdleLines] Steal Adapter pausing running job of 79
byes
[17:34:02,097][INFO ][gridgain-#5%null%][GridJobWikiParseIdleLines] Steal Adapter pausing running job
of 91 byes
[17:34:02,066][INFO ][Thread-7][GridJobWikiParseIdleLines] Steal Adapter pausing running job of 76
byes
[17:34:02,175][INFO ][gridgain-#9%null%][GridJobWikiParseIdleLines] Steal Adapter registering new job
[17:34:02,175][INFO ][Block Thread][root] Block Thread checking system state value of 47 ms
[17:34:02,175][INFO ][Block Thread][root] Steal Block Manager pausing 1 registered jobs
[17:34:02,175][INFO ][gridgain-#5%null%][GridJobWikiParseIdleLines] Steal Adapter registering new job
[17:34:02,175][INFO ][gridgain-#9%null%][GridJobWikiParseIdleLines] Steal Adapter registering new job
[17:34:02,175][INFO ][gridgain-#2%null%][GridJobWikiParseIdleLines] Steal Adapter registering new job
[17:34:02,175][INFO     ][gridgain-#9%null%][root]     Steal   Block    Manager       registering   job
edu.villanova.salembier.csc8530.jobs.GridJobWikiParseIdleLines@1dd7bc5
[17:34:02,175][INFO ][gridgain-#5%null%][GridJobWikiParseIdleLines] Steal Adapter registering new job
[17:34:02,175][INFO     ][gridgain-#5%null%][root]     Steal   Block    Manager       registering   job
edu.villanova.salembier.csc8530.jobs.GridJobWikiParseIdleLines@1e8c585
[17:34:02,191][INFO ][gridgain-#5%null%][root] Steal Block Manager job registered
[17:34:02,191][INFO ][gridgain-#9%null%][root] Steal Block Manager job registered
[17:34:02,175][INFO ][gridgain-#4%null%][GridJobWikiParseIdleLines] Steal Adapter registering new job
[17:34:02,175][INFO ][gridgain-#4%null%][GridJobWikiParseIdleLines] Steal Adapter registering new job
[17:34:02,191][INFO     ][gridgain-#4%null%][root]     Steal   Block    Manager       registering   job
edu.villanova.salembier.csc8530.jobs.GridJobWikiParseIdleLines@ffa6eb
[17:34:02,175][INFO ][gridgain-#10%null%][GridJobWikiParseIdleLines] Steal Adapter registering new
job
[17:34:02,191][INFO ][gridgain-#4%null%][root] Steal Block Manager job registered
[17:34:02,191][INFO ][gridgain-#9%null%][GridJobWikiParseIdleLines] Steal Adapter pausing running job
of 73 byes
[17:34:13,956][INFO ][Thread-5][GridLocalDeploymentSpi] SPI stopped ok.
[17:34:13,956][INFO ][Thread-5][GridMemoryEventStorageSpi] SPI stopped ok.
[17:34:13,956][INFO ][Thread-5][GridSharedFsCheckpointSpi] SPI stopped ok.
[17:34:13,956][INFO ][Thread-5][GridTcpCommunicationSpi] SPI stopped ok.
[17:34:13,956][INFO ][Thread-5][GridJdkLocalMetricsSpi] SPI stopped ok.
[17:34:13,956][INFO ][Thread-5][GridKernal%CSC 8530 GRID]

>>> ------------------------------------------------
>>> GridGain ver. 2.1.1-26022009 STOPPED OK in 15ms.
>>> ------------------------------------------------
>>> Optional instance name: CSC 8530 GRID
>>> Grid up time: 00:00:10:984

7.3.15 Test 3.4
[17:42:26,668][INFO               ][gridgain-#12%null%][GridJobWikiParseIdleLines]            Start
edu.villanova.salembier.csc8530.jobs.GridJobWikiParseIdleLines@18782a7 processing 77 bytes
[17:42:26,684][INFO ][gridgain-#11%null%][root] System Activity Monitor started
[17:42:26,684][INFO ][gridgain-#11%null%][root] Block Thread Started
Cycle Stealing                                                                        Page 38 of 41
Christopher Salembier                                                   CSC-8540: Distributed Systems


[17:42:26,684][INFO ][gridgain-#11%null%][root] Steal Factory Long Initialized
[17:42:26,684][INFO     ][gridgain-#11%null%][root]     Steal   Block     Manager     registering   job
edu.villanova.salembier.csc8530.jobs.GridJobWikiParseIdleLines@1a8402c
[17:42:26,684][INFO ][gridgain-#11%null%][root] Steal Block Manager job registered
[17:42:26,653][INFO ][gridgain-#9%null%][GridJobWikiParseIdleLines] Steal Adapter registering new job
[17:42:26,684][INFO     ][gridgain-#9%null%][root]     Steal   Block      Manager     registering   job
edu.villanova.salembier.csc8530.jobs.GridJobWikiParseIdleLines@1f42731
[17:42:26,684][INFO ][gridgain-#9%null%][root] Steal Block Manager job registered
[17:42:26,684][INFO                 ][gridgain-#9%null%][GridJobWikiParseIdleLines]               Start
edu.villanova.salembier.csc8530.jobs.GridJobWikiParseIdleLines@1f42731 processing 91 bytes
[17:42:26,684][INFO                 ][gridgain-#9%null%][GridJobWikiParseIdleLines]               Start
edu.villanova.salembier.csc8530.jobs.GridJobWikiParseIdleLines@1f42731 processing 91 bytes
[17:42:26,684][INFO ][gridgain-#12%null%][root] Steal Block Manager unregistering job
edu.villanova.salembier.csc8530.jobs.GridJobWikiParseIdleLines@18782a7
[17:42:26,668][INFO ][gridgain-#11%null%][GridJobWikiParseIdleLines] Steal Adapter registering new
job
[17:42:26,684][INFO     ][gridgain-#11%null%][root]     Steal   Block     Manager     registering   job
edu.villanova.salembier.csc8530.jobs.GridJobWikiParseIdleLines@130998
[17:42:26,684][INFO ][Block Thread][root] Block Thread checking system state value of 234 ms
[17:42:26,684][INFO                ][gridgain-#11%null%][GridJobWikiParseIdleLines]               Start
edu.villanova.salembier.csc8530.jobs.GridJobWikiParseIdleLines@1a8402c processing 93,750 bytes
[17:42:26,684][INFO ][Block Thread][root] Steal Block Manager pausing 1 registered jobs
[17:42:26,653][INFO ][gridgain-#6%null%][GridJobWikiParseIdleLines] Steal Adapter registering new job
[17:42:26,668][INFO     ][gridgain-#5%null%][root]     Steal   Block      Manager     registering   job
edu.villanova.salembier.csc8530.jobs.GridJobWikiParseIdleLines@1455cf0
[17:42:26,684][INFO ][gridgain-#5%null%][root] Steal Block Manager job registered
[17:42:26,684][INFO                 ][gridgain-#5%null%][GridJobWikiParseIdleLines]               Start
edu.villanova.salembier.csc8530.jobs.GridJobWikiParseIdleLines@1455cf0 processing 79 bytes
[17:42:26,684][INFO                 ][gridgain-#5%null%][GridJobWikiParseIdleLines]               Start
edu.villanova.salembier.csc8530.jobs.GridJobWikiParseIdleLines@1455cf0 processing 79 bytes
[17:42:26,684][INFO ][gridgain-#5%null%][root] Steal Block Manager unregistering job
edu.villanova.salembier.csc8530.jobs.GridJobWikiParseIdleLines@1455cf0
[17:42:26,684][INFO ][gridgain-#5%null%][root] Steal Block Manager job unregistered
[17:42:26,684][INFO ][gridgain-#5%null%][GridJobWikiParseIdleLines] Steal Adapter job successfully
unregistered
[17:42:26,684][INFO ][gridgain-#5%null%][GridJobWikiParseIdleLines] Steal Adapter job successfully
unregistered
[17:42:26,668][INFO ][gridgain-#12%null%][GridJobWikiParseIdleLines] Steal Adapter registering new
job
[17:42:26,684][INFO     ][gridgain-#12%null%][root]     Steal   Block     Manager     registering   job
edu.villanova.salembier.csc8530.jobs.GridJobWikiParseIdleLines@fedfb6
[17:42:26,684][INFO                ][gridgain-#11%null%][GridJobWikiParseIdleLines]               Start
edu.villanova.salembier.csc8530.jobs.GridJobWikiParseIdleLines@1a8402c processing 93,750 bytes
[17:42:26,668][INFO     ][gridgain-#4%null%][root]     Steal   Block      Manager     registering   job
edu.villanova.salembier.csc8530.jobs.GridJobWikiParseIdleLines@14426a6
[17:42:26,684][INFO ][gridgain-#4%null%][root] Steal Block Manager job registered


Cycle Stealing                                                                           Page 39 of 41
Christopher Salembier                                                   CSC-8540: Distributed Systems


[17:42:26,684][INFO                 ][gridgain-#4%null%][GridJobWikiParseIdleLines]               Start
edu.villanova.salembier.csc8530.jobs.GridJobWikiParseIdleLines@14426a6 processing 76 bytes
[17:42:26,668][INFO     ][gridgain-#3%null%][root]     Steal   Block    Manager       registering   job
edu.villanova.salembier.csc8530.jobs.GridJobWikiParseIdleLines@ff45de
[17:42:26,684][INFO ][gridgain-#3%null%][root] Steal Block Manager job registered
[17:42:26,684][INFO                 ][gridgain-#3%null%][GridJobWikiParseIdleLines]               Start
edu.villanova.salembier.csc8530.jobs.GridJobWikiParseIdleLines@ff45de processing 81 bytes
[17:42:26,668][INFO     ][gridgain-#10%null%][root]     Steal   Block    Manager      registering   job
edu.villanova.salembier.csc8530.jobs.GridJobWikiParseIdleLines@1be4663
[17:42:26,684][INFO ][gridgain-#12%null%][root] Steal Block Manager job registered
[17:42:26,684][INFO ][gridgain-#12%null%][GridJobWikiParseIdleLines] Steal Adapter pausing running
job of 78 byes
[17:42:26,684][INFO ][gridgain-#12%null%][GridJobWikiParseIdleLines] Steal Adapter pausing running
job of 78 byes
[17:42:26,684][INFO ][Thread-4][GridJobWikiParseIdleLines] Steal Adapter pausing running job of 93,750
byes
[17:42:26,684][INFO ][Thread-4][GridJobWikiParseIdleLines] Steal Adapter pausing running job of 93,750
byes
[17:42:26,684][INFO ][gridgain-#10%null%][root] Steal Block Manager job registered
[17:42:26,684][INFO                ][gridgain-#10%null%][GridJobWikiParseIdleLines]               Start
edu.villanova.salembier.csc8530.jobs.GridJobWikiParseIdleLines@1be4663 processing 57 bytes
[17:42:26,668][INFO ][Block Thread][root] Block Thread checking system state value of 32 ms
[17:42:26,684][INFO                ][gridgain-#10%null%][GridJobWikiParseIdleLines]               Start
edu.villanova.salembier.csc8530.jobs.GridJobWikiParseIdleLines@1be4663 processing 57 bytes
[17:42:26,700][INFO ][Block Thread][root] Steal Block Manager pausing 7 registered jobs
[17:42:26,700][INFO ][gridgain-#10%null%][root] Steal Block Manager unregistering job
edu.villanova.salembier.csc8530.jobs.GridJobWikiParseIdleLines@1be4663
[17:42:26,684][INFO                 ][gridgain-#3%null%][GridJobWikiParseIdleLines]               Start
edu.villanova.salembier.csc8530.jobs.GridJobWikiParseIdleLines@ff45de processing 81 bytes
[17:42:26,684][INFO                 ][gridgain-#4%null%][GridJobWikiParseIdleLines]               Start
edu.villanova.salembier.csc8530.jobs.GridJobWikiParseIdleLines@14426a6 processing 76 bytes
[17:42:26,700][INFO ][gridgain-#3%null%][root] Steal Block Manager unregistering job
edu.villanova.salembier.csc8530.jobs.GridJobWikiParseIdleLines@ff45de
[17:42:26,700][INFO ][gridgain-#4%null%][root] Steal Block Manager unregistering job
edu.villanova.salembier.csc8530.jobs.GridJobWikiParseIdleLines@14426a6
[17:42:26,684][INFO ][gridgain-#2%null%][root] Steal Block Manager unregistering job
edu.villanova.salembier.csc8530.jobs.GridJobWikiParseIdleLines@120b2da
[17:42:26,684][INFO ][gridgain-#11%null%][root] Steal Block Manager job registered
[17:42:26,684][INFO     ][gridgain-#6%null%][root]     Steal   Block    Manager       registering   job
edu.villanova.salembier.csc8530.jobs.GridJobWikiParseIdleLines@1dae160
[17:42:26,700][INFO ][gridgain-#11%null%][GridJobWikiParseIdleLines] Steal Adapter pausing running
job of 87 byes
[17:42:26,700][INFO ][gridgain-#11%null%][GridJobWikiParseIdleLines] Steal Adapter pausing running
job of 87 byes
[17:42:26,700][INFO ][Thread-5][GridJobWikiParseIdleLines] Steal Adapter pausing running job of 99
byes
[17:42:26,684][INFO ][gridgain-#12%null%][root] Steal Block Manager job unregistered

Cycle Stealing                                                                           Page 40 of 41
Christopher Salembier                                                CSC-8540: Distributed Systems



[17:42:36,715][INFO                ][gridgain-#9%null%][GridJobWikiParseIdleLines]            Start
edu.villanova.salembier.csc8530.jobs.GridJobWikiParseIdleLines@cc7f9e processing 42,750 bytes
[17:42:36,715][INFO ][gridgain-#9%null%][root] Steal Block Manager unregistering job
edu.villanova.salembier.csc8530.jobs.GridJobWikiParseIdleLines@cc7f9e
[17:42:36,715][INFO ][gridgain-#9%null%][root] Steal Block Manager job unregistered
[17:42:36,715][INFO ][gridgain-#9%null%][GridJobWikiParseIdleLines] Steal Adapter job successfully
unregistered
[17:42:36,715][INFO ][gridgain-#9%null%][GridJobWikiParseIdleLines] Steal Adapter job successfully
unregistered
[17:42:36,715][INFO ][gridgain-#11%CSC 8530 GRID%][root] Result for task 627222f4-92bc-495a-8d17-
f7f1a52a8d1e processed & removed from futures list, 0 jobs outstanding.
[17:42:36,715][INFO ][gridgain-#11%CSC 8530 GRID%][root] Stopping Master Node for grid CSC 8530
GRID
[17:42:36,715][INFO ][gridgain-#11%CSC 8530 GRID%][root] Result Writer Thread stopped
[17:42:36,715][INFO ][gridgain-#11%CSC 8530 GRID%][root] Unregistered Master Node as Discovery
Listener
[17:42:36,715][INFO ][gridgain-#11%CSC 8530 GRID%][root] Master Node successfully stopped




Cycle Stealing                                                                        Page 41 of 41

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:0
posted:2/22/2013
language:English
pages:43