IP Library › Granted Patent US 12,743,575
Granted Patent B2
US 12,743,575 · App. 18/352,434 · Granted Sep 22, 2026

Synchronizing document object model trees respectively maintained by a server and a browser

Inventor: Erik Österlund (Vasterhaninge, SE)
Assignee: Oracle International Corporation
G06F40/14G06F16/94G06F16/958G06F40/154G06F40/194G06F40/197
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,743,575
App. No.
18/352,434
Granted
Sep 22, 2026
Kind
B2
Abstract

A system synchronizes a server-side DOM tree and a browser-side DOM tree with one another. Server may receive from a browser, a hash value of the browser-side DOM tree, and a server-side update instruction for applying a first server-side update to the server-side DOM tree to synchronize with a first browser-side update by the browser to the browser-side DOM tree. The server may identify the server-side DOM tree based on the hash value. The server may execute upon the server-side DOM tree, the first server-side update and a second server-side update that is triggered by the first server-side update. The server may compute a browser-side update instruction for applying a second browser-side update to the browser-side DOM tree to synchronize with the server-side DOM tree. The server may transmit the browser-side update instruction to the browser, and the browser may apply the second browser-side update to the browser-side DOM tree.

Claims (229)

1 . One or more non-transitory computer-readable media storing instructions, which when executed by one or more hardware processors, cause performance of operations comprising:

receiving, by a server from a browser executing on a browser device, (a) a server-side update instruction for applying a first server-side update to a server-side DOM tree stored by the server, wherein the first server-side update to the server-side DOM tree reflects a first browser-side update by the browser to a browser-side DOM tree stored by the browser, and (b) a first hash value representing the browser-side DOM tree, the first hash value generated by applying a hash function to a first root node of the browser-side DOM tree prior to the first browser-side update by the browser;

identifying, by the server, based on the first hash value, the server-side DOM tree,

wherein identifying the server-side DOM tree comprises:

accessing a data repository comprising a plurality of server-side DOM trees, including the server-side DOM tree, and

identifying the server-side DOM tree based on a root hash value of the server-side DOM tree matching the first hash value, wherein the root hash value is computed by the server prior to receiving the first hash value and the server-side update instruction;

executing, by the server, responsive to the server-side update instruction, the first server-side update to the server-side DOM tree, wherein the first server-side update comprises a first set of one or more server-side operations on the server-side DOM tree; and

computing, by the server, a second hash value representing the server-side DOM tree resulting from the first server-side update, the second hash value generated by applying the hash function to a second root node of the server-side DOM tree; and

storing, by the server, the second hash value in association with the server-side DOM tree resulting from the first server-side update.

2 . The media of claim 1 , wherein the first server-side update represents an indication of a user interaction with the browser.

3 . The media of claim 1 , wherein the operations further comprise:

subsequent to the server executing the first server-side update to the server-side DOM tree, numbering a first set of server-side nodes of the server-side DOM tree according to a node numbering convention;

wherein a second set of browser-side nodes of the browser-side DOM tree are numbered according to the node numbering convention; and

wherein each of the first set of server-side nodes has a server-side number that matches a browser-side number of a corresponding browser-side node.

4 . One or more non-transitory computer-readable media storing instructions, which when executed by one or more hardware processors, cause performance of operations comprising:

receiving, by a server from a browser executing on a browser device, (a) a server-side update instruction for applying a first server-side update to a server-side DOM tree stored by the server, wherein the first server-side update to the server-side DOM tree reflects a first browser-side update by the browser to a browser-side DOM tree stored by the browser, and (b) a first hash value representing the browser-side DOM tree, the first hash value generated by applying a hash function to a first root node of the browser-side DOM tree prior to the first browser-side update by the browser;

identifying, by the server, based on the first hash value, the server-side DOM tree,

wherein identifying the server-side DOM tree comprises:

accessing a data repository comprising a plurality of server-side DOM trees, including the server-side DOM tree, and

identifying the server-side DOM tree based on a root hash value of the server-side DOM tree matching the first hash value, wherein the root hash value is computed by the server prior to receiving the first hash value and the server-side update instruction;

executing, by the server, responsive to the server-side update instruction, (a) the first server-side update to the server-side DOM tree, wherein the first server-side update comprises a first set of one or more server-side operations on the server-side DOM tree, and (b) a second server-side update to the server-side DOM tree, wherein the second server-side update comprises a second set of one or more server-side operations on the server-side DOM tree, wherein the second server-side update is triggered by the first server-side update;

computing, by the server, a browser-side update instruction for applying a second browser-side update to the browser-side DOM tree, wherein the second browser-side update comprises a second set of one or more browser-side operations on the browser-side DOM tree, wherein the second browser-side update to the browser-side DOM tree reflects the second server-side update to the server-side DOM tree; and

transmitting, by the server to the browser executing on the browser device, the browser-side update instruction, wherein, responsive to the browser-side update instruction, the browser executes the second browser-side update to the browser-side DOM tree.

5 . The media of claim 4 , wherein computing the browser-side update instruction for applying the second browser-side update to the browser-side DOM tree comprises:

generating a first server-side hash tree representing the server-side DOM tree resulting from the first server-side update, wherein the first server-side hash tree comprises a first set of leaf nodes;

generating a second server-side hash tree representing the server-side DOM tree resulting from the second server-side update, wherein the second server-side hash tree comprises a second set of leaf nodes;

determining a first difference between a first leaf node, of the first set of leaf nodes, and a second leaf node, of the second set of leaf nodes,

wherein the first leaf node occupies a first leaf position of the first server-side hash tree,

wherein the second leaf node occupies a second leaf position of the second server-side hash tree, and

wherein the first leaf position corresponds to the second leaf position;

based on the first difference between the first leaf node and the second leaf node:

identifying, in the server-side DOM tree resulting from the first server-side update, a first server-side DOM tree-node corresponding to the first leaf node of the first server-side hash tree,

identifying, in the server-side DOM tree resulting from the second server-side update, a second server-side DOM tree-node corresponding to the second leaf node of the second server-side hash tree,

determining a second difference between the first server-side DOM tree-node and the second server-side DOM tree-node,

determining the second browser-side update to the browser-side DOM tree based on the second difference between the first server-side DOM tree-node and the second server-side DOM tree-node,

wherein the browser-side update instruction comprises a first instruction configured to cause the browser to apply the second browser-side update;

wherein upon the browser having applied the second browser-side update to the browser-side DOM tree, a first browser-side DOM tree-node, corresponding to the first server-side DOM tree-node, is modified to match the second server-side DOM tree-node.

6 . The media of claim 4 , wherein the operations further comprise:

computing, by the server, a second hash value representing the server-side DOM tree resulting from the first server-side update; and

transmitting, by the server to the browser executing on the browser device, the second hash value, wherein, the browser identifies the browser-side DOM tree based on the second hash value.

7 . The media of claim 6 , wherein computing the second hash value comprises:

generating a server-side hash tree representing the server-side DOM tree resulting from the first server-side update;

determining a server-side root hash value of the server-side hash tree; and

selecting the server-side root hash value as the second hash value.

8 . The media of claim 7 , wherein the server-side hash tree comprises a plurality of server-side leaf nodes, and wherein the server-side DOM tree comprises a plurality of server-side DOM tree-nodes, and wherein each of the plurality of server-side leaf nodes comprises a server-side leaf hash value that represents a corresponding server-side DOM tree-node of the plurality of server-side DOM tree-nodes.

9 . The media of claim 7 ,

wherein the browser computes a third hash value, representing the browser-side DOM tree resulting from the first browser-side update, at least by:

generating a browser-side hash tree representing the browser-side DOM tree resulting from the first browser-side update;

determining a browser-side root hash value of the browser-side hash tree; and

selecting the browser-side root hash value as the third hash value;

wherein the second hash value matches the third hash value; and

wherein the browser identifies the browser-side DOM tree based on the second hash value matching the third hash value.

10 . The media of claim 9 ,

wherein the server-side hash tree comprises a plurality of server-side hash tree-nodes, wherein each of the plurality of server-side hash tree-nodes comprises a server-side node-value; and

wherein the operations further comprise:

assigning a server-side node identification number to each of the plurality of server-side hash tree-nodes of the server-side hash tree at least by numbering the plurality of server-side hash tree-nodes of the server-side hash tree according to a numbering convention,

wherein for at least a first server-side hash tree-node of the plurality of server-side hash tree-nodes, a first server-side node identification number assigned to the first server-side hash tree-node replaces a second server-side hash tree-node identification number having been previously assigned to the first server-side hash tree-node;

wherein the browser-side hash tree comprises a plurality of browser-side hash tree-nodes, wherein each of the plurality of browser-side hash tree-nodes comprises a browser-side node identification number having been assigned according to the numbering convention, and a browser-side node-value;

wherein the server-side node-value of each server-side hash tree-node identifiable by a corresponding server-side node identification number, matches the browser-side node-value of a corresponding browser-side hash tree-node identifiable by a corresponding browser-side node identification number.

11 . The media of claim 4 ,

wherein the first server-side update to the server-side DOM tree represents a content request from the browser;

wherein the second server-side update to the server-side DOM tree represents a response to the content request as applied to the server-side DOM tree, wherein the response as applied to the server-side DOM tree comprises a change with respect to at least one item of content as represented by the server-side DOM tree; and

wherein the second browser-side update to the browser-side DOM tree represents the response to the content request as applied to the browser-side DOM tree, wherein the response as applied to the browser-side DOM tree comprises the change with respect to the at least one item of content as represented by the browser-side DOM tree.

12 . The media of claim 4 , wherein the first set of one or more server-side operations of the first server-side update comprises:

a first node identification number corresponding to a first server-side node of the server-side DOM tree; and

a first node operation to be executed upon the first server-side node of the server-side DOM tree;

wherein the first node identification number corresponds to a node numbering convention applicable to (i) a first set of server-side nodes, including the first server-side node, represented by the server-side DOM tree, and (ii) a second set of browser-side nodes represented by the browser-side DOM tree.

13 . The media of claim 4 , wherein the operations further comprise:

subsequent to the server executing the first server-side update to the server-side DOM tree, numbering a first set of server-side nodes of the server-side DOM tree according to a node numbering convention;

wherein a second set of browser-side nodes of the browser-side DOM tree are numbered according to the node numbering convention;

wherein each of the first set of server-side nodes has a server-side number that matches a browser-side number of a corresponding browser-side node; and

wherein the second set of one or more browser-side operations of the second browser-side update comprises:

a first node identification number corresponding to a first browser-side node of the browser-side DOM tree; and

a first node operation to be executed upon the first browser-side node of the browser-side DOM tree.

14 . The media of claim 4 , wherein computing the browser-side update instruction for applying the second browser-side update to the browser-side DOM tree comprises:

generating a first server-side hash tree representing the server-side DOM tree resulting from the first server-side update, wherein the first server-side hash tree comprises:

a first server-side root node having a first root node-value,

a first set of server-side leaf nodes, and

at least a first server-side intermediate node and a second server-side intermediate node respectively extending from the first server-side root node, the first server-side intermediate node having a first intermediate node-value, and the second server-side intermediate node having a second intermediate node-value,

wherein at least a first server-side leaf node and a second server-side leaf node of the first set of server-side leaf nodes extend from the second server-side intermediate node, the first server-side leaf node having a first leaf node-value, and the second server-side leaf node having a second leaf node-value;

generating a second server-side hash tree representing the server-side DOM tree resulting from the second server-side update, wherein the second server-side hash tree comprises:

a second server-side root node having a second root node-value,

a second set of server-side leaf nodes, and

at least a third server-side intermediate node and a fourth server-side intermediate node respectively extending from the second server-side root node, the third server-side intermediate node having a third intermediate node-value, and the fourth server-side intermediate node having a fourth intermediate node-value,

wherein at least a third server-side leaf node and a fourth server-side leaf node of the second set of server-side leaf nodes extend from the fourth server-side intermediate node, the third server-side leaf node having a third leaf node-value, and the fourth server-side leaf node having a fourth leaf node-value;

comparing the first root node-value of the first server-side root node to the second root node-value of the second server-side root node, and determining that the first root node-value differs from the second root node-value;

based on the first root node-value differing from the second root node-value, comparing the first intermediate node-value of the first server-side intermediate node to the third intermediate node-value of the third server-side intermediate node, and determining that the first intermediate node-value matches the third intermediate node-value,

wherein the first server-side intermediate node occupies a first intermediate position of the first server-side hash tree,

wherein the third server-side intermediate node occupies a third intermediate position of the second server-side hash tree, and

wherein the first intermediate position corresponds to the third intermediate position;

based on the first intermediate node-value matching the third intermediate node-value, comparing the second intermediate node-value of the first server-side intermediate node to the fourth intermediate node-value of the fourth server-side intermediate node, and determining that the second intermediate node-value differs from the fourth intermediate node-value,

wherein the second server-side intermediate node occupies a second intermediate position of the first server-side hash tree,

wherein the fourth server-side intermediate node occupies a fourth intermediate position of the second server-side hash tree, and

wherein the second intermediate position corresponds to the fourth intermediate position;

based on the second intermediate node-value differing from the fourth intermediate node-value, comparing the first leaf node-value of the first server-side leaf node to the third leaf node-value of the third server-side leaf node, and determining that the first leaf node-value matches the third leaf node-value,

wherein the first server-side leaf node occupies a first leaf position of the first server-side hash tree,

wherein the third server-side leaf node occupies a third leaf position of the second server-side hash tree, and

wherein the first leaf position corresponds to the third leaf position;

based on the first leaf node-value matching the third leaf node-value, comparing the second leaf node-value of the second server-side leaf node to the fourth leaf node-value of the fourth server-side leaf node, and determining that the second leaf node-value differs from the fourth leaf node-value,

wherein the second server-side leaf node occupies a second leaf position of the first server-side hash tree,

wherein the fourth server-side leaf node occupies a fourth leaf position of the second server-side hash tree, and

wherein the second leaf position corresponds to the fourth leaf position;

based on the second leaf node-value differing from the fourth leaf node-value:

identifying, in the server-side DOM tree resulting from the first server-side update, a first server-side DOM tree-node corresponding to the second server-side leaf node of the first server-side hash tree,

identifying, in the server-side DOM tree resulting from the second server-side update, a second server-side DOM tree-node corresponding to the fourth server-side leaf node of the second server-side hash tree,

determining a difference between the first server-side DOM tree-node and the second server-side DOM tree-node,

determining the second browser-side update to the browser-side DOM tree based on the difference between the first server-side DOM tree-node and the second server-side DOM tree-node,

wherein the browser-side update instruction comprises a first instruction configured to cause the browser to apply the second browser-side update;

wherein upon the browser having applied the second browser-side update to the browser-side DOM tree, a first browser-side DOM tree-node, corresponding to the first server-side DOM tree-node, is modified to match the second server-side DOM tree-node.

15 . A method, comprising:

receiving, by a server from a browser executing on a browser device, (a) a server-side update instruction for applying a first server-side update to a server-side DOM tree stored by the server, wherein the first server-side update to the server-side DOM tree reflects a first browser-side update by the browser to a browser-side DOM tree stored by the browser, and (b) a first hash value representing the browser-side DOM tree, the first hash value generated by applying a hash function to a first root node of the browser-side DOM tree prior to the first browser-side update by the browser;

identifying, by the server, based on the first hash value, the server-side DOM tree,

wherein identifying the server-side DOM tree comprises:

accessing a data repository comprising a plurality of server-side DOM trees, including the server-side DOM tree, and

identifying the server-side DOM tree based on a root hash value of the server-side DOM tree matching the first hash value, wherein the root hash value is computed by the server prior to receiving the first hash value and the server-side update instruction;

executing, by the server, responsive to the server-side update instruction, (a) the first server-side update to the server-side DOM tree, wherein the first server-side update comprises a first set of one or more server-side operations on the server-side DOM tree, and (b) a second server-side update to the server-side DOM tree, wherein the second server-side update comprises a second set of one or more server-side operations on the server-side DOM tree, wherein the second server-side update is triggered by the first server-side update;

computing, by the server, a browser-side update instruction for applying a second browser-side update to the browser-side DOM tree, wherein the second browser-side update comprises a second set of one or more browser-side operations on the browser-side DOM tree, wherein the second browser-side update to the browser-side DOM tree reflects the second server-side update to the server-side DOM tree; and

transmitting, by the server to the browser executing on the browser device, the browser-side update instruction, wherein, responsive to the browser-side update instruction, the browser executes the second browser-side update to the browser-side DOM tree;

wherein the method is performed using at least one hardware device.

16 . The method of claim 15 , wherein computing the browser-side update instruction for applying the second browser-side update to the browser-side DOM tree comprises:

generating a first server-side hash tree representing the server-side DOM tree resulting from the first server-side update, wherein the first server-side hash tree comprises a first set of leaf nodes;

generating a second server-side hash tree representing the server-side DOM tree resulting from the second server-side update, wherein the second server-side hash tree comprises a second set of leaf nodes;

determining a first difference between a first leaf node, of the first set of leaf nodes, and

a second leaf node, of the second set of leaf nodes,

wherein the first leaf node occupies a first leaf position of the first server-side hash tree,

wherein the second leaf node occupies a second leaf position of the second server-side hash tree, and

wherein the first leaf position corresponds to the second leaf position;

based on the first difference between the first leaf node and the second leaf node:

identifying, in the server-side DOM tree resulting from the first server-side update, a first server-side DOM tree-node corresponding to the first leaf node of the first server-side hash tree,

identifying, in the server-side DOM tree resulting from the second server-side update, a second server-side DOM tree-node corresponding to the second leaf node of the second server-side hash tree,

determining a second difference between the first server-side DOM tree-node and the second server-side DOM tree-node,

determining the second browser-side update to the browser-side DOM tree based on the second difference between the first server-side DOM tree-node and the second server-side DOM tree-node,

wherein the browser-side update instruction comprises a first instruction configured to cause the browser to apply the second browser-side update;

wherein upon the browser having applied the second browser-side update to the browser-side DOM tree, a first browser-side DOM tree-node, corresponding to the first server-side DOM tree-node, is modified to match the second server-side DOM tree-node.

17 . The method of claim 15 , further comprising:

computing, by the server, a second hash value representing the server-side DOM tree resulting from the first server-side update; and

transmitting, by the server to the browser executing on the browser device, the second hash value, wherein, the browser identifies the browser-side DOM tree based on the second hash value.

18 . The method of claim 17 , wherein computing the second hash value comprises:

generating a server-side hash tree representing the server-side DOM tree resulting from the first server-side update;

determining a server-side root hash value of the server-side hash tree; and

selecting the server-side root hash value as the second hash value.

19 . The method of claim 18 , wherein the server-side hash tree comprises a plurality of server-side leaf nodes, and wherein the server-side DOM tree comprises a plurality of server-side DOM tree-nodes, and wherein each of the plurality of server-side leaf nodes comprises a server-side leaf hash value that represents a corresponding server-side DOM tree-node of the plurality of server-side DOM tree-nodes.

20 . The method of claim 18 ,

wherein the browser computes a third hash value, representing the browser-side DOM tree resulting from the first browser-side update, at least by:

generating a browser-side hash tree representing the browser-side DOM tree resulting from the first browser-side update;

determining a browser-side root hash value of the browser-side hash tree; and

selecting the browser-side root hash value as the third hash value;

wherein the second hash value matches the third hash value; and

wherein the browser identifies the browser-side DOM tree based on the second hash value matching the third hash value.

21 . The method of claim 20 ,

wherein the server-side hash tree comprises a plurality of server-side hash tree-nodes, wherein each of the plurality of server-side hash tree-nodes comprises a server-side node-value; and

wherein the method further comprises:

assigning a server-side node identification number to each of the plurality of server-side hash tree-nodes of the server-side hash tree at least by numbering the plurality of server-side hash tree-nodes of the server-side hash tree according to a numbering convention,

wherein for at least a first server-side hash tree-node of the plurality of server-side hash tree-nodes, a first server-side node identification number assigned to the first server-side hash tree-node replaces a second server-side hash tree-node identification number having been previously assigned to the first server-side hash tree-node;

wherein the browser-side hash tree comprises a plurality of browser-side hash tree-nodes, wherein each of the plurality of browser-side hash tree-nodes comprises a browser-side node identification number having been assigned according to the numbering convention, and a browser-side node-value;

wherein the server-side node-value of each server-side hash tree-node identifiable by a corresponding server-side node identification number, matches the browser-side node-value of a corresponding browser-side hash tree-node identifiable by a corresponding browser-side node identification number.

22 . The method of claim 15 ,

wherein the first server-side update to the server-side DOM tree represents a content request from the browser;

wherein the second server-side update to the server-side DOM tree represents a response to the content request as applied to the server-side DOM tree, wherein the response as applied to the server-side DOM tree comprises a change with respect to at least one item of content as represented by the server-side DOM tree; and

wherein the second browser-side update to the browser-side DOM tree represents the response to the content request as applied to the browser-side DOM tree, wherein the response as applied to the browser-side DOM tree comprises the change with respect to the at least one item of content as represented by the browser-side DOM tree.

23 . The method of claim 15 , wherein the first set of one or more server-side operations of the first server-side update comprises:

a first node identification number corresponding to a first server-side node of the server-side DOM tree; and

a first node operation to be executed upon the first server-side node of the server-side DOM tree;

wherein the first node identification number corresponds to a node numbering convention applicable to (i) a first set of server-side nodes, including the first server-side node, represented by the server-side DOM tree, and (ii) a second set of browser-side nodes represented by the browser-side DOM tree.

24 . The method of claim 15 , further comprising:

subsequent to the server executing the first server-side update to the server-side DOM tree, numbering a first set of server-side nodes of the server-side DOM tree according to a node numbering convention;

wherein a second set of browser-side nodes of the browser-side DOM tree are numbered according to the node numbering convention;

wherein each of the first set of server-side nodes has a server-side number that matches a browser-side number of a corresponding browser-side node; and

wherein the second set of one or more browser-side operations of the second browser-side update comprises:

a first node identification number corresponding to a first browser-side node of the browser-side DOM tree; and

a first node operation to be executed upon the first browser-side node of the browser-side DOM tree.

25 . A system, comprising:

at least one hardware processor;

the system being configured to execute operations, using the at least one hardware processor, the operations comprising:

receiving, by a server from a browser executing on a browser device, (a) a server-side update instruction for applying a first server-side update to a server-side DOM tree stored by the server, wherein the first server-side update to the server-side DOM tree reflects a first browser-side update by the browser to a browser-side DOM tree stored by the browser, and (b) a first hash value representing the browser-side DOM tree, the first hash value generated by applying a hash function to a first root node of the browser-side DOM tree prior to the first browser-side update by the browser;

identifying, by the server, based on the first hash value, the server-side DOM tree, wherein identifying the server-side DOM tree comprises:

accessing a data repository comprising a plurality of server-side DOM trees, including the server-side DOM tree, and

identifying the server-side DOM tree based on a root hash value of the server-side DOM tree matching the first hash value, wherein the root hash value is computed by the server prior to receiving the first hash value and the server-side update instruction;

executing, by the server, responsive to the server-side update instruction, (a) the first server-side update to the server-side DOM tree, wherein the first server-side update comprises a first set of one or more server-side operations on the server-side DOM tree, and (b) a second server-side update to the server-side DOM tree, wherein the second server-side update comprises a second set of one or more server-side operations on the server-side DOM tree, wherein the second server-side update is triggered by the first server-side update;

computing, by the server, a browser-side update instruction for applying a second browser-side update to the browser-side DOM tree, wherein the second browser-side update comprises a second set of one or more browser-side operations on the browser-side DOM tree, wherein the second browser-side update to the browser-side DOM tree reflects the second server-side update to the server-side DOM tree; and

transmitting, by the server to the browser executing on the browser device, the browser-side update instruction, wherein, responsive to the browser-side update instruction, the browser executes the second browser-side update to the browser-side DOM tree.

26 . The system of claim 25 , wherein computing the browser-side update instruction for applying the second browser-side update to the browser-side DOM tree comprises:

generating a first server-side hash tree representing the server-side DOM tree resulting from the first server-side update, wherein the first server-side hash tree comprises a first set of leaf nodes;

generating a second server-side hash tree representing the server-side DOM tree resulting from the second server-side update, wherein the second server-side hash tree comprises a second set of leaf nodes;

determining a first difference between a first leaf node, of the first set of leaf nodes, and

a second leaf node, of the second set of leaf nodes,

wherein the first leaf node occupies a first leaf position of the first server-side hash tree,

wherein the second leaf node occupies a second leaf position of the second server-side hash tree, and

wherein the first leaf position corresponds to the second leaf position;

based on the first difference between the first leaf node and the second leaf node:

identifying, in the server-side DOM tree resulting from the first server-side update, a first server-side DOM tree-node corresponding to the first leaf node of the first server-side hash tree,

identifying, in the server-side DOM tree resulting from the second server-side update, a second server-side DOM tree-node corresponding to the second leaf node of the second server-side hash tree,

determining a second difference between the first server-side DOM tree-node and the second server-side DOM tree-node,

determining the second browser-side update to the browser-side DOM tree based on the second difference between the first server-side DOM tree-node and the second server-side DOM tree-node,

wherein the browser-side update instruction comprises a first instruction configured to cause the browser to apply the second browser-side update;

wherein upon the browser having applied the second browser-side update to the browser-side DOM tree, a first browser-side DOM tree-node, corresponding to the first server-side DOM tree-node, is modified to match the second server-side DOM tree-node.

27 . The system of claim 25 , wherein the operations further comprise:

computing, by the server, a second hash value representing the server-side DOM tree resulting from the first server-side update; and

transmitting, by the server to the browser executing on the browser device, the second hash value, wherein, the browser identifies the browser-side DOM tree based on the second hash value.

28 . The system of claim 27 , wherein computing the second hash value comprises:

generating a server-side hash tree representing the server-side DOM tree resulting from the first server-side update;

determining a server-side root hash value of the server-side hash tree; and

selecting the server-side root hash value as the second hash value.

29 . The system of claim 28 , wherein the server-side hash tree comprises a plurality of server-side leaf nodes, and wherein the server-side DOM tree comprises a plurality of server-side DOM tree-nodes, and wherein each of the plurality of server-side leaf nodes comprises a server-side leaf hash value that represents a corresponding server-side DOM tree-node of the plurality of server-side DOM tree-nodes.

30 . The system of claim 28 ,

wherein the browser computes a third hash value, representing the browser-side DOM tree resulting from the first browser-side update, at least by:

generating a browser-side hash tree representing the browser-side DOM tree resulting from the first browser-side update;

determining a browser-side root hash value of the browser-side hash tree; and

selecting the browser-side root hash value as the third hash value;

wherein the second hash value matches the third hash value; and

wherein the browser identifies the browser-side DOM tree based on the second hash value matching the third hash value.

31 . The system of claim 30 ,

wherein the server-side hash tree comprises a plurality of server-side hash tree-nodes, wherein each of the plurality of server-side hash tree-nodes comprises a server-side node-value; and

wherein the operations further comprise:

assigning a server-side node identification number to each of the plurality of server-side hash tree-nodes of the server-side hash tree at least by numbering the plurality of server-side hash tree-nodes of the server-side hash tree according to a numbering convention,

wherein for at least a first server-side hash tree-node of the plurality of server-side hash tree-nodes, a first server-side node identification number assigned to the first server-side hash tree-node replaces a second server-side hash tree-node identification number having been previously assigned to the first server-side hash tree-node;

wherein the browser-side hash tree comprises a plurality of browser-side hash tree-nodes, wherein each of the plurality of browser-side hash tree-nodes comprises a browser-side node identification number having been assigned according to the numbering convention, and a browser-side node-value;

wherein the server-side node-value of each server-side hash tree-node identifiable by a corresponding server-side node identification number, matches the browser-side node-value of a corresponding browser-side hash tree-node identifiable by a corresponding browser-side node identification number.

32 . The system of claim 25 ,

wherein the first server-side update to the server-side DOM tree represents a content request from the browser;

wherein the second server-side update to the server-side DOM tree represents a response to the content request as applied to the server-side DOM tree, wherein the response as applied to the server-side DOM tree comprises a change with respect to at least one item of content as represented by the server-side DOM tree; and

wherein the second browser-side update to the browser-side DOM tree represents the response to the content request as applied to the browser-side DOM tree, wherein the response as applied to the browser-side DOM tree comprises the change with respect to the at least one item of content as represented by the browser-side DOM tree.

33 . The system of claim 25 , wherein the operations further comprise:

subsequent to the server executing the first server-side update to the server-side DOM tree, numbering a first set of server-side nodes of the server-side DOM tree according to a node numbering convention;

wherein a second set of browser-side nodes of the browser-side DOM tree are numbered according to the node numbering convention;

wherein each of the first set of server-side nodes has a server-side number that matches a browser-side number of a corresponding browser-side node; and

wherein the second set of one or more browser-side operations of the second browser-side update comprises:

a first node identification number corresponding to a first browser-side node of the browser-side DOM tree; and

a first node operation to be executed upon the first browser-side node of the browser-side DOM tree.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 27, 2023
From: ÖSTERLUND, ERIK
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 064410/0715 →
Continuity (1)
Related Publication 20250021743A1 · Jan 16, 2025
References Cited (400)
US 5371499A · Graybill et al. · 1994 [cited by applicant]
US 5765007A · Rahman et al. · 1998 [cited by applicant]
US 5787430A · Doeringer et al. · 1998 [cited by applicant]
US 5842016A · Toutonghi et al. · 1998 [cited by applicant]
US 5873104A · Tremblay et al. · 1999 [cited by applicant]
US 5928357A · Underwood et al. · 1999 [cited by applicant]
US 5933840A · Menon et al. · 1999 [cited by applicant]
US 5974421A · Krishnaswamy et al. · 1999 [cited by applicant]
US 6052699A · Huelsbergen et al. · 2000 [cited by applicant]
US 6065020A · Dussud · 2000 [cited by applicant]
US 6158024A · Mandal · 2000 [cited by applicant]
US 6226653B1 · Alpern et al. · 2001 [cited by applicant]
US 6260042B1 · Curbera · 2001 [cited by examiner]
US 6304949B1 · Houlsdworth · 2001 [cited by applicant]
US 6324637B1 · Hamilton · 2001 [cited by applicant]
US 6499032B1 · Tikkanen et al. · 2002 [cited by applicant]
US 6567905B2 · Otis · 2003 [cited by applicant]
US 6694346B1 · Aman et al. · 2004 [cited by applicant]
US 6728732B1 · Eatherton et al. · 2004 [cited by applicant]
US 6766513B2 · Charnell et al. · 2004 [cited by applicant]
US 6769004B2 · Barrett · 2004 [cited by applicant]
US 6809792B1 · Tehranchi et al. · 2004 [cited by applicant]
US 6915296B2 · Parson · 2005 [cited by applicant]
US 7072905B2 · Garthwaite · 2006 [cited by applicant]
US 7089272B1 · Garthwaite et al. · 2006 [cited by applicant]
US 7269705B1 · Seidl et al. · 2007 [cited by applicant]
US 7293051B1 · Printezis et al. · 2007 [cited by applicant]
US 7389395B1 · Garthwaite et al. · 2008 [cited by applicant]
US 7404182B1 · Garthwaite et al. · 2008 [cited by applicant]
US 7428560B1 · Detlefs et al. · 2008 [cited by applicant]
US 7523081B1 · Engebretsen · 2009 [cited by applicant]
US 7539837B1 · Flood et al. · 2009 [cited by applicant]
US 7546587B2 · Marr et al. · 2009 [cited by applicant]
US 7548940B2 · Bacon et al. · 2009 [cited by applicant]
US 7610437B2 · Sinclair et al. · 2009 [cited by applicant]
US 7774389B2 · Stephens et al. · 2010 [cited by applicant]
US 7808929B2 · Wong et al. · 2010 [cited by applicant]
US 7904493B2 · Schmelter et al. · 2011 [cited by applicant]
US 7962707B2 · Kaakani et al. · 2011 [cited by applicant]
US 7984084B2 · Sinclair · 2011 [cited by applicant]
US 8051426B2 · Meijer et al. · 2011 [cited by applicant]
US 8082493B2 · Sthanikam · 2011 [cited by examiner]
US 8261269B2 · Garmark · 2012 [cited by applicant]
US 8285918B2 · Maheshwari · 2012 [cited by applicant]
US 8381094B1 · Prasad · 2013 [cited by examiner]
US 8429526B2 · Sthanikam · 2013 [cited by examiner]
US 8443263B2 · Selinger et al. · 2013 [cited by applicant]
US 8495093B2 · Baudel · 2013 [cited by applicant]
US 8499283B2 · Mony · 2013 [cited by examiner]
US 8539338B2 · Zhu · 2013 [cited by examiner]
US 8655913B1 · Shah · 2014 [cited by examiner]
US 8688754B1 · Burka et al. · 2014 [cited by applicant]
US 8788778B1 · Boyle · 2014 [cited by applicant]
US 8825719B2 · Steensgaard et al. · 2014 [cited by applicant]
US 8825721B2 · Hunt et al. · 2014 [cited by applicant]
US 8856186B1 · Li et al. · 2014 [cited by applicant]
US 8873284B2 · Sinclair et al. · 2014 [cited by applicant]
US 8977627B1 · Vijayanarasimhan et al. · 2015 [cited by applicant]
US 9135169B2 · Kawachiya et al. · 2015 [cited by applicant]
US 9171097B2 · Ceze · 2015 [cited by examiner]
US 9208081B1 · Dice et al. · 2015 [cited by applicant]
US 9223693B2 · Sinclair et al. · 2015 [cited by applicant]
US 9268763B1 · Esho · 2016 [cited by examiner]
US 9305169B2 · Borohovski · 2016 [cited by examiner]
US 9323608B2 · Troia · 2016 [cited by applicant]
US 9330191B2 · Teevan · 2016 [cited by examiner]
US 9330395B2 · Hauser · 2016 [cited by examiner]
US 9336133B2 · Sinclair et al. · 2016 [cited by applicant]
US 9338143B2 · Hansen · 2016 [cited by examiner]
US 9348746B2 · Sinclair et al. · 2016 [cited by applicant]
US 9356574B2 · Denninghoff · 2016 [cited by examiner]
US 9374385B1 · Falkowitz · 2016 [cited by examiner]
US 9386037B1 · Hunt · 2016 [cited by examiner]
US 9465731B2 · Sinclair et al. · 2016 [cited by applicant]
US 9503435B2 · Mizrahi et al. · 2016 [cited by applicant]
US 9578048B1 · Hunt · 2017 [cited by examiner]
US 9652382B1 · Subramanian et al. · 2017 [cited by applicant]
US 9727456B2 · Malwankar et al. · 2017 [cited by applicant]
US 9734050B2 · Sinclair et al. · 2017 [cited by applicant]
US 9734911B2 · Sinclair et al. · 2017 [cited by applicant]
US 9740716B2 · Wilhelmsson · 2017 [cited by applicant]
US 9778855B2 · Sinclair · 2017 [cited by applicant]
US 9953014B1 · Reshadi · 2018 [cited by examiner]
US 9971683B1 · Bell et al. · 2018 [cited by applicant]
US 10002074B2 · Flood et al. · 2018 [cited by applicant]
US 10084779B2 · Hunt · 2018 [cited by examiner]
US 10108543B1 · Duggal et al. · 2018 [cited by applicant]
US 10108544B1 · Duggal et al. · 2018 [cited by applicant]
US 10120613B2 · Sinclair et al. · 2018 [cited by applicant]
US 10127210B1 · Karppanen · 2018 [cited by examiner]
US 10133490B2 · Sinclair et al. · 2018 [cited by applicant]
US 10146749B2 · Ayoub · 2018 [cited by examiner]
US 10146752B2 · Ciabarra, Jr. · 2018 [cited by examiner]
US 10255179B2 · Ji et al. · 2019 [cited by applicant]
US 10261898B1 · Payer · 2019 [cited by applicant]
US 10275261B1 · Anusuya Rangappa Lohith · 2019 [cited by applicant]
US 10318592B2 · Ciabarra, Jr. · 2019 [cited by examiner]
US 10331651B2 · Abadi · 2019 [cited by examiner]
US 10346520B2 · Hunt · 2019 [cited by examiner]
US 10419568B2 · Rubtsov · 2019 [cited by examiner]
US 10430279B1 · Dittia et al. · 2019 [cited by applicant]
US 10452758B1 · Bhowmick · 2019 [cited by examiner]
US 10547679B1 · Burnett · 2020 [cited by examiner]
US 10592587B2 · Ciabarra, Jr. · 2020 [cited by examiner]
US 10664391B2 · Jang · 2020 [cited by applicant]
US 10666708B1 · Gavalas · 2020 [cited by examiner]
US 10726091B2 · Isager · 2020 [cited by examiner]
US 10739996B1 · Ebsen et al. · 2020 [cited by applicant]
US 10757101B2 · Hunt · 2020 [cited by examiner]
US 10795812B1 · Duggal et al. · 2020 [cited by applicant]
US 10908930B2 · Yeh · 2021 [cited by examiner]
US 10929288B1 · Moore et al. · 2021 [cited by applicant]
US 10969959B2 · Somasundaram · 2021 [cited by examiner]
US 10983715B2 · Sharoni et al. · 2021 [cited by applicant]
US 10983908B1 · Zou et al. · 2021 [cited by applicant]
US 10986182B1 · Burnett · 2021 [cited by examiner]
US 10996884B2 · Danilov et al. · 2021 [cited by applicant]
US 11050811B2 · Mashaal · 2021 [cited by examiner]
US 11086537B2 · Byun · 2021 [cited by applicant]
US 11157680B1 · Lee · 2021 [cited by examiner]
US 11165822B2 · Hunt · 2021 [cited by examiner]
US 11194885B1 · Parhami · 2021 [cited by examiner]
US 11201892B1 · Kashitsyn · 2021 [cited by examiner]
US 11222091B2 · Liu · 2022 [cited by examiner]
US 11228611B1 · John · 2022 [cited by examiner]
US 11301539B2 · Macxis, Jr. · 2022 [cited by examiner]
US 11366801B1 · Kumar et al. · 2022 [cited by applicant]
US 11397843B1 · Lee · 2022 [cited by examiner]
US 11445003B1 · Katta · 2022 [cited by applicant]
US 11507503B1 · Sterlund et al. · 2022 [cited by applicant]
US 11561962B2 · Abdoun · 2023 [cited by examiner]
US 11573894B2 · Österlund et al. · 2023 [cited by applicant]
US 11601460B1 · Hunt · 2023 [cited by examiner]
US 12197324B1 · Sterlund et al. · 2025 [cited by applicant]
US 12235924B2 · Esun · 2025 [cited by examiner]
US 20020059520A1 · Murakami et al. · 2002 [cited by applicant]
US 20030005027A1 · Borman et al. · 2003 [cited by applicant]
US 20030188141A1 · Chaudhry et al. · 2003 [cited by applicant]
US 20040024812A1 · Park · 2004 [cited by examiner]
US 20040186863A1 · Garthwaite · 2004 [cited by applicant]
US 20040187102A1 · Garthwaite · 2004 [cited by applicant]
US 20050066329A1 · Fischer et al. · 2005 [cited by applicant]
US 20050081190A1 · Betancourt et al. · 2005 [cited by applicant]
US 20050102670A1 · Bretl et al. · 2005 [cited by applicant]
US 20050114844A1 · Betancourt et al. · 2005 [cited by applicant]
US 20050149686A1 · Bacon et al. · 2005 [cited by applicant]
US 20050160413A1 · Broussard et al. · 2005 [cited by applicant]
US 20050160416A1 · Jamison · 2005 [cited by applicant]
US 20050188164A1 · Ballantyne et al. · 2005 [cited by applicant]
US 20050235006A1 · Adl-Tabatabai et al. · 2005 [cited by applicant]
US 20050267996A1 · O'Connor et al. · 2005 [cited by applicant]
US 20060005171A1 · Ellison · 2006 [cited by applicant]
US 20060026379A1 · Jung · 2006 [cited by applicant]
US 20060075123A1 · Burr et al. · 2006 [cited by applicant]
US 20060143168A1 · Rossmann · 2006 [cited by applicant]
US 20060143395A1 · Zohar et al. · 2006 [cited by applicant]
US 20070016633A1 · Lindholm et al. · 2007 [cited by applicant]
US 20070022149A1 · Bacon et al. · 2007 [cited by applicant]
US 20070033325A1 · Sinclair · 2007 [cited by applicant]
US 20070156777A1 · Wolff et al. · 2007 [cited by applicant]
US 20070162528A1 · Wright et al. · 2007 [cited by applicant]
US 20070203960A1 · Guo · 2007 [cited by applicant]
US 20070234005A1 · Erlingsson et al. · 2007 [cited by applicant]
US 20070240034A1 · Sthanikam · 2007 [cited by examiner]
US 20070240035A1 · Sthanikam · 2007 [cited by examiner]
US 20080034175A1 · Traister et al. · 2008 [cited by applicant]
US 20080082596A1 · Gorobets · 2008 [cited by applicant]
US 20080086619A1 · Traister et al. · 2008 [cited by applicant]
US 20080140737A1 · Garst et al. · 2008 [cited by applicant]
US 20080162787A1 · Tomlin et al. · 2008 [cited by applicant]
US 20080189477A1 · Asano et al. · 2008 [cited by applicant]
US 20080250213A1 · Holt · 2008 [cited by applicant]
US 20090007075A1 · Edmark et al. · 2009 [cited by applicant]
US 20090037660A1 · Fairhurst · 2009 [cited by applicant]
US 20090119352A1 · Branda et al. · 2009 [cited by applicant]
US 20090132622A1 · Rossmann et al. · 2009 [cited by applicant]
US 20090158288A1 · Fulton et al. · 2009 [cited by applicant]
US 20090307256A1 · Tiyyagura · 2009 [cited by examiner]
US 20090307292A1 · Li et al. · 2009 [cited by applicant]
US 20090319720A1 · Stefanus et al. · 2009 [cited by applicant]
US 20090328007A1 · Chen et al. · 2009 [cited by applicant]
US 20100011357A1 · Ramamurthy · 2010 [cited by applicant]
US 20100070727A1 · Harris et al. · 2010 [cited by applicant]
US 20100082710A1 · Kilner et al. · 2010 [cited by applicant]
US 20100114998A1 · Steensgaard et al. · 2010 [cited by applicant]
US 20100217953A1 · Beaman et al. · 2010 [cited by applicant]
US 20100223429A1 · Cher et al. · 2010 [cited by applicant]
US 20100254254A1 · Chan et al. · 2010 [cited by applicant]
US 20100287028A1 · Hauser · 2010 [cited by examiner]
US 20100287350A1 · Ylonen · 2010 [cited by applicant]
US 20100318892A1 · Teevan · 2010 [cited by examiner]
US 20110145473A1 · Maheshwari · 2011 [cited by applicant]
US 20110145637A1 · Gray et al. · 2011 [cited by applicant]
US 20110161784A1 · Selinger et al. · 2011 [cited by applicant]
US 20110197177A1 · Mony · 2011 [cited by examiner]
US 20110208792A1 · Printezis et al. · 2011 [cited by applicant]
US 20110246543A1 · Gracie et al. · 2011 [cited by applicant]
US 20110252075A1 · Ylonen et al. · 2011 [cited by applicant]
US 20110252216A1 · Ylonen et al. · 2011 [cited by applicant]
US 20110258532A1 · Ceze · 2011 [cited by examiner]
US 20110273987A1 · Schlansker et al. · 2011 [cited by applicant]
US 20110286420A1 · Cho et al. · 2011 [cited by applicant]
US 20120203804A1 · Burka et al. · 2012 [cited by applicant]
US 20120260157A1 · Zhu · 2012 [cited by examiner]
US 20130054925A1 · Hsia · 2013 [cited by applicant]
US 20130073821A1 · Flynn et al. · 2013 [cited by applicant]
US 20130138703A1 · Daynes et al. · 2013 [cited by applicant]
US 20130227236A1 · Flynn et al. · 2013 [cited by applicant]
US 20130232402A1 · Lu · 2013 [cited by examiner]
US 20130290648A1 · Shao et al. · 2013 [cited by applicant]
US 20130318132A1 · Basu et al. · 2013 [cited by applicant]
US 20130326333A1 · Hashmi · 2013 [cited by examiner]
US 20130332909A1 · Odaira et al. · 2013 [cited by applicant]
US 20140032922A1 · Spilman · 2014 [cited by applicant]
US 20140033213A1 · Hudson et al. · 2014 [cited by applicant]
US 20140101372A1 · Jung et al. · 2014 [cited by applicant]
US 20140108817A1 · Chen et al. · 2014 [cited by applicant]
US 20140173744A1 · Borohovski · 2014 [cited by examiner]
US 20140195818A1 · Neumann et al. · 2014 [cited by applicant]
US 20140278447A1 · Unoki et al. · 2014 [cited by applicant]
US 20140282872A1 · Hansen · 2014 [cited by examiner]
US 20140283040A1 · Wilkerson et al. · 2014 [cited by applicant]
US 20140310235A1 · Chan et al. · 2014 [cited by applicant]
US 20140325148A1 · Choi et al. · 2014 [cited by applicant]
US 20140359201A1 · Chakrabarti · 2014 [cited by applicant]
US 20140365719A1 · Kuzmin et al. · 2014 [cited by applicant]
US 20150006843A1 · Moser · 2015 [cited by applicant]
US 20150026167A1 · Neels et al. · 2015 [cited by applicant]
US 20150058381A1 · Wilhelmsson · 2015 [cited by applicant]
US 20150081996A1 · Flood · 2015 [cited by applicant]
US 20150100752A1 · Flood · 2015 [cited by applicant]
US 20150193399A1 · Woker · 2015 [cited by examiner]
US 20150193402A1 · Ayoub · 2015 [cited by examiner]
US 20150227416A1 · Reinart · 2015 [cited by applicant]
US 20150227602A1 · Ramu et al. · 2015 [cited by applicant]
US 20150254219A1 · Harel · 2015 [cited by examiner]
US 20150365941A1 · Liu et al. · 2015 [cited by applicant]
US 20150378870A1 · Marron et al. · 2015 [cited by applicant]
US 20160012280A1 · Ito et al. · 2016 [cited by applicant]
US 20160042015A1 · Landau et al. · 2016 [cited by applicant]
US 20160055230A1 · Yurchenko et al. · 2016 [cited by applicant]
US 20160092566A1 · Barouni Ebrahimi · 2016 [cited by examiner]
US 20160092591A1 · Barouni Ebrahimi · 2016 [cited by examiner]
US 20160124802A1 · Gabor et al. · 2016 [cited by applicant]
US 20160134588A1 · Falkowitz · 2016 [cited by examiner]
US 20160134648A1 · Falkowitz · 2016 [cited by examiner]
US 20160163381A1 · Lee · 2016 [cited by applicant]
US 20160170649A1 · Ramesh et al. · 2016 [cited by applicant]
US 20160179580A1 · Benedict · 2016 [cited by applicant]
US 20160188548A1 · Ciabarra, Jr. · 2016 [cited by examiner]
US 20160188651A1 · Abadi · 2016 [cited by examiner]
US 20160239413A1 · Stephens et al. · 2016 [cited by applicant]
US 20160246713A1 · Choi et al. · 2016 [cited by applicant]
US 20160283369A1 · Hada · 2016 [cited by applicant]
US 20160350214A1 · Payer et al. · 2016 [cited by applicant]
US 20170006135A1 · Siebel et al. · 2017 [cited by applicant]
US 20170017650A1 · Ciabarra, Jr. · 2017 [cited by examiner]
US 20170039242A1 · Milton et al. · 2017 [cited by applicant]
US 20170078286A1 · Hunt · 2017 [cited by examiner]
US 20170078310A1 · Hunt · 2017 [cited by examiner]
US 20170091438A1 · Raziel et al. · 2017 [cited by applicant]
US 20170123655A1 · Sinclair et al. · 2017 [cited by applicant]
US 20170177168A1 · Abudib et al. · 2017 [cited by applicant]
US 20170177471A1 · Frazier et al. · 2017 [cited by applicant]
US 20170242790A1 · O'Krafka et al. · 2017 [cited by applicant]
US 20170262364A1 · Liden et al. · 2017 [cited by applicant]
US 20170286544A1 · Hunt · 2017 [cited by examiner]
US 20170289293A1 · Rubtsov · 2017 [cited by examiner]
US 20170308513A1 · Hunt · 2017 [cited by examiner]
US 20170344473A1 · Gidra et al. · 2017 [cited by applicant]
US 20180074854A1 · Chan · 2018 [cited by applicant]
US 20180095941A1 · Ciabarra, Jr. · 2018 [cited by examiner]
US 20180173728A1 · Munakata · 2018 [cited by applicant]
US 20180189175A1 · Ji et al. · 2018 [cited by applicant]
US 20180276120A1 · Vytiniotis et al. · 2018 [cited by applicant]
US 20180329907A1 · De Paris · 2018 [cited by examiner]
US 20180335968A1 · Pauley et al. · 2018 [cited by applicant]
US 20180365106A1 · Huang et al. · 2018 [cited by applicant]
US 20190028473A1 · Hunt · 2019 [cited by examiner]
US 20190042406A1 · Guniguntala et al. · 2019 [cited by applicant]
US 20190042440A1 · Kumar et al. · 2019 [cited by applicant]
US 20190079906A1 · Karppanen · 2019 [cited by examiner]
US 20190340212A1 · Isager · 2019 [cited by examiner]
US 20200012600A1 · Konoth et al. · 2020 [cited by applicant]
US 20200012647A1 · Johnson et al. · 2020 [cited by applicant]
US 20200026781A1 · Khot et al. · 2020 [cited by applicant]
US 20200028697A1 · Unger et al. · 2020 [cited by applicant]
US 20200067862A1 · Giralte · 2020 [cited by applicant]
US 20200081748A1 · Johnson et al. · 2020 [cited by applicant]
US 20200089420A1 · Sharoni et al. · 2020 [cited by applicant]
US 20200099735A1 · Mashaal · 2020 [cited by examiner]
US 20200125364A1 · Erik · 2020 [cited by applicant]
US 20200183584A1 · Somasundaram · 2020 [cited by examiner]
US 20200192794A1 · Lee · 2020 [cited by applicant]
US 20200202127A1 · Chen et al. · 2020 [cited by applicant]
US 20200204587A1 · Hunt · 2020 [cited by examiner]
US 20200218653A1 · Ryu · 2020 [cited by applicant]
US 20200250084A1 · Stephens et al. · 2020 [cited by applicant]
US 20200272681A1 · Macxis, Jr. · 2020 [cited by examiner]
US 20200310686A1 · Truong et al. · 2020 [cited by applicant]
US 20200310963A1 · Nilsen · 2020 [cited by applicant]
US 20200327052A1 · Nilsen · 2020 [cited by applicant]
US 20200379902A1 · Durham et al. · 2020 [cited by applicant]
US 20210042398A1 · Volluru · 2021 [cited by applicant]
US 20210124608A1 · Shveidel et al. · 2021 [cited by applicant]
US 20210167963A1 · Autry et al. · 2021 [cited by applicant]
US 20210200546A1 · Lemay et al. · 2021 [cited by applicant]
US 20210278990A1 · Choi · 2021 [cited by applicant]
US 20210342362A1 · Haravu et al. · 2021 [cited by applicant]
US 20210406216A1 · Komatsu et al. · 2021 [cited by applicant]
US 20220027340A1 · Abdoun · 2022 [cited by examiner]
US 20220058732A1 · Reses · 2022 [cited by applicant]
US 20220069995A1 · Philipp · 2022 [cited by applicant]
US 20220070205A1 · Kashitsyn · 2022 [cited by examiner]
US 20220138098A1 · Osterlund et al. · 2022 [cited by applicant]
US 20220159032A1 · John · 2022 [cited by examiner]
US 20220188432A1 · Turmel et al. · 2022 [cited by applicant]
US 20220303289A1 · Townsend · 2022 [cited by examiner]
US 20220345315A1 · Ilan · 2022 [cited by examiner]
US 20220374353A1 · Sterlund et al. · 2022 [cited by applicant]
US 20230125593A1 · Mahony et al. · 2023 [cited by applicant]
US 20230409558A1 · Wysocki · 2023 [cited by examiner]
US 20240037164A1 · Wang · 2024 [cited by examiner]
US 20240039925A1 · Todasco · 2024 [cited by examiner]
US 20240160685A1 · Esun · 2024 [cited by examiner]
US 20240380783A1 · Tushkanov · 2024 [cited by examiner]
CA 2700217C · 2011 [cited by applicant]
CN 117539478A · 2024 [cited by examiner]
JP 4265610B2 · 2009 [cited by applicant]
WO 0029937A2 · 2000 [cited by applicant]
WO 2016073019A1 · 2016 [cited by applicant]
WO 2017053754A1 · 2017 [cited by applicant]
WO 2017178114A9 · 2017 [cited by applicant]
“Basic Graph Algorithms”, Indian Computing Olympiad, Retrieved from https://www.iarcs.org.in/inoi/online-study-material/topics/graphs-dfs.php, Retrieved on Dec. 8, 2022, pp. 3. [cited by applicant]
“React as UI runtime”, Overreacted, Feb. 2, 2019, pp. 38. [cited by applicant]
“Recitation 8—Dijkstra's Algorithm and DFS Numberings”, Parallel and Sequential Data Structures and Algorithms, 15-210 (Fall 2013), Oct. 16, 2013, pp. 1-6. [cited by applicant]
“What is Schema?” Retrieved from https://github.com/json-schema-org/understanding-json-schema, Jan. 11, 2023, pp. 3. [cited by applicant]
Armbrust Michael Michael@Databricks Com et al, “Spark SQL Relational Data Processing in Spark,” Proceedings of The 2015 ACM SIGMOD International Conference on Management of Data, SIGMOD '15, ACM Press, New York, New Yor… [cited by applicant]
Ellis D., “What is Swagger? A beginner's guide”, Jul. 26, 2022, pp. 6. [cited by applicant]
Verma A., “The comprehensive guide to react's virtual DOM”, May 15, 2021, pp. 23. [cited by applicant]
Yang et al., “Deep Dive into ZGC: A Modern Garbage Collector in OpenJDK”, ACM Transactions on Programming Language and Systems, ACM, New York, NY, 2022, vol. 44, No. 4, 34 Pages. [cited by applicant]
Yang et al., “Improving Program Locality in the GC using Hotness,” PLDI' 20, pp. 301-313, Jun. 15-20, 2020. [cited by applicant]
Yuasa et al., “Return Barrier,” International Lisp Conference, 2002, 12 pages. [cited by applicant]
Yuasa, T., “Real-time garbage collection on general-purpose machines,” Journal of Systems and Software, vol. 11, Issue 3, <Mar. 1990, pp. 181-198. [cited by applicant]
ZGC Concurrent Class Unloading—Another Safepoint Operation Bites the Dust: available online at <http://cr.openjdk.java.net/~pliden/slides/ZGC-Jfokus-2019.pdf>, Feb. 4, 2019, 55 pages. [cited by applicant]
Zhao et al., “Low-latency, high-throughput garbage collection”, PLDI 2022: Proceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation, Jun. 2022, pp. 76-91. [cited by applicant]
“Lazy Compaction”, Retrieved from https://wiki.se.oracle.com/display/JPG/Lazy+Compaction, Retrieved on Sep. 20, 2022, 2 Pages. [cited by applicant]
“ZGC—Generations Revision 2,” accessed at https://wiki.se.oracle.com/display/JPG/ZGC+−+Generations+Revision , Feb. 1, 2020, pp. 6. [cited by applicant]
A concurrent, generational garbage collector for a multithreaded implementation of ML by Doligez (Year: 1993). [cited by applicant]
A Hardware Accelerator for Tracing Garbage Collection by Maas (Year: 2018). [cited by applicant]
Benjamin Zorn, Barrier Methods for Garbage Collection, Nov. 1990, UC Boulder available at: https://spl.cde.state.co.us/artemis/ucbserials/ucb51110internet/1990/ucb51110494internet.pdf (Year: 1990). [cited by applicant]
Boehm et al.; “Efficient In-Memory Indexing with Generalized Prefix Trees”, downloaded from https://pdfs.semanticscholar.org/c5ca/a359fe6b345580a4dd476d5dd41a90bf301c.pdf; Mar. 26, 2018. [cited by applicant]
Click et al.; “The Pauseless GC Algorithm”, VEE 05, Jun. 11-12, 2005, Chicago, Illinois, USA. Copyright 2005 ACM 1-59593-047-7/05/0006 . . . S5.00. [cited by applicant]
Clifford et al., “Memento Mori: Dynamic Allocation-Site-Based Optimizations”, ACM SIGPLAN Notices, vol. 50, No. 11, Jun. 14, 2015, pp. 105-117. [cited by applicant]
David Gnedt, “Fast Profiling in the HotSpot Java VM with Incremental Stack Tracing and Partial Safepoints,” Faculty of Engineering and Natural Sciences, 2014, 57 pages. [cited by applicant]
Detlefs; “Concurrent Remembered Set Refinement in Generational Garbage Collection”, Proceedings of the USENIX Java VM '02 Conference, Aug. 1-2, 2002, San Francisco, CA. [cited by applicant]
Domani et al., “Implementing an On-the-fly Garbage Collector for Java,” ACM SIGPLAN Notices, vol. 36, No. 1, 2000, pp. 155-166. [cited by applicant]
Dorai et al., Control delimiters and their hierarchies, LISP and Symbolic Computation: An International Journal, vol. 3, 1990, pp. 67-99. [cited by applicant]
Feng et al.; “Trie-join: a trie-based method for efficient string similarity joins”, Published online Oct. 4, 2011; The VLDB Journal Springer-Verlag 2011. [cited by applicant]
Fitzgerald; “The Case for Profile Directed Selection of Garbage Collectors”, Proceedings of the 2nd International Symposium on Memory Management, ACM, New York, NY USA, 111-120, DOI=10.1145/362422.362472, http://doi.acm… [cited by applicant]
Generational Garbage Collection, Write Barriers/Write Protection and userfaultfd(2) by Cracauer (Year: 2016). [cited by applicant]
Getting started with Z Garbage Collector(ZGC) in Java 11 [Tutorial] by Davis (Year: 2019). [cited by applicant]
Goetz, Java theory and practice Garbage collection in the HotSpot JVM, Generational and concurrent garbage collection, IBM Developer Works, Nov. 25, 2003. [cited by applicant]
Harris T, et al., “Dynamic filtering: multi-purpose architecture support for language runtime systems,” ACM SIGARCH Computer Architecture News, vol. 38, Issue 1, Mar. 2010, pp. 39-52. [cited by applicant]
Heule et al., “HyperLogLog in practice: algorithmic engineering of a state of the art cardinality estimation algorithm,” EDBT '13: Proceedings of the 16th International Conference on Extending Database Technology, Mar. … [cited by applicant]
Hosking; “A Comparative Performance Evaluation of Write Barrier Implementations”, Proceedings ACM Conference on Object-Oriented Programming Systems, Languages and Applications, Vancouver, Canada, Oct. 1992, pp. 92-109. [cited by applicant]
How to Implement Java's hashCode Correctly, May 19, 2016, Available online at <https://www.sitepoint.com/how-to-implement-javas-hashcode-correctly/>, 7 pages. [cited by applicant]
JDK 15, Available online at < https://openjdk.java.net/projects/jdk/15/ >, Last updated, Sep. 15, 2020, 2 pages. [cited by applicant]
JEP 333: ZGC: A Scalable Low-Latency Garbage Collector(Experimental) by Liden and Karlsson (Year: 2020). [cited by applicant]
Joisha; “Sticky Tries: Fast Insertions, Fast Lookups, No Deletions for Large Key Universe”, ISMM '14, Jun. 12, 2014, Edinburgh UK. [cited by applicant]
Kliot et al., “A Lock-Free, Concurrent, and Incremental Stack Scanning for Garbage Collectors,” In Proceedings of the ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments (VEE '09), 2009, pp. 11… [cited by applicant]
Lokesh Gupta, “Java Secure Hashing—MD5, SHA256, SHA512, PBKDF2, BCrypt, Scrypt,” Available online at <https://howtodoinjava.com/security/how-to-generate-secure-password-hash-md5-sha-pbkdf2-bcrypt-examples/> printed on A… [cited by applicant]
M. Felleisen et al., Beyond Continuations: Technical Report No. 216, Feb. 1987, 13 pages. [cited by applicant]
Main—Main—OpenJDK Wiki, Created by Iris Clark, last modified by Per Liden, available online at <URL: https://wiki.openjdk.java.net/display/zgc/Main>, Oct. 15, 2020, 9 pages. [cited by applicant]
Mohamed A. El-Zawawy, “Recognition of Logically Related Regions Based Heap Abstraction”, Journal of the Egyptian Mathematical Society, vol. 20, Issue 2, Jul. 2012, pp. 64-71, arXiv:1212.5094 [cs.LO]. [cited by applicant]
Mostly Concurrent Garbage Collection Revisited by Barabash (Year: 2003). [cited by applicant]
Olsson et al.; “Trash a dynamic LC-trie and hash data structure”, Trita-CSC-TCS 2006:2, ISRN/KTH/CSC/CS-2006/2-SE, ISSN 1653-7092, Aug. 18, 2006. [cited by applicant]
Open JDK, “HotSpot Glossary of Terms”, 2006, Sun Microsystems, available at <https://openjdk.java.net/groups/hotspot/docs/HotSpotGlossary.html>, 6 pages. [cited by applicant]
Osterlund E., “Garbage Collection supporting automatic JIT parallelization in JVM”, Computer Science, Jun. 26, 2012, pp. 29. [cited by applicant]
Osterlund E., “Going Beyond On-The-Fly Garbage Collection and Improving Self-Adaptation with Enhanced Interfaces”, Computer Science, 2019, pp. 68. [cited by applicant]
Osterlund et al., “Block-Free Concurrent GC: Stack Scanning and Copying,” International Symposium on Memory Management, vol. 51, 2016, 12 pages. [cited by applicant]
Per Liden, The Design of ZGC—A scalable Low-Latency Garbage Collector for Java: available online at <http://cr.openjdk.java.net/~pliden/slides/ZGC-PLMeetup-2019.pdf>, Jun. 12, 2019, 84 pages. [cited by applicant]
Pufek et al., “Analysis of Garbage Collection Algorithms and Memory Management in Java”, 2019 42nd International Convention on Information and Communication Technology, Electronics and Microelectronics (Mipro), Croatian… [cited by applicant]
Robbin Ehn, “JEP 312: Thread-Local Handshakes,” Hotspot Dash Dev at Openjdk Dot Java Dot Net, available at <http://openjdk.java.net/jeps/312>, 2018, 3 pages. [cited by applicant]
Rogers I., “Reducing and eliding read barriers for concurrent garbage collectors,” ICOOOLPS '11: Proceedings of the 6th Workshop on Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Sy… [cited by applicant]
Ryan Sciampacone et al., “Garbage collection in WebSphere Application Server V8, Part 2: Balanced garbage collection as a new option”, IBM developerWorks, Aug. 3, 2011. [cited by applicant]
Saxena et al., “Key and Value Paired Data using Java Hash Table,” International Journal of Engineering and Management Research, vol. 4, Issue 1, Feb. 2014, pp. 81-89. [cited by applicant]
Stefan Karlsson, JEP 439: Generational ZGC, Aug. 25, 2021, OpenJDK, available at: https://openjdk.org/jeps/439 (Year: 2021). [cited by applicant]
Tene et al.; C4: The Continuously Concurrent Compacting Collector ISMM'11, Jun. 4-5, 2011, San Jose, CA, USA Copyright 2011, ACM 978-M503-0263-0/11/06 . . . $10.00. [cited by applicant]
The Z Garbage Collector—Low Latency GC OpenJDK, available online at <http://cr.openjdk.java.net/~pliden/slides/ZGC-Jfokus-2018.pdf>, 2018, 96 pages. [cited by applicant]
Title: Detecting and eliminating memory leaks using cyclic memory allocation, author: JJ Nguyen et al., published on 2007. [cited by applicant]
Title: Reconsidering custom memory allocation; author :: ED Berger et al., published on 2002. [cited by applicant]
Title: Understanding memory allocation of Scheme programs author: M Serrano published on 2000. [cited by applicant]
Vechev et al. “Write Barrier Elision for Concurrent Garbage Collectors”, 2004 (Year: 2004). [cited by applicant]
Wilson, P. R., et al., “A “Card-making” scheme for controlling intergenerational differences in generation—based garbage collection on stock hardware,” ACM SIGPLAN Notices, vol. 24, Issue 5, May 1989, pp. 87-92. [cited by applicant]
Write Barrier Elision for Concurrent Garbage Collectors by Vechev (Year: 2004). [cited by applicant]
Geeksforgeeks, “Thread in Operating System”, Aug. 16, 2019, pp. 1-4, https://web.archive.org/web/20200926013500/https://www.geeksforgeeks.org/thread-in-operating-system/ (Year: 2019). [cited by applicant]
Guy Harris, “Thread (computing)”, Dec. 2022, pp. 1-10, https://en.wikipedia.org/w/index.php?title=Thread_ (computing)&oldid=1128791380 (Year: 2022). [cited by applicant]
Stephen J. Bigelow, “thread”, Aug. 2023, pp. 1-10, https://www.techtarget.com/whatis/definition/thread (Year: 2023). [cited by applicant]
Sun Microsystems, “What Is a Thread?”, 2005, pp. 1-2, https://www.iitk.ac.in/esc101/05Aug/tutorial/essential/threads/definition.html#:~: text= Definition:%20A%20thread%20is%20a,tasks%20in%20a%20single%20program. (Year: … [cited by applicant]