WO2019155261A1 - Notification mechanism for updates of shared data objects - Google Patents
Notification mechanism for updates of shared data objects Download PDFInfo
- Publication number
- WO2019155261A1 WO2019155261A1 PCT/IB2018/050818 IB2018050818W WO2019155261A1 WO 2019155261 A1 WO2019155261 A1 WO 2019155261A1 IB 2018050818 W IB2018050818 W IB 2018050818W WO 2019155261 A1 WO2019155261 A1 WO 2019155261A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- shared data
- hash table
- thread
- identifiers
- identifier
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/465—Distributed object oriented systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
Definitions
- each shared data object has an object identifier of x number of bytes.
- the memory layout of shared data objects is contiguous because the object identifier of the first shared data object is followed by y number of bytes indicating the size of the first shared data object and then the first shared data object itself or the reference to the first shared data object. Adjoining the first shared data object similar pattern is followed by the second contiguous shared data object and so on. Also we maintain a first hash table consisting of Object Identifier as the key and the list of thread identifiers as the value derived from the subscriptions made by different threads for any updates for the shared data object corresponding to the Object Identifier.
- the subscriptions by different threads is handled by a different server thread which has connections with all threads(or all thread identifiers in consideration).
- We also maintain a second hash table which consists of Thread Identifier as the key and the corresponding socket descriptor as the value to send the notification of the update of the object identifier.
- Thread Identifier as the key
- socket descriptor as the value to send the notification of the update of the object identifier.
- notification event-based rather than time-based by looking up in the first hash table for list of thread identifiers to be notified and subsequently getting all the socket descriptors corresponding to different thread identifiers from second hash table and send the notification of the update of the object identifier on each of the socket descriptor for different thread identifiers sequentially one by one for each update event of the shared data object.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
Abstract
Here the subscriptions by different threads for different shared objects is handled by a different server thread which has connections with all threads. If the threads are to be notified periodically, then we will periodically send notifications to the respective threads with a list of object identifiers updated or we can send the notification on each update event of the shared data object.
Description
Notification mechanism for updates of shared data objects
In this invention we have data objects shared among different threads in a system. Each shared data object has an object identifier of x number of bytes. The memory layout of shared data objects is contiguous because the object identifier of the first shared data object is followed by y number of bytes indicating the size of the first shared data object and then the first shared data object itself or the reference to the first shared data object. Adjoining the first shared data object similar pattern is followed by the second contiguous shared data object and so on. Also we maintain a first hash table consisting of Object Identifier as the key and the list of thread identifiers as the value derived from the subscriptions made by different threads for any updates for the shared data object corresponding to the Object Identifier. The subscriptions by different threads is handled by a different server thread which has connections with all threads(or all thread identifiers in consideration). We also maintain a second hash table which consists of Thread Identifier as the key and the corresponding socket descriptor as the value to send the notification of the update of the object identifier. Now when a shared data object is updated we look up in the first hash table for the list of threads(or thread identifiers) subscribed for its update corresponding to the object identifier of the shared data object. We also create and maintain a third hash table consisting of the socket descriptors to be notified of the update of the shared data object in consideration by looking up in the second hash table for the socket descriptor corresponding to the thread identifier as the key and the value as the list of one or more object identifiers updated for which the thread(or thread identifier) subscribed for. Note that we just queue the object identifier at the end of the list of object identifiers for the corresponding socket descriptor in the third hash table if the entry is already present with a list of one or more object identifiers. Now if the threads subscribed for different object identifiers or shared data objects are to be notified periodically, then there will be a sweeper timer which will periodically iterate through all the entries in the third hash table and send
notifications to the respective threads with a list of object identifiers updated, and subsequently delete the entry in the third hash table. Depending upon the type of subscription we might not need a third hash table at all, where we make the
notification event-based rather than time-based by looking up in the first hash table for list of thread identifiers to be notified and subsequently getting all the socket descriptors corresponding to different thread identifiers from second hash table and send the notification of the update of the object identifier on each of the socket descriptor for different thread identifiers sequentially one by one for each update event of the shared data object.
Claims
Claims
Following is the claim for this invention
1> In this invention we have data objects shared among different threads in a system. Each shared data object has an object identifier of x number of bytes. The memory layout of shared data objects is contiguous because the object identifier of the first shared data object is followed by y number of bytes indicating the size of the first shared data object and then the first shared data object itself or the reference to the first shared data object. Adjoining the first shared data object similar pattern is followed by the second contiguous shared data object and so on. Also we maintain a first hash table consisting of Object Identifier as the key and the list of thread identifiers as the value derived from the subscriptions made by different threads for any updates for the shared data object corresponding to the Object Identifier. The subscriptions by different threads is handled by a different server thread which has connections with all threads(or all thread identifiers in consideration). We also maintain a second hash table which consists of Thread Identifier as the key and the corresponding socket descriptor as the value to send the notification of the update of the object identifier. Now when a shared data object is updated we look up in the first hash table for the list of threads(or thread identifiers) subscribed for its update corresponding to the object identifier of the shared data object. We also create and maintain a third hash table consisting of the socket descriptors to be notified of the update of the shared data object in consideration by looking up in the second hash table for the socket descriptor corresponding to the thread identifier as the key and the value as the list of one or more object identifiers updated for which the thread(or thread identifier) subscribed for. Note that we just queue the object identifier at the end of the list of object identifiers for the corresponding socket descriptor in the third hash table if the entry is already present with a list of one or more object identifiers. Now if the threads subscribed for different object identifiers or shared data objects are to be notified periodically, then there will be a sweeper timer which will periodically iterate through all the entries in the third hash table and send
notifications to the respective threads with a list of object identifiers updated, and subsequently delete the entry in the third hash table. Depending upon the type of subscription we might not need a third hash table at all, where we make the
notification event-based rather than time-based by looking up in the first hash table for list of thread identifiers to be notified and subsequently getting all the socket descriptors corresponding to different thread identifiers from second hash table and send the notification of the update of the object identifier on each of the socket descriptor for different thread identifiers sequentially one by one for each update event of the shared data object. The above novel technique of notifying different threads subscribed for different shared data objects among them is the claim for this invention.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/IB2018/050818 WO2019155261A1 (en) | 2018-02-09 | 2018-02-09 | Notification mechanism for updates of shared data objects |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/IB2018/050818 WO2019155261A1 (en) | 2018-02-09 | 2018-02-09 | Notification mechanism for updates of shared data objects |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2019155261A1 true WO2019155261A1 (en) | 2019-08-15 |
Family
ID=67548883
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/IB2018/050818 WO2019155261A1 (en) | 2018-02-09 | 2018-02-09 | Notification mechanism for updates of shared data objects |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2019155261A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12093183B1 (en) * | 2023-03-09 | 2024-09-17 | Dell Products L.P. | Caching techniques using a mapping cache and maintaining cache coherency using physical to logical address mapping |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6895401B2 (en) * | 1998-05-29 | 2005-05-17 | Sun Microsystems, Inc. | Method and apparatus of performing active update notification |
-
2018
- 2018-02-09 WO PCT/IB2018/050818 patent/WO2019155261A1/en active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6895401B2 (en) * | 1998-05-29 | 2005-05-17 | Sun Microsystems, Inc. | Method and apparatus of performing active update notification |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12093183B1 (en) * | 2023-03-09 | 2024-09-17 | Dell Products L.P. | Caching techniques using a mapping cache and maintaining cache coherency using physical to logical address mapping |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9407712B1 (en) | Content delivery network for ephemeral objects | |
Jia et al. | Consensus of multi-agents with event-based nonlinear coupling over time-varying digraphs | |
EP2948875B1 (en) | Method and system for using a recursive event listener on a node in hierarchical data structure | |
CN107315825A (en) | A kind of index upgrade system, method and device | |
US20090005065A1 (en) | System and method for setting status flags for mobile data distribution based on distribution rules | |
US10530726B2 (en) | Email notifications | |
CN104967536A (en) | Method and device for realizing data consistency in multiple computer rooms | |
CN109146677B (en) | Method, computer system and readable storage medium for parallel building of block chain views | |
CN101803341B (en) | Method for operating a dezentralized communication network | |
CN112860505B (en) | A distributed cluster control method and device | |
EP3174318B1 (en) | Method for realizing resource attribute notification, and common service entity | |
CN111104250B (en) | Method, apparatus and computer readable medium for data processing | |
EP4060513A1 (en) | Systems and methods for data replication synchronization cross reference to related applications | |
WO2019155261A1 (en) | Notification mechanism for updates of shared data objects | |
WO2009120345A3 (en) | Updating routing and outage information in a communications network | |
CN108062244A (en) | The canceling method and device of reptile task | |
CN105025458A (en) | Method, device and system for resource notification | |
US20140344565A1 (en) | Data center system and method for dynamically updating configuration information thereof | |
JP2010152591A (en) | Database system, data processing method, and data processing program | |
NZ735617A (en) | Aggregating high volumes of temporal data from multiple overlapping sources | |
CN109299613A (en) | The setting method and terminal device of partitions of database permission | |
Han et al. | Multi‐tracking of first order multi‐agent networks via self‐triggered control | |
CN108170462B (en) | Function recommendation table group maintenance method and system | |
CN109831385B (en) | Message processing method and device and electronic equipment | |
US7007028B2 (en) | Smart poller for optical network management systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 18905710 Country of ref document: EP Kind code of ref document: A1 |