System and method for unit-of-order routing

US10715472B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10715472-B2
Application numberUS-201816027616-A
CountryUS
Kind codeB2
Filing dateJul 5, 2018
Priority dateAug 22, 2017
Publication dateJul 14, 2020
Grant dateJul 14, 2020

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

In accordance with an embodiment, a system and method provides a messaging service implementing a unit-of-order guarantee in a multitenant application server environment. The system and method of implementing unit-of-order utilizes an improved path service for routing all messages having a particular unit-of-order to the same member of the cluster. The improved path service allows for scalability of the cluster and reduced resource utilization, thereby improving the performance of a clustered computing system providing the messaging service.

First claim

Opening claim text (preview).

What is claimed is: 1. A system for supporting unit-of-order (UOO) messaging in an application server environment, comprising: a cluster having a first member count of cluster members, wherein the cluster is scaled to have a second member count of cluster members; wherein each cluster member comprises an application server operating on a computer comprising a processor and memory, and wherein each cluster member is connected to each other cluster member by a network; a path service in the cluster; wherein the path service creates a first routing table for the cluster which includes routes for UOO which correspond to a value calculated by a modulo operation applied to a hash of a UOO string over the first member count; wherein the path service creates a second routing table for the scaled cluster which includes routes for UOO which correspond to a value calculated by a modulo operation applied to a hash of a UOO string over the second member count; wherein when messages in a particular UOO are routed to different members by the path service using the first routing table and the second routing table, the path service operates to pause message consumption at a member of the different members. 2. The system of claim 1 , wherein the different members includes a first member in the original cluster, and a second member in the scaled cluster, and wherein the member where message consumption is paused is the second member. 3. The system of claim 1 , wherein the second member count is greater than the first member count. 4. The system of claim 1 , wherein the paused message consumption is unpaused when message consumption for the particular UOO is completed at another member. 5. The system of claim 1 , wherein the path service deletes the first routing table after messages routed using the first routing tables are consumed. 6. The system of claim 1 , wherein each of the plurality of members in the cluster is a queue or a topic. 7. The system of claim 1 , wherein the cluster is a Java Message Service (JMS) cluster. 8. The system of claim 1 , wherein the plurality of members in the cluster is provided in a distributed destination. 9. The system of claim 1 , wherein the path service is a singleton service. 10. A method for supporting unit-of-order (UOO) messaging in an application server environment, comprising: providing a path service in a cluster having a first member count of cluster members, wherein the cluster is scaled to have a second member count of cluster members, wherein, the path service creates a first routing table for the cluster, wherein the first routing table includes routes for UOO messages, wherein each of the routes in the first routing table corresponds to a value calculated by a modulo operation applied to a hash of a UOO string over the first member count, and the path service creates a second routing table for the cluster after the clustered is scaled, wherein the second routing table includes routes for UOO messages, wherein each of the routes in the second routing table corresponds to a value calculated by a modulo operation applied to a hash of a UOO string over the second member count; routing, by the path service, messages in a particular UOO to different members using the first routing table and the second routing table; and pausing, by the path service, message consumption at a member of the different members. 11. The method of claim 10 , wherein the different members includes a first member in the original cluster, and a second member in the scaled cluster, and wherein the member where message consumption is paused is the second member. 12. The method of claim 10 , wherein the second member count is greater than the first member count. 13. The method of claim 10 , wherein the paused message consumption is unpaused when message consumption for the particular UOO is completed at another member. 14. The method of claim 10 , wherein the path service deletes the first routing table after messages routed using the first routing tables are consumed. 15. The method of claim 10 , wherein each of the plurality of members in the cluster is a queue or a topic. 16. The method of claim 10 , wherein the cluster is a Java Message Service (JMS) cluster. 17. The method of claim 10 , wherein the plurality of members in the cluster is provided in a distributed destination. 18. The method of claim 10 , wherein the path service is a singleton service. 19. A non-transitory computer-readable storage medium storing a set of instructions for supporting unit-of-order (UOO) messaging in an application server environment, said instructions, when executed by one or more processors, causing the one or more processors to perform steps comprising: providing a path service in a cluster having a first member count of cluster members, wherein the cluster is scaled to have a second member count of cluster members, wherein, the path service creates a first routing table for the cluster, wherein the first routing table includes routes for UOO messages, wherein each of the routes in the first routing table corresponds to a value calculated by a modulo operation applied to a hash of a UOO string over the first member count, and the path service creates a second routing table for the cluster after the clustered is scaled, wherein the second routing table includes routes for UOO messages, wherein each of the routes in the second routing table corresponds to a value calculated by a modulo operation applied to a hash of a UOO string over the second member count; routing, by the path service, messages in a particular UOO to different members using the first routing table and the second routing table; and pausing, by the path service, message consumption at a member of the different members. 20. The non-transitory computer-readable storage medium of claim 19 , wherein the different members includes a first member in the original cluster, and a second member in the scaled cluster, and wherein the member where message consumption is paused is the second member.

Assignees

Inventors

Classifications

  • Application servers providing network services (systems providing special services to telephonic subscribers H04M3/42) · CPC title

  • Storing data temporarily at an intermediate stage, e.g. caching · CPC title

  • for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS] · CPC title

  • in the application layer [OSI layer 7] · CPC title

  • based on web technology, e.g. hypertext transfer protocol [HTTP] · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10715472B2 cover?
In accordance with an embodiment, a system and method provides a messaging service implementing a unit-of-order guarantee in a multitenant application server environment. The system and method of implementing unit-of-order utilizes an improved path service for routing all messages having a particular unit-of-order to the same member of the cluster. The improved path service allows for scalabili…
Who is the assignee on this patent?
Oracle Int Corp
What technology area does this patent fall under?
Primary CPC classification H04L65/1063. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Jul 14 2020 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).