The present disclosure describes systems and methods for reconfiguring the links made by a plurality of optical circuit switches between the nodes of the first layer and the nodes of the second layer that reduces the throughput loss when the network transitions form a first logical topology to a second logical topology. More particularly, the first logical topology is realized by a specific physical topology, while the second logical topology may be realized by one or more physical topologies. The disclosure describes a method for selecting a second physical topology from the one or more physical topologies that will realize the second logical topology while reducing the number of links within each of the optical circuit switches that must be reconfigured (i.e, disconnected from their present ports and reconnected to new ports within the optical circuit switch) to transition from the first to second logical topology.
|
1. A method for reconfiguring a network:
receiving an indication of a first physical topology of a network realizing a first logical topology, wherein the physical topology defines the connection of a plurality of nodes in a first layer to a plurality of nodes in a second layer through a plurality of optical circuit switches;
receiving an indication of a second logical topology to be implemented on the network;
determining a delta topology comprising a set of to-cut links and a set of to-connect links to transform the first logical topology to the second logical topology;
locating a first decomposable link set in the delta topology within a single optical circuit switch of the plurality optical switches, wherein a decomposable link set includes at least two to-cut links and at least two to-connect links, selected such that when the at least two to-cut links are cut, the corresponding at least two to-connect links can be connected;
for the located first decomposable link set, cutting the to-cut links and connecting the corresponding to-connect links;
iteratively:
shuffling one of the remaining to-cut links to a target optical circuit switch yielding a shuffled delta topology;
locating a second decomposable link set within the shuffled delta topology, wherein each of the links of the second decomposable link set passes through the target optical circuit switch; and
for the second located link set, cutting the to-cut links and interconnecting the ends of the cut to-links.
15. A non-transitory computer readable storage medium having instructions encoded thereon which, when executed by a processor, cause the processor to perform a method, the method comprising:
receiving an indication of a first physical topology of a network realizing a first logical topology, wherein the physical topology defines the connection of a plurality of nodes in a first layer to a plurality of nodes in a second layer through a plurality of optical circuit switches;
receiving an indication of a second logical topology to be implemented on the network;
determining a delta topology comprising a set of to-cut links and a set of to-connect links to transform the first logical topology to the second logical topology;
locating a first decomposable link set in the delta topology within a single optical circuit switch of the plurality optical switches, wherein a decomposable link set includes at least two to-cut links and at least two to-connect links, selected such that when the at least two to-cut links are cut, the corresponding at least two to-connect links can be connected;
for the located first decomposable link set, cutting the to-cut links and connecting the corresponding to-connect links;
iteratively:
shuffling one of the remaining to-cut links to a target optical circuit switch yielding a shuffled delta topology;
locating a second decomposable link set within the shuffled delta topology, wherein each of the links of the second decomposable link set passes through the target optical circuit switch; and
for the second located link set, cutting the to-cut links and interconnecting the ends of the cut to-links.
8. A system for reconfiguring a network, the system comprising:
a plurality of optical circuit switches; and
a controller coupled to each of the plurality of optical circuit switches, the controller configured to:
receive an indication of a first physical topology of a network realizing a first logical topology, wherein the physical topology defines the connection of a plurality of nodes in a first layer to a plurality of nodes in a second layer through the plurality of optical circuit switches;
receive an indication of a second logical topology to be implemented on the network;
determine a delta topology comprising a set of to-cut links and a set of to-connect links to transform the first logical topology to the second logical topology;
locate a first decomposable link set in the delta topology within a single optical circuit switch of the plurality optical switches, wherein a decomposable link set includes at least two to-cut links and at least two to-connect links, selected such that when the at least two to-cut links are cut, the corresponding at least two to-connect links can be connected;
for the located first decomposable link set, cut the to-cut links and connect the corresponding to-connect links;
iteratively:
shuffle one of the remaining to-cut links to a target optical circuit switch yielding a shuffled delta topology;
locate a second decomposable link set within the shuffled delta topology, wherein each of the links of the second decomposable link set passes through the target optical circuit switch; and
for the second located link set, cut the to-cut links and interconnect the ends of the cut to-links.
2. The method of
3. The method of
4. The method of
5. The method of 1, wherein shuffling one of the remaining to-cut links to a target optical circuit switch comprises cutting a link not within the delta topology.
6. The method of
7. The method of
9. The system of
10. The system of
11. The system of
12. The system of
13. The system of
14. The system of
16. The non-transitory computer readable storage medium of
17. The non-transitory computer readable storage medium of
18. The non-transitory computer readable storage medium of
19. The non-transitory computer readable storage medium of
20. The non-transitory computer readable storage medium of
|
Hybrid optical and electrical switches have been suggested to facilitate building modular data centers. However, when the connections maintained by these switches are broken responsive to the expansion of the data center's network, data throughput loss can occur as the connections are reconfigured.
A according to one aspect of the disclosure, a method for reconfiguring a network includes receiving an indication of a first physical topology of the network that realizes a first logical topology. The physical topology defines the connection of a plurality of nodes in a first layer to a plurality of nodes in a second layer through a plurality of optical circuit switches. The method also includes receiving an indication of a second logical topology to be implemented on the network, and then determining a delta topology. The delta topology includes a set of to-cut links and a set of to-connect links that transforms the first logical topology into the second logical topology. The method includes locating a first decomposable link set in the delta topology within a single optical circuit switch. A decomposable link set includes at least two to-cut links and at least two to-connect links.
The decomposable link set is selected such that when the at least two to-cut links are cut, the corresponding at least two to-connect links can be connected. For the located first decomposable link set, the to-cut links are cut and the to-connect links are connected. Iteratively, one of the remaining to-cut links is shuffled to a target optical circuit switch yielding a shuffled delta topology. Next, a second decomposable link set is located within the shuffled delta topology, wherein each of the links of the second decomposable link set passes through the target optical circuit switch. The to-cut links are cut and their ends are interconnected.
According a second aspect of the disclosure, a system for reconfiguring a network includes a plurality of optical circuit switches and a controller coupled to each of the plurality of optical circuit switches. The controller is configured to receive an indication of a first physical topology of a network realizing a first logical topology, wherein the physical topology defines the connection of a plurality of nodes in a first layer to a plurality of nodes in a second layer through the plurality of optical circuit switches. The controller is also configured to receive an indication of a second logical topology to be implemented on the network, and to determine a delta topology comprising a set of to-cut links and a set of to-connect links to transform the first logical topology to the second logical topology. The controller is also configured to locate a first decomposable link set in the delta topology within a single optical circuit switch of the plurality optical switches. For the located first decomposable link set, the controller cuts the to-cut links and connects the corresponding to-connect links. Then, iteratively, the controller shuffles one of the remaining to-cut links to a target optical circuit switch yielding a shuffled delta topology. The controller then locates a second decomposable link set within the shuffled delta topology and the rotates the second decomposable link set.
According to another aspect of the disclosure, a non-transitory computer readable storage medium having instructions encoded thereon which, when executed by a processor, cause the processor to perform a method. The physical topology defines the connection of a plurality of nodes in a first layer to a plurality of nodes in a second layer through a plurality of optical circuit switches. The method includes receiving an indication of a second logical topology to be implemented on the network, and then determining a delta topology including a set of to-cut links and a set of to-connect links to transform the first logical topology to the second logical topology. The method includes locating a first decomposable link set in the delta topology within a single optical circuit switch of the plurality optical switches. A decomposable link set includes at least two to-cut links and at least two to-connect links. The decomposable link set is selected such that when the at least two to-cut links are cut, the corresponding at least two to-connect links can be connected. For the located first decomposable link set, the to-cut links are cut and the to-connect links are connected. Iteratively, one of the remaining to-cut links is shuffled to a target optical circuit switch yielding a shuffled delta topology. Next, a second decomposable link set is located within the shuffled delta topology, wherein each of the links of the second decomposable link set passes through the target optical circuit switch. The to-cut links are cut and their ends are interconnected.
The skilled artisan will understand that the figures, described herein, are for illustration purposes only. It is to be understood that in some instances various aspects of the described implementations may be shown exaggerated or enlarged to facilitate an understanding of the described implementations. In the drawings, like reference characters generally refer to like features, functionally similar and/or structurally similar elements throughout the various drawings. The drawings are not necessarily to scale, emphasis instead being placed upon illustrating the principles of the teachings. The drawings are not intended to limit the scope of the present teachings in any way. The system and method may be better understood from the following illustrative description with reference to the following drawings in which:
Following below are more detailed descriptions of various concepts related to, and implementations of, systems and methods for reducing throughput loss during the expansion of a computer network. The various concepts introduced above and discussed in greater detail below may be implemented in any of numerous ways, as the described concepts are not limited to any particular manner of implementation. Examples of specific implementations and applications are provided primarily for illustrative purposes.
In some implementations, a datacenter network includes a plurality of optical circuit switches, which provide links between the nodes (or blocks) in the different layers (generally referred to as a first layer and a second layer) of a network. The interconnections between the ports within each optical circuit switch are reprogrammable, enabling the logical connectivity of the datacenter network to be reconfigured without plugging/unplugging cables. In some implementations, during reconfiguration, data throughput loss occurs when the data links passing through an optical circuit switch are temporarily disconnected and reconnected in a new configuration.
The present disclosure describes systems and methods for reconfiguring the links made by a plurality of optical circuit switches between the nodes of the first layer and the nodes of the second layer of a data center to reduce the throughput loss when the network transitions form a first logical topology to a second logical topology. More particularly, the first logical topology is realized by a specific physical topology, while the second logical topology may be realized by one or more physical topologies. The disclosure describes a method for selecting a second physical topology from the one or more physical topologies that will realize the second logical topology, which reduces the number of links within each of the optical circuit switches that must be reconfigured (i.e., disconnected from their present ports and reconnected to new ports within the optical circuit switch) to transition from the first to second logical topology.
As indicated above, each superblock 102 includes a large number of servers 104. In some implementations, a superblock 102 may include hundreds or more than one thousand servers. The servers 104 are arranged in server racks 106. A top-of-rack switch 116 routes data communications between servers 104 within a given rack 106 and from servers within the rack to the intra-superblock switch 112
The data center 100 also includes a switch configuration system 190 (also referred to as a controller 190). The switch configuration system 190 controls how switches (e.g., optical circuit switches) in the data center 100 connect the superblocks 102 to spineblocks 120. The switch configuration system 190 is configured to implement the methods described herein. For example, the switch configuration system 190 controls the transition from a first logical topology to a second logical topology. In some implementations, the switch configuration system 190 is a component of, or is in communication with, the spineblock switch 114. The components of the switch configuration system 190 can be implemented by special purpose logic circuitry (e.g., an FPGA (field programmable gate array), an ASIC (application-specific integrated circuit)) or a general purpose computing device.
As described above, and more generally referring to
At certain time points, the datacenter network is reconfigured by the switch configuration system 190. For example, the network can be reconfigured during network expansion or to redistribute computational demands. Breaking links during the transition from a first logical topology to a second logical topology adversely effects data throughput. When a plurality of physical topologies can realize the second logical topology, determining and selecting a physical topology that reduces the number of links that are broken during the reconfiguration phase decreases data throughput loss during the reconfiguration phase. The data throughput loss is decreased because fewer links are broken and therefore more data can flow uninterrupted during the reconfiguration process.
As set forth above, and referring to
Continuing with the example and referring to
Next, and also referring to
Referring back to
Referring back to
Next, in method 200, the decomposable link set is rotated if the link set is rotatable (step 206). In some implementations, the process of rotating a rotatable link set is controlled by the controller 190. For example, the controller 190 may send instructions to an optical circuit switch for it to disconnect and then reconfigure a plurality of its internal links.
In some implementations, the initial delta topology may reveal a plurality of rotatable decomposable link sets. The controller 190 may rotate each of the plurality of rotatable decomposable link sets before progressing to step 207 of the method 200. In some implementations, if a plurality of rotatable decomposable link sets exist, the controller 190 ranks the optical circuit switches based on the number of to-cut links in the representative optical circuit switches. The controller 190 then begins rotating the rotatable link sets, starting with the optical circuit switches with the fewest to-cut links and progressing to the optical circuit switches with the most to-cut links. In some implementations, the delta topology is updated each time a link set is rotated.
Once there are no more rotatable decomposable link sets, a to-cut link is shuffled to a target optical circuit switch (step 207). In some implementations, shuffling includes cutting a to-cut link and a link (within the same optical circuit switch as the to-cut link) that does not need to be cut. The open ports in the optical circuit switch are then interconnected. This creates a new to-cut link in a different optical circuit switch. In some implementations, shuffling does not reduce the number of total to-cut links in the delta topology, but rather attempts to create a new rotatable link set.
In some implementations, to shuffle a to-cut link, a to-cut link (denoted a X) within a non-rotatable link set is selected to shuffle to the target OSC. The target OCS is the OCS to which the to-cut link will be shuffled. As described above, decomposable link sets include at least two to-cut links. The target OCS is the optical circuit switch through which the other to-cut link of the non-rotatable link set passes. In this example, OCS 303[0] is the target OCS and to-cut link 552 is the to-cut link to be shuffled. The to-cut link passing through the target OCS is denoted as X′. As illustrated in
In some implementations, the to-cut link is shuffled by cutting the links X and the link between n[2] and n[3] and then interconnecting the open ports. Interconnecting the open ports implements link Y and a new link between n[3] and n[1] in the physical topology. In some implementations, link Y was one of the to-connect links that existed in the delta topology and the new link between n[3] and n[1] is a link that duplicates a link within the target OCS enabling the new duplicate link in the target OCS to be cut.
In some implementations, after shuffling a link to the target OCS, the delta topology is updated.
Referring to the method 200 of
After a new rotatable link set is found, the link set is rotated (step 209). As described above, in relation to step 206, the rotatable link set is rotated by cutting the to-cut links and interconnecting their ports.
Next, the method 200 checks to determine if the second topology is implemented (step 210). Referring again to
Implementations of the subject matter and the operations described in this specification can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. The subject matter described in this specification can be implemented as one or more computer programs, i.e., one or more modules of computer program instructions, encoded on one or more computer storage media for execution by, or to control the operation of, data processing apparatus.
A computer readable medium can be, or be included in, a computer-readable storage device, a computer-readable storage substrate, a random or serial access memory array or device, or a combination of one or more of them. Moreover, while a computer readable medium is not a propagated signal, a computer storage medium can be a source or destination of computer program instructions encoded in an artificially-generated propagated signal. The computer storage medium can also be, or be included in, one or more separate components or media (e.g., multiple CDs, disks, or other storage devices). Accordingly, the computer readable medium is tangible and non-transitory.
The operations described in this specification can be performed by a data processing apparatus on data stored on one or more computer-readable storage devices or received from other sources. The term “data processing apparatus” or “computing device” encompasses all kinds of apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, a system on a chip, or multiple ones, or combinations of the foregoing The apparatus can include special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC. The apparatus can also include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, a cross-platform runtime environment, a virtual machine, or a combination of one or more of them. The apparatus and execution environment can realize various different computing model infrastructures, such as web services, distributed computing and grid computing infrastructures.
A computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, declarative or procedural languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, object, or other unit suitable for use in a computing environment. A computer program may, but need not, correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub-programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for performing actions in accordance with instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks. However, a computer need not have such devices.
While this specification contains many specific implementation details, these should not be construed as limitations on the scope of any inventions or of what may be claimed, but rather as descriptions of features specific to particular implementations of particular inventions. Certain features described in this specification in the context of separate implementations can also be implemented in combination in a single implementation. Conversely, various features described in the context of a single implementation can also be implemented in multiple implementations separately or in any suitable subcombination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a subcombination or variation of a subcombination.
Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system components in the implementations described above should not be understood as requiring such separation in all implementations, and it should be understood that the described program components and systems can generally be integrated in a single product or packaged into multiple products.
Thus, particular implementations of the subject matter have been described. Other implementations are within the scope of the following claims. In some cases, the actions recited in the claims can be performed in a different order and still achieve desirable results. In addition, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In certain implementations, multitasking and parallel processing may be advantageous.
Kabbani, Abdul, Felderman, Robert
Patent | Priority | Assignee | Title |
10454585, | Nov 30 2015 | HUAWEI TECHNOLOGIES CO , LTD | Data center network system and signal transmission system |
10524030, | Nov 11 2015 | Juniper Networks, Inc. | Methods and apparatus for a flattened data center network employing wavelength-agnostic endpoints |
10944636, | Sep 28 2016 | JPMORGAN CHASE BANK, N A , AS ADMINISTRATIVE AGENT | Dynamically identifying criticality of services and data sources |
10965378, | May 14 2019 | Infinera Corporation | Out-of-band communication channel for sub-carrier-based optical communication systems |
10965439, | Apr 19 2019 | Infinera Corporation | Synchronization for subcarrier communication |
10972184, | May 07 2019 | Infinera Corporation | Bidirectional optical communications |
10992389, | Feb 07 2018 | INFINERA CORP | Independently routable digital subcarriers with configurable spacing for optical communication networks |
11032020, | Apr 19 2019 | Infinera Corporation | Synchronization for subcarrier communication |
11075694, | Mar 04 2019 | Infinera Corporation | Frequency division multiple access optical subcarriers |
11088764, | May 14 2019 | Infinera Corporation | Out-of-band communication channel for sub-carrier-based optical communication systems |
11095364, | Mar 04 2019 | Infinera Corporation | Frequency division multiple access optical subcarriers |
11095373, | Feb 07 2018 | Infinera Corporation | Network architecture for independently routable digital subcarriers for optical communication networks |
11095374, | May 14 2019 | Infinera Corporation | Out-of-band communication channel for sub-carrier-based optical communication systems |
11095389, | Jul 12 2018 | Infinera Corporation | Subcarrier based data center network architecture |
11177889, | May 14 2019 | Infinera Corporation | Out-of-band communication channel for sub-carrier-based optical communication systems |
11190291, | May 14 2019 | Infinera Corporation | Out-of-band communication channel for subcarrier-based optical communication systems |
11218217, | Mar 04 2019 | Infinera Corporation | Code division multiple access optical subcarriers |
11239935, | May 14 2019 | Infinera Corporation | Out-of-band communication channel for subcarrier-based optical communication systems |
11251878, | Feb 07 2018 | INFINERA CORP | Independently routable digital subcarriers for optical communication networks |
11258508, | Mar 04 2019 | Infinera Corporation | Time division multiple access optical subcarriers |
11258528, | Sep 22 2019 | Infinera Corporation | Frequency division multiple access optical subcarriers |
11290393, | Sep 05 2019 | Infinera Corporation | Dynamically switching queueing schemes for network switches |
11296812, | May 14 2019 | Infinera Corporation | Out-of-band communication channel for subcarrier-based optical communication systems |
11297005, | Sep 05 2019 | Infinera Corporation | Dynamically switching queueing schemes for network switches |
11336369, | Mar 22 2019 | Infinera Corporation | Framework for handling signal integrity using ASE in optical networks |
11343000, | Feb 07 2018 | Infinera Corporation | Clock recovery for digital subcarriers for optical networks |
11356180, | Oct 10 2019 | Infinera Corporation | Hub-leaf laser synchronization |
11368228, | Apr 13 2018 | Infinera Corporation | Apparatuses and methods for digital subcarrier parameter modifications for optical communication networks |
11418312, | Apr 19 2019 | Infinera Corporation | Synchronization for subcarrier communication |
11451292, | Mar 04 2019 | Infinera Corporation | Time division multiple access optical subcarriers |
11451303, | Oct 10 2019 | Infinera Corporation | Optical subcarrier dual-path protection and restoration for optical communications networks |
11463175, | Oct 10 2019 | Infinera Corporation | Optical subcarrier dual-path protection and restoration for optical communications networks |
11470019, | Sep 05 2019 | Infinera Corporation | Dynamically switching queueing schemes for network switches |
11476966, | May 14 2019 | Infinera Corporation | Out-of-band communication channel for subcarrier-based optical communication systems |
11483066, | Mar 04 2019 | Infinera Corporation | Frequency division multiple access optical subcarriers |
11483257, | Sep 05 2019 | Infinera Corporation | Dynamically switching queueing schemes for network switches |
11489613, | May 14 2019 | Infinera Corporation | Out-of-band communication channel for subcarrier-based optical communication systems |
11496368, | Sep 28 2016 | JPMORGAN CHASE BANK, N A , AS ADMINISTRATIVE AGENT | Dynamically identifying criticality of services and data sources |
11515947, | Oct 10 2019 | Infinera Corporation | Optical subcarrier dual-path protection and restoration for optical communications networks |
11539430, | Mar 04 2019 | Infinera Corporation | Code division multiple access optical subcarriers |
11539443, | Oct 10 2019 | Infinera Corporation | Optical subcarrier dual-path protection and restoration for optical communications networks |
11563498, | Oct 10 2019 | Infinera Corporation | Optical subcarrier dual-path protection and restoration for optical communications networks |
11569915, | Oct 10 2019 | Infinera Corporation | Optical subcarrier dual-path protection and restoration for optical communications networks |
11637630, | Mar 04 2019 | Infinera Corporation | Frequency division multiple access optical subcarriers |
11743621, | Oct 10 2019 | INFINERA CORP | Network switches systems for optical communications networks |
11800266, | May 19 2021 | MELLANOX TECHNOLOGIES, LTD. | Hybrid optoelectrical switches |
11838105, | May 07 2019 | Infinera Corporation | Bidirectional optical communications |
11870496, | Oct 10 2019 | Infinera Corporation | Optical subcarrier dual-path protection and restoration for optical communications networks |
11901950, | Oct 10 2019 | Infinera Corporation | Optical subcarrier dual-path protection and restoration for optical communications networks |
9894427, | Nov 11 2015 | Juniper Networks, Inc | Methods and apparatus for a flattened data center network employing wavelength-agnostic endpoints |
Patent | Priority | Assignee | Title |
6094417, | Dec 01 1998 | Qwest Communications International Inc | Method and system for determining optimized SONET rings |
6626586, | Mar 17 1999 | XIEON NETWORKS S A R L | Remotely configurable optical communication network |
6711324, | Jul 11 2002 | Sprint Communications Company, L.P. | Software model for optical communication networks |
7606494, | Jun 04 2002 | Level 3 Communications, LLC | Optical transmission systems, devices, and methods |
7830789, | Jun 28 2007 | PROPHIX SOFTWARE INC | Method for accommodating signal paths to ring network |
8195784, | May 30 2008 | Microsoft Technology Licensing, LLC | Linear programming formulation of resources in a data center |
8370490, | Jul 01 2010 | MAPLEBEAR INC | Cloud service cost-optimal data center assignment |
8660010, | Jul 02 2004 | AT&T Intellectual Property I, L.P. | System and method for second order multi-layer traffic grooming for optical network optimization |
20020027885, | |||
20050002603, | |||
20050033742, | |||
20060153496, | |||
20100129078, | |||
20100266281, | |||
20110176804, | |||
20120008945, | |||
20120128354, | |||
20120182865, | |||
20130083701, | |||
20130308444, | |||
20140270762, | |||
WO2013091688, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Jan 13 2014 | FELDERMAN, ROBERT | Google Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 032079 | /0798 | |
Jan 28 2014 | Google Inc. | (assignment on the face of the patent) | / | |||
Jan 28 2014 | KABBANI, ABDUL | Google Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 032079 | /0798 | |
Sep 29 2017 | Google Inc | GOOGLE LLC | CHANGE OF NAME SEE DOCUMENT FOR DETAILS | 044334 | /0466 |
Date | Maintenance Fee Events |
Apr 22 2019 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Apr 20 2023 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Date | Maintenance Schedule |
Oct 20 2018 | 4 years fee payment window open |
Apr 20 2019 | 6 months grace period start (w surcharge) |
Oct 20 2019 | patent expiry (for year 4) |
Oct 20 2021 | 2 years to revive unintentionally abandoned end. (for year 4) |
Oct 20 2022 | 8 years fee payment window open |
Apr 20 2023 | 6 months grace period start (w surcharge) |
Oct 20 2023 | patent expiry (for year 8) |
Oct 20 2025 | 2 years to revive unintentionally abandoned end. (for year 8) |
Oct 20 2026 | 12 years fee payment window open |
Apr 20 2027 | 6 months grace period start (w surcharge) |
Oct 20 2027 | patent expiry (for year 12) |
Oct 20 2029 | 2 years to revive unintentionally abandoned end. (for year 12) |