[go: up one dir, main page]

WO2019155261A1 - Notification mechanism for updates of shared data objects - Google Patents

Notification mechanism for updates of shared data objects Download PDF

Info

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
Application number
PCT/IB2018/050818
Other languages
French (fr)
Inventor
Pratik Sharma
Original Assignee
Pratik Sharma
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Pratik Sharma filed Critical Pratik Sharma
Priority to PCT/IB2018/050818 priority Critical patent/WO2019155261A1/en
Publication of WO2019155261A1 publication Critical patent/WO2019155261A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/465Distributed object oriented systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; 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.
PCT/IB2018/050818 2018-02-09 2018-02-09 Notification mechanism for updates of shared data objects WO2019155261A1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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