Patents by Inventor William E. Weihl

William E. Weihl has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Publication number: 20100293229
    Abstract: A file transport mechanism according to the invention is responsible for accepting, storing and distributing files, such as configuration or control files, to a large number of field machines. The mechanism is comprised of a set of servers that accept, store and maintain submitted files. The file transport mechanism implements a distributed agreement protocol based on “vector exchange.” A vector exchange is a knowledge-based algorithm that works by passing around to potential participants a commitment bit vector. A participant that observes a quorum of commit bits in a vector assumes agreement. Servers use vector exchange to achieve consensus on file submissions. Once a server learns of an agreement, it persistently marks (in a local data store) the request as “agreed.” Once the submission is agreed, the server can stage the new file for download.
    Type: Application
    Filed: August 2, 2010
    Publication date: November 18, 2010
    Applicant: AKAMAI TECHNOLOGIES, INC.
    Inventors: Alexander Sherman, Andrew D. Berkheimer, Philip A. Lisiecki, William E. Weihl, Joel M. Wein
  • Patent number: 7769874
    Abstract: A file transport mechanism according to the invention is responsible for accepting, storing and distributing files, such as configuration or control files, to a large number of field machines. The mechanism is comprised of a set of servers that accept, store and maintain submitted files. The file transport mechanism implements a distributed agreement protocol based on “vector exchange.” A vector exchange is a knowledge-based algorithm that works by passing around to potential participants a commitment bit vector. A participant that observes a quorum of commit bits in a vector assumes agreement. Servers use vector exchange to achieve consensus on file submissions. Once a server learns of an agreement, it persistently marks (in a local data store) the request as “agreed.” Once the submission is agreed, the server can stage the new file for download.
    Type: Grant
    Filed: February 20, 2004
    Date of Patent: August 3, 2010
    Assignee: Akamai Technologies, Inc.
    Inventors: Alexander Sherman, Andrew D. Berkheimer, Philip A. Lisiecki, William E. Weihl, Joel M. Wein
  • Patent number: 7765304
    Abstract: Business applications running on a content delivery network (CDN) having a distributed application framework can create, access and modify state for each client. Over time, a single client may desire to access a given application on different CDN edge servers within the same region and even across different regions. Each time, the application may need to access the latest “state” of the client even if the state was last modified by an application on a different server. A difficulty arises when a process or a machine that last modified the state dies or is temporarily or permanently unavailable. The present invention provides techniques for migrating session state data across CDN servers in a manner transparent to the user. A distributed application thus can access a latest “state” of a client even if the state was last modified by an application instance executing on a different CDN server, including a nearby (in-region) or a remote (out-of-region) server.
    Type: Grant
    Filed: August 6, 2007
    Date of Patent: July 27, 2010
    Assignee: Akamai Technologies, Inc.
    Inventors: Andrew T. Davis, Jay G. Parikh, Srikanth Thirumalai, William E. Weihl, Mark Tsimelzon
  • Publication number: 20100138542
    Abstract: A method and system of load balancing application server resources operating in a distributed set of servers is described. In a representative embodiment, the set of servers comprise a region of a content delivery network. Each server in the set typically includes a server manager process, and an application server on which edge-enabled applications or application components are executed. As service requests are directed to servers in the region, the application servers manage the requests in a load-balanced manner, and without any requirement that a particular application server spawned on-demand.
    Type: Application
    Filed: February 8, 2010
    Publication date: June 3, 2010
    Inventors: Andrew T. Davis, Nate Kushman, Jay G. Parikh, Srinivasan Pichai, Daniel Stodolsky, Ashis Tarafdar, William E. Weihl
  • Patent number: 7660896
    Abstract: A method and system of load balancing application server resources operating in a distributed set of servers is described. In a representative embodiment, the set of servers comprise a region of a content delivery network. Each server is the set typically includes a server manager process, and an application server on which edge-enabled applications or application components are executed. As service requests are directed to servers in the region, the application servers manage the requests in a load-balanced manner, and without any requirement that a particular application server be spawned on-demand.
    Type: Grant
    Filed: April 14, 2004
    Date of Patent: February 9, 2010
    Assignee: Akamai Technologies, Inc.
    Inventors: Andrew T. Davis, Nate Kushman, Jay G. Parikh, Srinivasan Pichai, Daniel Stodolsky, Ashis Tarafdar, William E. Weihl
  • Patent number: 7254634
    Abstract: Business applications running on a content delivery network (CDN) having a distributed application framework can create, access and modify state for each client. Over time, a single client may desire to access a given application on different CDN edge servers within the same region and even across different regions. Each time, the application may need to access the latest “state” of the client even if the state was last modified by an application on a different server. A difficulty arises when a process or a machine that last modified the state dies or is temporarily or permanently unavailable. The present invention provides techniques for migrating session state data across CDN servers in a manner transparent to the user. A distributed application thus can access a latest “state” of a client even if the state was last modified by an application instance executing on a different CDN server, including a nearby (in-region) or a remote (out-of-region) server.
    Type: Grant
    Filed: March 10, 2003
    Date of Patent: August 7, 2007
    Assignee: Akamai Technologies, Inc.
    Inventors: Andrew T. Davis, Jay G. Parikh, Srikanth Thirumalai, William E. Weihl, Mark Tsimelzon
  • Patent number: 7127713
    Abstract: An application deployment model for enterprise applications to enable such applications to be deployed to and executed from a globally distributed computing platform, such as an Internet content delivery network (CDN). According to the invention, application developers separate their Web application into two layers: a highly distributed edge layer and a centralized origin layer. In a representative embodiment, the edge layer supports a servlet container that executes a Web tier, typically the presentation layer of a given Java-based application. Where necessary, the edge layer communicates with code running on an origin server to respond to a given request. In an alternative embodiment, the edge layer supports a more fully-provisioned application server that executes both Web tier (e.g., presentation) and Enterprise tier application (e.g., business logic) components.
    Type: Grant
    Filed: January 10, 2003
    Date of Patent: October 24, 2006
    Assignee: Akamai Technologies, Inc.
    Inventors: Andrew Thomas Davis, Jay Parikh, Srinivasan Pichai, Eddie Ruvinsky, Daniel Stodolsky, Mark Tsimelzon, William E. Weihl
  • Patent number: 7111057
    Abstract: A content file purge mechanism for a content delivery network (CDN) is described. A Web-enabled portal is used by CDN customers to enter purge requests securely. A purge request identifies one or more content files to be purged. The purge request is pushed over a secure link from the portal to a purge server, which validates purge requests from multiple CDN customers and batches the requests into an aggregate purge request. The aggregate purge request is pushed from the purge server to a set of staging servers. Periodically, CDN content servers poll the staging servers to determine whether an aggregate purge request exists. If so, the CDN content servers obtain the aggregate purge request and process the request to remove the identified content files from their local storage.
    Type: Grant
    Filed: October 31, 2000
    Date of Patent: September 19, 2006
    Assignee: Akamai Technologies, Inc.
    Inventors: Alexander Sherman, Philip A. Lisiecki, Joel M. Wein, Don A. Dailey, John Dilley, William E. Weihl
  • Publication number: 20040093419
    Abstract: A method of and system for secure content delivery. The method is carried out by a content delivery network service provider (CDNSP), which operates a secure CDN. The secure CDN may be a dedicated network or a subset of a larger distributed network that is managed by the service provider. A Web site obtains secure content delivery, preferably as a managed service, by aliasing the site (or given domains) to the CDN. Edge servers are selectively authenticated into the secure CDN before they can be used to deliver secure content, and the CDN service provider serves SSL pages over a secure connection on the site's behalf, preferably using an SSL certificate provided by the site. A copy of the customer's SSL certificate resides on the secure edge servers to allow them to serve SSL content on the customer's behalf. A key agent running on the edge server, however, ensures that the copy of the certificate only resides in memory and not on disk.
    Type: Application
    Filed: October 23, 2002
    Publication date: May 13, 2004
    Inventors: William E. Weihl, Andrew B. Ellis, Martin A. Kagan
  • Publication number: 20030154239
    Abstract: An application deployment model for enterprise applications to enable such applications to be deployed to and executed from a globally distributed computing platform, such as an Internet content delivery network (CDN). According to the invention, application developers separate their Web application into two layers: a highly distributed edge layer and a centralized origin layer. In a representative embodiment, the edge layer supports a servlet container that executes a Web tier, typically the presentation layer of a given Java-based application. Where necessary, the edge layer communicates with code running on an origin server to respond to a given request. In an alternative embodiment, the edge layer supports a more fully-provisioned application server that executes both Web tier (e.g., presentation) and Enterprise tier application (e.g., business logic) components.
    Type: Application
    Filed: January 10, 2003
    Publication date: August 14, 2003
    Inventors: Andrew Thomas Davis, Jay Parikh, Srinivasan Pichai, Eddie Ruvinsky, Daniel Stodolsky, Mark Tsimelzon, William E. Weihl
  • Publication number: 20030135509
    Abstract: An application deployment model for enterprise applications enables such applications to be deployed to and executed from a globally distributed computing platform, such as an edge server in an Internet content delivery network (CDN). In a representative embodiment, a CDN edge server supports application server code that executes a Web tier and/or Enterprise tier component of a given Java-based application. When multiple instances of the application server code are executed, given resources (e.g., memory, CPU, disk and network I/O) are monitored, and the application server instances are terminated or rate-limited to prevent over-utilization by any particular instance. In addition, a given application running in a given application server instance is restricted from taking certain actions, e.g., reading or writing from a file system, so that it cannot interfere with or access data from another customer's application.
    Type: Application
    Filed: January 10, 2003
    Publication date: July 17, 2003
    Inventors: Andrew Thomas Davis, Jay Parikh, Srinivasan Pichai, Eddie Ruvinsky, Daniel Stodolsky, Mark Tsimelzon, William E. Weihl
  • Patent number: 6549930
    Abstract: A method is provided for scheduling execution of a plurality of threads executed in a multithreaded processor. Resource utilizations of each of the plurality of threads are measured while the plurality of threads are concurrently executing in the multithreaded processor. Each of the plurality of threads is scheduled according to the measured resource utilizations using a thread scheduler.
    Type: Grant
    Filed: November 26, 1997
    Date of Patent: April 15, 2003
    Assignee: Compaq Computer Corporation
    Inventors: George Z. Chrysos, Jeffrey A. Dean, James E. Hicks, Jr., Carl A. Waldspurger, William E. Weihl
  • Patent number: 6374367
    Abstract: A method for sampling the performance of a computer system is provided. The computer system includes a plurality of functional units. The method selects transactions to be processed by a particular functional unit of the computer system. State information is stored while the selected transactions are processed by the functional unit. The state information is analyzed to guide optimization.
    Type: Grant
    Filed: November 26, 1997
    Date of Patent: April 16, 2002
    Assignee: Compaq Computer Corporation
    Inventors: Jeffrey A. Dean, James E. Hicks, Jr., George Z. Chrysos, Carl A. Waldspurger, William E. Weihl
  • Patent number: 6332178
    Abstract: A method estimates statistics of properties of transactions processed by a memory sub-system of a computer system. The method randomly selects memory transactions processed by the memory sub-system. States of the system are recorded as samples while the selected transaction are processed by the memory sub-system. The recorded states from a subset of the selected transactions are statistically analyzed to estimate statistics of the memory transactions.
    Type: Grant
    Filed: November 26, 1997
    Date of Patent: December 18, 2001
    Assignee: Compaq Computer Corporation
    Inventors: Jeffrey A. Dean, James E. Hicks, Jr., Carl A. Waldspurger, William E. Weihl
  • Patent number: 6237073
    Abstract: A method is provided for guiding virtual-to-physical mapping policies in a computer system including a processor and a memory. State information is randomly sampled from selected memory references in a stream of memory references issued by the processor to the memory. Cache hit/miss status, translation-look-aside buffer hit/miss status, and effective virtual and physical memory addresses of the sampled memory references are recorded in a profile record. The recorded information is aggregated by virtual memory address, and a new virtual-to-physical mapping is choosen to reduce cache and translation-look-aside buffer miss rates.
    Type: Grant
    Filed: November 26, 1997
    Date of Patent: May 22, 2001
    Assignee: Compaq Computer Corporation
    Inventors: Jeffrey Dean, James E. Hicks, Jr., William E. Weihl
  • Patent number: 6202127
    Abstract: An apparatus for sampling states of a computer system having a hierarchical memory arranged at a plurality of levels, the hierarchical memory storing data at addresses. The apparatus includes a selector for selecting memory transactions based on first state and transaction information. The memory transactions are to be processed by the hierarchical memory. A trigger activates the selector based on second state and transaction information. A sampler stores states of the computer system that are identified with the selected instructions while processing the selected memory transactions in the hierarchical memory.
    Type: Grant
    Filed: November 26, 1997
    Date of Patent: March 13, 2001
    Assignee: Compaq Computer Corporation
    Inventors: Jeffrey A. Dean, James E. Hicks, Jr., Carl A. Waldspurger, William E. Weihl
  • Patent number: 6195748
    Abstract: An apparatus is provided for sampling instructions in a processor pipeline of a computer system. The pipeline has a plurality of processing stages. Instructions are fetched into a first stage of the pipeline. A subset of the fetched instructions are identified as selected instructions. Event, latency, and state information of the system is sampled while any of the selected instructions are in any stage of the pipeline. Software is informed whenever any of the selected instructions leaves the pipeline to read the event and latency information.
    Type: Grant
    Filed: November 26, 1997
    Date of Patent: February 27, 2001
    Assignee: Compaq Computer Corporation
    Inventors: George Z. Chrysos, Jeffrey Dean, James E. Hicks, Carl A. Waldspurger, William E. Weihl, Daniel L. Leibholz, Edward J. McLellan
  • Patent number: 6175814
    Abstract: An apparatus is provided for determining an average number of instructions entering a stage of a processor pipeline of a computer system during a clock cycle of a processor clock. The number of instructions entering a particular stage of the pipeline are stored in a queue during each of a predetermined number (N) of clock cycles. The total number of instructions processed over the last P clock cycles is computed, where P is less than or equal to N. The total number of instructions processed is divided by the last P processor cycles to yield the instantaneous average number of instructions processed for each processor cycle. This average number of instructions processed is communicated to software.
    Type: Grant
    Filed: November 26, 1997
    Date of Patent: January 16, 2001
    Assignee: Compaq Computer Corporation
    Inventors: George Z. Chrysos, Jeffrey Dean, James E. Hicks, Jr., Carl A. Waldspurger, William E. Weihl
  • Patent number: 6163840
    Abstract: An apparatus is provided for sampling multiple concurretly executing instructions in a processor pipeline of a system. The pipeline has a plurality of processing stages. The apparatus identifies multiple selected when the instructions are fetched into a first stage of the pipeline. A subset of the the multiple selected instructions to execute concurrently in the pipeline. State information of the system is sampled while any of the multiple selected instructions are in any stage of the pipeline. Software is informed whenever all of the selected instructions leave the pipeline so that the software can read any of the state information.
    Type: Grant
    Filed: November 26, 1997
    Date of Patent: December 19, 2000
    Assignee: Compaq Computer Corporation
    Inventors: George Z. Chrysos, Jeffrey Dean, James E. Hicks, Daniel L. Leibholz, Edward J. McLellan, Carl A. Waldspurger, William E. Weihl
  • Patent number: 6148396
    Abstract: An apparatus is provided for collecting state information associated with an execution path of recently processed instructions in a processor pipeline of a computer system. The apparatus identifies a class of instructions to be sampled. Path-identifying state information of a currently processed instruction is sampled when the currently processed instruction belongs to the identified class of instructions. A shift register stores a predetermined number of entries storing selected state information, the shift register is simultaneously sampled along with additional state information about the instruction being executed at the time of sampling.
    Type: Grant
    Filed: November 26, 1997
    Date of Patent: November 14, 2000
    Assignee: Compaq Computer Corporation
    Inventors: George Z. Chrysos, Jeffrey Dean, Robert A. Eustace, James E. Hicks, Carl A. Waldspurger, William E. Weihl