IP Library Granted Patent US 10,528,364
Granted Patent B2
US 10,528,364 · App. 16/394,292 · Granted Jan 7, 2020

Method and system for dynamic indexation and loading of module codes

Inventors: Aleksandr Aleksandrovich Zinchuk (Moscow, RU); Sergey Sergeevich Konstantinov (Moscow, RU)
Assignee: YANDEX EUROPE AG
G06F9/44521G06F8/61G06F17/2247H04L67/34G06F16/9574H04L67/10
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 10,528,364
App. No.
16/394,292
Granted
Jan 7, 2020
Kind
B2
Abstract

Computing device and a method for loading module codes, the module codes required for executing an action, the method comprising: receiving, by the computing device, a request for executing the action, the action being executable using a first module code; acquiring, from the first predetermined index a first module code reference indicating a first module code location and the indication that executing the first module code requires a second module code; acquiring, from a second predetermined index, a second module code reference, the second module code reference indicating a second module code location; based on the first module code reference, acquiring the first module code from the first module code location; based on the second module code reference, acquiring the second module code from the second module code location; executing the action by running the first module code and the second module code.

Claims (112)

1. A computer-implemented method for loading module codes, the module codes required by a computing device for executing an action, the method executed on the computing device,

the computing device being coupled to a plurality of predetermined indexes comprising a first predetermined index, a second predetermined index and a default index;

the method comprising:

receiving, by the computing device, a request for executing the action, the action being executable using a first module code, and an indication of a first index associated with the action;

responsive to the request for executing the action, determining if the first index corresponds to the first predetermined index;

responsive to the first index corresponding to the first predetermined index, acquiring, from the first predetermined index:

a first module code reference, the first module code reference indicating a first module code location; and

an indication that executing the first module code requires a second module code;

an indication of a second index, the second index comprising a second module code reference, the second module code reference indicating a second module code location, the second module code supporting execution of the first module code;

responsive to the first index not corresponding to the first predetermined index, acquiring, from the default index:

the first module code reference;

the indication that executing the first module code requires a second module code;

the indication of the second index;

determining if the second index corresponds to the second predetermined index;

in response to the second index corresponding to the second predetermined index, acquiring, from the second predetermined index, the second module code reference;

in response to the second index not corresponding to the second predetermined index, acquiring, from the default index, the second module code reference;

based on the first module code reference, acquiring the first module code from the first module code location;

based on the second module code reference, acquiring the second module code from the second module code location; and

responsive to the presence of the first module code and the second module code, executing the action by running the first module code and the second module code.

2. The method of claim 1 , further comprising storing, on the computing device, an indication of the first predetermined index, the first predetermined index comprising the first module code reference, the first module code reference indicating the first module code location.

3. The method of claim 1 , wherein

the first predetermined index is any one, selected from:

a remotely stored first predetermined index;

a locally stored at least a portion of the first predetermined index;

the second predetermined index is any one, selected from:

a remotely stored second predetermined index; and

a locally stored at least a portion of the second predetermined index.

4. The method of claim 3 , wherein

the locally stored at least the portion of the first predetermined index is any one, selected from:

a modified version of at least the portion of the remotely stored first predetermined index;

an exact copy of at least the portion of the remotely stored first predetermined index; and

the locally stored at least the portion of the second predetermined index is any one, selected from:

a modified version of at least the portion of the remotely stored second predetermined index; and

an exact copy of at least the portion of the remotely stored second predetermined index.

5. The method of claim 3 , wherein

before acquiring from at least the portion of the first predetermined index any one of (i) the first module code reference, and (ii) the indication of the second predetermined index, the method further comprises performing a verification whether the locally stored at least the portion of the first predetermined index is available; and

responsive to the locally stored at least the portion of the first predetermined index being available, the method further comprises using, by the computing device, one of: (i) the remotely stored first predetermined index and (ii) the locally stored at least the portion of the first predetermined index, as a source of at least one, selected from:

the first module code reference;

the indication of the second predetermined index; and

responsive to the locally stored at least the portion of the first predetermined index being not available, the method further comprises using, by the computing device, the remotely stored first predetermined index as a source of the first module code reference and of the indication of the second predetermined index.

6. The method of claim 5 , wherein responsive to the locally stored at least the portion of the first predetermined index being available, the using of one of: (i) the remotely stored first predetermined index and (ii) the locally stored at least the portion of the first predetermined index, is performed after selecting respective one of: (i) the remotely stored first predetermined index and (ii) the locally stored at least the portion of the first predetermined index, the selecting being executed by steps of:

determining a staleness parameter of the locally stored at least the portion of the first predetermined index;

comparing the staleness parameter of the locally stored at least the portion of the first predetermined index with a predetermined staleness threshold parameter, the predetermined staleness threshold parameter indicative whether a locally stored at least portion of a respective index is stale; and

responsive to the staleness parameter of the locally stored at least the portion of the first predetermined index exceeding the predetermined staleness threshold parameter, using the remotely stored first predetermined index as the source of at least one, selected from: the first module code reference and the indication of the second predetermined index; and

responsive to the staleness parameter of the locally stored at least the portion of the first predetermined index being below the predetermined staleness threshold parameter, using the locally stored at least the portion of the first predetermined index as the source of at least one, selected from: the first module code reference and the indication of the second predetermined index.

7. The method of claim 3 , wherein

the first module code location is any one, selected from:

a local information storage medium; and

a remote information storage medium, and

the second module code location is any one, selected from:

a local information storage medium; and

a remote information storage medium.

8. The method of claim 7 , wherein the second module code location is the remote information storage medium, after acquiring the second module code from the second module code location, the method further comprises:

responsive to determining that at least the portion of the second predetermined index is stored locally, modifying the locally stored at least the portion of the second predetermined index such that the modified locally stored at least the portion of the second predetermined index comprises the second module code reference indicating a second module code location on the local information storage medium; and

responsive to determining the absence of the locally stored at least the portion of the second predetermined index, generating the modified version of at least the portion of the remotely stored second predetermined index, the modified version of at least the portion of the remotely stored second predetermined index comprising the second module code reference indicating the second module code location on the local information storage medium.

9. The method of claim 1 , wherein the first predetermined index and the second predetermined index are implemented as a single third predetermined index, and wherein acquiring any one, selected from: at least the portion of the first predetermined index and at least the portion of the second predetermined index comprises acquiring from at least a portion of the third predetermined index.

10. The method of claim 9 , wherein the third predetermined index is any one, selected from: a remotely stored the third predetermined index, and a locally stored at least a portion of the third predetermined index.

11. The method of claim 10 , wherein the locally stored at least the portion of the third predetermined index is any one, selected from:

a modified version of at least the portion of the remotely stored the third predetermined index; and

an exact copy of at least the portion of the remotely stored the third predetermined index.

12. The method of claim 1 , wherein receiving, by the computing device, the request for the executing the action, is receiving the request initiated by a third module code.

13. The method of claim 1 , wherein the computing device is associated with a user, and wherein receiving, by the computing device, the request for the executing the action, is receiving from the user.

14. A computing device having an information storage medium, and a processor coupled to the information storage medium,

the computing device being coupled to a plurality of predetermined indexes comprising a first predetermined index, a second predetermined index and a default index;

the processor being configured to have access to computer readable commands which commands, when executed, cause the processor to:

receive, by the computing device, a request for executing the action, the action being executable using a first module code, and an indication of a first index associated with the action;

responsive to the request for executing the action, determine if the first index corresponds to the first predetermined index;

responsive to the first index corresponding to the first predetermined index, acquire, from the first predetermined index:

a first module code reference, the first module code reference indicating the first module code location;

an indication that executing the first module code requires a second module code;

an indication of a second predetermined index, the second predetermined index comprising a second module code reference, the second module code reference indicating a second module code location, the second module code supporting execution of the first module code;

responsive to the first index not corresponding to the first predetermined index, acquire, from the default index:

the first module code reference;

the indication that executing the first module code requires the second module code;

the indication of the second predetermined index;

determine if the second index corresponds to the second predetermined index;

in response to the second index corresponding to the second predetermined index, acquire, from the second predetermined index, the second module code reference;

in response to the second index not corresponding to the second predetermined index, acquire, from the default index, the second module code reference;

based on the first module code reference, acquire the first module code from the first module code location;

based on the second module code reference, acquire the second module code from the second module code location; and

responsive to the presence of the first module code and the second module code, execute the action by running the first module code and the second module code.

15. The computing device of claim 14 , wherein the processor is further configured to store, on the computing device, an indication of the first predetermined index, the first predetermined index comprising the first module code reference, the first module code reference indicating the first module code location.

16. The computing device of claim 14 , wherein

the first predetermined index is any one, selected from:

a remotely stored first predetermined index; and

a locally stored at least a portion of the first predetermined index; and

the second predetermined index is any one, selected from:

a remotely stored second predetermined index; and

a locally stored at least a portion of the second predetermined index.

17. The computing device of claim 16 , wherein

the locally stored at least the portion of the first predetermined index is any one, selected from:

a modified version of at least the portion of the remotely stored first predetermined index;

an exact copy of at least the portion of the remotely stored first predetermined index;

the locally stored at least the portion of the second predetermined index is any one, selected from:

a modified version of at least the portion of the remotely stored second predetermined index; and

an exact copy of at least the portion of the remotely stored second predetermined index.

18. The computing device of claim 16 , wherein,

before acquiring from at least the portion of the first predetermined index any one of (i) the first module code reference, and (ii) the indication of the second predetermined index, the processor is further configured to execute a verification whether the locally stored at least the portion of the first predetermined index is available; and

responsive to the locally stored at least the portion of the first predetermined index being available, the processor is further configured to use one of: (i) the remotely stored first predetermined index and (ii) the locally stored at least the portion of the first predetermined index, as a source of at least one, selected from:

the first module code reference;

the indication of the second predetermined index; and

responsive to the locally stored at least the portion of the first predetermined index being not available, the processor is further configured to use the remotely stored first predetermined index as a source of the first module code reference and of the indication of the second predetermined index.

19. The computing device of claim 16 , wherein

the first module code location is any one, selected from:

a local information storage medium; and

a remote information storage medium, and

the second module code location is any one, selected from:

a local information storage medium; and

a remote information storage medium.

20. The computing device of claim 19 , wherein the second module code location is the remote information storage medium, after acquiring the second module code from the second module code location, the processor further configured to:

responsive to determining that at least the portion of the second predetermined index is stored locally, modify the locally stored at least the portion of the second predetermined index such that the modified locally stored at least the portion of the second predetermined index comprises the second module code reference indicating a second module code location on the local information storage medium, and

responsive to determining the absence of the locally stored at least the portion of the second predetermined index, generate the modified version of at least the portion of the remotely stored second predetermined index, the modified version of at least the portion of the remotely stored second predetermined index comprising the second module code reference indicating the second module code location on the local information storage medium.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 9, 2024
From: DIRECT CURSUS TECHNOLOGY L.L.C
To: Y.E. HUB ARMENIA LLC
Reel/Frame 068524/0925 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 15, 2023
From: YANDEX EUROPE AG
To: DIRECT CURSUS TECHNOLOGY L.L.C
Reel/Frame 065692/0720 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 25, 2019
From: ZINCHUK, ALEKSANDR ALEKSANDROVICH; KONSTANTINOV, SERGEY SERGEEVICH
To: YANDEX LLC
Reel/Frame 048996/0153 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 25, 2019
From: YANDEX LLC
To: YANDEX EUROPE AG
Reel/Frame 048996/0229 →