Browse Prior Art Database

Method and System to poll events concurrently based on Block Schedule Algorithm in Multi-Inbound environment

IP.com Disclosure Number: IPCOM000208635D
Publication Date: 2011-Jul-14
Document File: 6 page(s) / 159K

Publishing Venue

The IP.com Prior Art Database

Abstract

This disclosure presents a new method and system to poll events concurrently based on Block Schedule Algorithm - splitting the event table to several blocks which will be dispatched to all registered inbound instances and let all inbounds to process events concurrently without locking the event table. By using this block dispatch algorithm, a new tracking table will be visited instead of the event table to avoid the concurrent issue. All the block information(start/end index) and every inbound throughput will be stored in the tracking table. The refined workflow based on this algorithm will ensure that load balance and fail-over recovery could be achieved.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 35% of the total text.

Page 01 of 6

Method and System to poll events concurrently based on Block Schedule Algorithm in Multi-Inbound environment

   The J2CA specification will allow two types connection: Outbound and Inbound be used to support bi-directional communication between the EIS and Application Component which is deployed on the Application Server. Traditionally, there is only one active inbound instance in the application environment and it will poll eventsone by one without duplication. In order to enable the high availability feature, multi inbound instances need to be activated together and work simultaneously.How to avoid polling duplicate events, ensure high performance such as poll events concurrently by multi inbounds and make load balance between these inbound instances will be a critical issue that for resolving. In this disclosure, a new Block Schedule Algorithmwill be introduced to meet these requirements.

   In this disclosure, we will present a new method and system to poll events concurrently based on Block Schedule Algorithm - splitting the event table to several blocks which will be dispatched to all registered inbound instances and let all inbounds to process events concurrently without locking the event table.

BSA can bring the following benefits:
Won't lock the whole event table which typically will have millions of records. This will ensure that all inbounds could read the event table concurrently and improve the performance dramatically compare with existing solutions.

Won't poll duplicate events because every inbound only works within their own block.

Depends on the throughput of every inbound, the block size could be computed dynamically to make balance between all inbound instances.

The inbound instances could be added dynamically without affecting the load balance.

If one inbound crashed, all the events that not delivered in the assigned block will be assigned to new block waiting for poll for other new inbound instances.

Since the event

possible to split the records to several blocks and it could be ensured that every

   We will use another table to track all working inbound instances. This is a small table with little records which only depends on the registered inbound numbers. The table structure is as Figure 1 shows:

1

_id is continuous and generated automatically, by using this column, it is

block has continuous records.


Page 02 of 6

(This page contains 00 pictures or other non-text object)

Figure 1. The tracking table

Instance

_id: This is a unique id used for identifying every inbound instance. It's a Primary key.

Start

_Event

_ID: This is the start event

_id in a block.

End

_Event

_ID: This is the end

_event

_id in a block. So the block size will be End

_Event

_ID - Start

_Event

_ID.

Timestamp: This is for tracking the last modified time which is used to determine the crashed inbound instance.

   Rate: This is the throughput of every inbound. Typically will be how many events could be delivered per second by this inbound. At the begin...