90 likes | 239 Views
Christopher Salembier CSC-8530 : Distributed Systems Nov-18-2009. Overview . Java middleware for computational grids Supports annotations Spring framework AOP-based configuration: Spring, aspectj & JBoss Loaders support for most runtime environments
E N D
Christopher Salembier CSC-8530: Distributed Systems Nov-18-2009
Overview • Java middleware for computational grids • Supports annotations • Spring framework • AOP-based configuration: Spring, aspectj & JBoss • Loaders support for most runtime environments • Service Provider Interface-based architecture • Allows runtime environment to adapt seamlessly • All core functions exposed & configurable • Pluggable Fault-tolerance • Peer-to-Peer Class Loading • Redeploy code locally and distributes to all nodes • No build scripts or node restarting required
Affinity map/reduce logic • Core functionality of gird • Process for splitting task into individual jobs • Execute tasks in parallel • Aggregate / reduce results to a final product • Synchronous & Asynchronous deployment • Executor Service • Task Futures • Load balancing • Automatic / configurable failover • Direct execution or annotation based
Configurable Grid SPIs • GridDiscoverySPI – Remote node discovery • Default: GridMulticastDiscoverySpi • Others: GridCoherenceDiscoverySpi, GridJbossDiscoverySpi, GridJgroupsDiscoverySpi, GridJmsDiscoverySpi, GridMailDiscoverySpi, GridMuleDiscoverySpi • GridCommunicationSpi – Inter-node communication • Default: GridTCPCommunicationSPI • Others: Same as discovery
Configurable Grid SPIs • GridEventStorageSpi – Local event storage • Default: GridMemoryEventStorageSpi • Others: None • GridCollisionSpi – Timing of execution • Default: GridFifoQueueCollisionSpi • Others:, GridJobStealingCollisionSpi, GridPriorityQueueCollisionSpi • GridLocalMetricsSpi – Provides node metrics • Default: GridJdkLocalMetricsSpi • Othres: None
Configurable Grid SPIs • GridDeploymentSpi – Deploys tasks and class loaders • Default: GridLocalDeploymentSpi • Others: GridUriDeploymentSpi • GridCheckpointSpi – Save intermediate job state • Default: GridSharedFsCheckpointSpi • Others: GridCoherenceCheckpointSpi, GridDatabaseCheckpointSpi, GridGigaSpacesCheckpointSpi • GridFailoverSpi – Handles job failure • Default: GridAlwaysFailoverSpi • Othres: GridJobStealingFailoverSpi, GridNeverFailoverSpi
Configurable Grid SPIs • GridTopologySpi – What nodes are available at any given point • Default: GridBasicTopologySpi • Others: GridAttributesTopologySpi, GridNodeFilterTopologySpi • GridLoadBalancingSpi – Provides best node for job execution • Default: GridRoundRobinLoadBalancingSpi • Others: GridAdaptiveLoadBalancingSpi, GridAffinityLoadBalancingSpi, GridCoherenceLoadBalancingSpi, GridWeightedRandomLoadBalancingSpi • GridTracingSpi – Pluggable tracing • Default: GridJxinsightTracingSpi • Othres: None
Pros / Cons • Pro • Open Source • Highly configurable • Multiple Java Frameworks • Works for many scenarios “out of the box” • CONS • Poorly documented • Small community • May be overkill for small grid projects