Data upgrade framework for distributed systems
First Claim
1. A method for facilitating data upgrades in a distributed system, the method comprising:
- before updating a first instance of a distributed application executing on a first node of the distributed system from an older version to a new version, deploying a translation service, which is packaged with a first plugin for translating message formats from the new version to the older version and a second plugin for translating message formats from the older version to the new version, on the first node, wherein the translation service is separate from the first instance of the distributed application;
receiving, by the first instance of the distributed application executing on the first node of the distributed system, a message from a second instance of the distributed application executing on a second node of the distributed system;
determining, by the first instance, whether the message can be natively understood, the determining being performed via logic that is included in interface description language (IDL)-generated code of the distributed application; and
if the message cannot be natively understood, invoking, by the first instance, the translation service deployed on the first node to use the first plugin for translating the message from the new version to the older version or to use the second plugin for translating the message from the older version to the new version.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques for facilitating data upgrades in a distributed system are provided. In one embodiment, a first instance of a distributed application executing on a first node of a distributed system can receive a message from a second instance of the distributed application executing on a second node of the distributed system. The first instance of the distributed application can then determine, via logic included in application code generated by an interface definition language (IDL) compiler, whether the message can be natively understood. If the message cannot be natively understood, the first instance of the distributed application can invoke a translation service for translating the message.
17 Citations
26 Claims
-
1. A method for facilitating data upgrades in a distributed system, the method comprising:
-
before updating a first instance of a distributed application executing on a first node of the distributed system from an older version to a new version, deploying a translation service, which is packaged with a first plugin for translating message formats from the new version to the older version and a second plugin for translating message formats from the older version to the new version, on the first node, wherein the translation service is separate from the first instance of the distributed application; receiving, by the first instance of the distributed application executing on the first node of the distributed system, a message from a second instance of the distributed application executing on a second node of the distributed system; determining, by the first instance, whether the message can be natively understood, the determining being performed via logic that is included in interface description language (IDL)-generated code of the distributed application; and if the message cannot be natively understood, invoking, by the first instance, the translation service deployed on the first node to use the first plugin for translating the message from the new version to the older version or to use the second plugin for translating the message from the older version to the new version. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A non-transitory computer readable storage medium having stored thereon computer software corresponding to a distributed application, the computer software embodying a method that, when executed on a first node of a distributed system, comprises:
-
before updating the computer software executing on the first node of the distributed system from an older version to a new version, deploying a translation service, which is packaged with a first plugin for translating message formats from the new version to the older version and a second plugin for translating message formats from the older version to the new version, on the first node, wherein the translation service is separate from the computer software; receiving a message from an instance of the distributed application executing on a second node of the distributed system; determining, via logic included in interface description language (IDL)-generated code, whether the message can be natively understood; and if the message version number cannot be natively understood, invoking the translation service deployed on the first node to use the first plugin for translating the message from the new version to the older version or to use the second plugin for translating the message from the older version to the new version. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A computer system comprising:
-
a processor; and a non-transitory computer readable medium having stored thereon computer software corresponding to a distributed application, the computer software causing the processor to, upon being executed; before updating the computer software from an older version to a new version, deploying a translation service, which is packaged with a first plugin for translating message formats from the new version to the older version and a second plugin for translating message formats from the older version to the new version, on the computer system, wherein the translation service is separate from the computer software; receive a message from an instance of the distributed application executing on another computer system; determine, via logic included in interface description language (IDL)-generated code, whether the message can be natively understood; and if the message cannot be natively understood, invoke the translation service deployed on the first node to use the first plugin for translating the message from the new version to the older version or to use the second plugin for translating message formats the message from the older version to the new version. - View Dependent Claims (20, 21, 22, 23, 24, 25)
-
-
26. A method for facilitating data upgrades in a distributed system, the method comprising:
-
before updating a first instance of a distributed application executing on a first node of the distributed system from an older version to a new version, deploying a translation service, which is packaged with a first plugin for translating message formats from the new version to the older version and a second plugin for translating message formats from the older version to the new version, on the first node, wherein the translation service is separate from the first instance of the distributed application; receiving, by the first instance of the distributed application executing on the first node of the distributed system, a message from a second instance of the distributed application executing on a second node of the distributed system; determining, by the first instance, whether the message can be natively understood, the determining being performed via logic that is included in interface description language (IDL)-generated code of the distributed application; if the message cannot be natively understood, invoking, by the first instance, the translation service deployed on the first node to use the first plugin for translating the message from the new version to the older version or to use the second plugin for translating the message from the older version to the new version, wherein determining whether the message can be natively understood comprises; determining a message type identifier and a message version number included in the message; and comparing the message type identifier and the message version number with an expected message type identifier and an expected message version number associated with the first instance, wherein the message is a top-level message that includes one or more nested messages, wherein the message type identifier and the message version number are associated solely with the top-level message and wherein the second instance of the distributed application is configured to verify that the message includes the message type identifier and the message version number prior to transmitting the message.
-
Specification