Load balancing web service by rejecting connections
    1.
    发明授权
    Load balancing web service by rejecting connections 有权
    通过拒绝连接来负载平衡Web服务

    公开(公告)号:US08769541B2

    公开(公告)日:2014-07-01

    申请号:US12651069

    申请日:2009-12-31

    IPC分类号: G06F9/46

    摘要: A load balancer allocates requests to a pool of web servers configured to have low queue capacities. If the queue capacity of a web server is reached, the web server responds to an additional request with a rejection notification to the load balancer, which enables the load balancer to quickly send the rejected request to another web server. Each web server self-monitors its rejection rate. If the rejection rate exceeds a threshold, the number of processes concurrently running on the web server is increased. If the rejection rate falls below a threshold, the number of processes concurrently running on the web server is decreased.

    摘要翻译: 负载平衡器将请求分配给配置为具有低队列容量的Web服务器池。 如果达到Web服务器的队列容量,则Web服务器将响应额外的请求,并向负载均衡器发送拒绝通知,这使负载平衡器能够将拒绝的请求快速发送到另一个Web服务器。 每个Web服务器自我监控其拒绝率。 如果拒绝率超过阈值,则在Web服务器上同时运行的进程数量增加。 如果拒绝率低于阈值,则在Web服务器上同时运行的进程数量减少。

    Technique for dynamically restricting thread concurrency without rewriting thread code
    2.
    发明授权
    Technique for dynamically restricting thread concurrency without rewriting thread code 有权
    在不重写线程代码的情况下动态地限制线程并发的技术

    公开(公告)号:US08245207B1

    公开(公告)日:2012-08-14

    申请号:US12105451

    申请日:2008-04-18

    IPC分类号: G06F9/44 G06F9/46

    摘要: A method for executing uniprocessor (UP) coded workloads in a computer capable of concurrent thread execution is disclosed. The method identifies threads in the uniprocessor coded workloads (UP-workloads) which can execute concurrently, and identifies threads in the UP-workloads which cannot execute concurrently. First threads which cannot execute concurrently are assigned to a first concurrency group. Second threads which cannot execute concurrently are assigned to a second concurrency group. Any thread in the first concurrency group can execute concurrently with any thread in the second concurrency group. The computer capable of concurrent thread execution then executes the UP-coded workloads in the first concurrency group at substantially the same time as executing the UP-coded workloads in the second concurrency group.

    摘要翻译: 公开了一种在能够并发线程执行的计算机中执行单处理器(UP)编码工作负载的方法。 该方法识别可以并发执行的单处理器编码工作负载(UP工作负载)中的线程,并识别不能同时执行的UP工作负载中的线程。 不能同时执行的第一个线程被分配给第一个并发组。 不能同时执行的第二个线程被分配给第二个并发组。 第一个并发组中的任何线程都可以与第二个并发组中的任何线程同时执行。 能够并行线程执行的计算机在与第二并发组中执行UP编码的工作负载基本上相同的时间执行第一并发组中的UP编码工作负载。

    EXTENSION OF WRITE ANYWHERE FILE SYSTEM LAYOUT
    3.
    发明申请
    EXTENSION OF WRITE ANYWHERE FILE SYSTEM LAYOUT 有权
    写入任何文件系统布局的扩展

    公开(公告)号:US20120179891A1

    公开(公告)日:2012-07-12

    申请号:US13351017

    申请日:2012-01-16

    IPC分类号: G06F12/10

    摘要: A file system layout apportions an underlying physical volume into one or more virtual volumes (vvols) of a storage system. The underlying physical volume is an aggregate comprising one or more groups of disks, such as RAID groups, of the storage system. The aggregate has its own physical volume block number (pvbn) space and maintains metadata, such as block allocation structures, within that pvbn space. Each vvol has its own virtual volume block number (vvbn) space and maintains metadata, such as block allocation structures, within that vvbn space. Notably, the block allocation structures of a vvol are sized to the vvol, and not to the underlying aggregate, to thereby allow operations that manage data served by the storage system (e.g., snapshot operations) to efficiently work over the vvols.

    摘要翻译: 文件系统布局将底层物理卷分配到存储系统的一个或多个虚拟卷(vvols)中。 底层物理卷是包含存储系统的一组或多组磁盘(如RAID组)的聚合。 聚合具有自己的物理卷块数(pvbn)空间,并在该pvbn空间内维护诸如块分配结构之类的元数据。 每个vvol具有自己的虚拟卷块号(vvbn)空间,并在该vvbn空间内维护诸如块分配结构的元数据。 值得注意的是,vvol的块分配结构的大小适合于vvol,而不是基础聚合,从而允许管理由存储系统服务的数据(例如,快照操作)的操作有效地在vvols上工作。

    System and method for efficient updates of sequential block storage
    4.
    发明授权
    System and method for efficient updates of sequential block storage 有权
    用于有序更新顺序块存储的系统和方法

    公开(公告)号:US08219749B2

    公开(公告)日:2012-07-10

    申请号:US11741553

    申请日:2007-04-27

    申请人: Robert M. English

    发明人: Robert M. English

    IPC分类号: G06F12/02

    摘要: A system and method enhances performance of updates to sequential block storage of a storage system. According to an aspect of the invention, a disk array of the storage system is utilized to extend write buffers of the system, thereby rendering a portion of the disk array a disk-based log. To that end, one portion of the disk array is organized into a home location array having a set of sequential home locations for disk blocks. Another portion of the disk array is organized into the disk-based log having a set of log buffers configured to store versions of disk blocks that have yet to be returned to their home locations in the home location array. In addition, non-volatile memory of the storage system is organized as an index configured to provide efficient mappings of disk blocks not yet returned to their home locations. In accordance with another aspect of the invention, a novel disk-based multi-level sort procedure is provided to establish locality among updates (write data) held in the disk-based log, thereby enabling the write data to be efficiently written to home locations on the disk array.

    摘要翻译: 系统和方法增强了对存储系统的顺序块存储的更新的性能。 根据本发明的一个方面,存储系统的磁盘阵列用于扩展系统的写入缓冲器,从而使得磁盘阵列的一部分成为基于磁盘的日志。 为此,磁盘阵列的一部分被组织成具有用于磁盘块的一组顺序归属位置的归属位置阵列。 磁盘阵列的另一部分被组织到具有一组日志缓冲器的基于磁盘的日志中,该组日志缓冲器被配置为存储尚未被返回到归属位置阵列中的本地位置的磁盘块的版本。 此外,存储系统的非易失性存储器被组织为被配置为提供尚未返回到其本地位置的磁盘块的有效映射的索引。 根据本发明的另一方面,提供了一种新颖的基于磁盘的多级分类过程,以在保持在基于磁盘的日志中的更新(写入数据)之间建立位置,由此使写入数据能够有效地写入本地位置 在磁盘阵列上。

    Reducing load imbalance in a storage system
    5.
    发明授权
    Reducing load imbalance in a storage system 有权
    降低存储系统中的负载不平衡

    公开(公告)号:US07984259B1

    公开(公告)日:2011-07-19

    申请号:US11957925

    申请日:2007-12-17

    申请人: Robert M. English

    发明人: Robert M. English

    IPC分类号: G06F5/06

    摘要: The present invention provides a system, method, and computer program product for reducing load imbalance in a storage system having a plurality of storage devices organized in one or more RAIDs for storing data by moving data from heavily-loaded storage devices to less-loaded storage devices during normal data access operations. As a result of moving data to less-loaded storage devices, the service latency of those storage devices decreases, thereby optimizing the system's performance.

    摘要翻译: 本发明提供了一种用于减少存储系统中的负载不平衡的系统,方法和计算机程序产品,其具有组织在一个或多个RAID中的多个存储设备,用于通过将数据从重负载存储设备移动到较少负载的存储器来存储数据 设备在正常数据访问操作期间。 由于将数据移动到较少的存储设备,这些存储设备的服务等待时间减少,从而优化了系统的性能。

    Data placement technique for striping data containers across volumes of a storage system cluster
    6.
    发明授权
    Data placement technique for striping data containers across volumes of a storage system cluster 有权
    用于在存储系统集群的卷上分条数据容器的数据放置技术

    公开(公告)号:US07647451B1

    公开(公告)日:2010-01-12

    申请号:US12109272

    申请日:2008-04-24

    IPC分类号: G06F12/00 G06F11/00

    摘要: A technique places content, such as data, of one or more data containers on volumes of a striped volume set (SVS). The placement of data across the volumes of the SVS allows specification of a deterministic pattern of fixed length. That is, the pattern determines a placement of data of a data container that is striped among the volumes of the SVS. The placement pattern is such that the stripes are distributed exactly or nearly equally among the volumes and that, within any local span of a small multiple of the number of volumes, the stripes are distributed nearly equally among the volumes. The placement pattern is also substantially similar for a plurality of SVSs having different numbers of volumes.

    摘要翻译: 一种技术将一个或多个数据容器的内容(如数据)放置在条带卷集(SVS)的卷上。 数据在SVS卷上的放置允许规定固定长度的确定性模式。 也就是说,该模式确定在SVS的卷之间条带化的数据容器的数据的放置。 放置图案使得条纹在卷之间精确地或几乎相等地分布,并且在卷的数量的小倍数的任何局部跨度内,条纹在卷之间几乎相等地分布。 对于具有不同数量的体积的多个SVS,放置图案也基本相似。

    SYSTEM AND METHOD FOR EFFICIENT UPDATES OF SEQUENTIAL BLOCK STORAGE
    7.
    发明申请
    SYSTEM AND METHOD FOR EFFICIENT UPDATES OF SEQUENTIAL BLOCK STORAGE 有权
    用于有序更新的序列块存储的系统和方法

    公开(公告)号:US20090034377A1

    公开(公告)日:2009-02-05

    申请号:US11927952

    申请日:2007-10-30

    IPC分类号: G11B15/52 G11B19/02 G11B20/10

    摘要: An improved system and method enhances performance of updates to sequential block storage of a storage system. A disk-based sort procedure is provided to establish locality among updates (write data) held in a disk-based log, thereby enabling the write data to be efficiently written to home locations on a home location array. As the write data is received, a log manager of the storage system temporarily stores the data efficiently on the disk-based log. As more write data arrives, the log manager sorts the data in the log in accordance with the sort procedure, thus increasing the locality of data when stored on the home location array. When the log approaches capacity, the log manager writes the sorted data to their home locations on the array with high locality and performance.

    摘要翻译: 改进的系统和方法增强了对存储系统的顺序块存储的更新的性能。 提供基于磁盘的分类程序以在保持在基于磁盘的日志中的更新(写入数据)之间建立位置,从而使写入数据能够有效地写入归属位置阵列上的归属位置。 当接收到写入数据时,存储系统的日志管理器将有效的数据临时存储在基于磁盘的日志上。 随着更多的写入数据到达,日志管理器根据分类过程对日志中的数据进行排序,从而在存储在归属位置数组上时增加数据的位置。 当日志接近容量时,日志管理器将排序数据写入阵列的本地位置和性能很高。

    Distributed scheduling of parallel jobs with no kernel-to-kernel communication
    9.
    发明授权
    Distributed scheduling of parallel jobs with no kernel-to-kernel communication 失效
    没有内核到内核通信的并行作业的分布式调度

    公开(公告)号:US06766515B1

    公开(公告)日:2004-07-20

    申请号:US08801646

    申请日:1997-02-18

    IPC分类号: G06F900

    CPC分类号: G06F9/4843 G06F9/4881

    摘要: A system and a method of scheduling a plurality of threads from a multi-threaded program. A shared arena is provided in user memory, wherein the shared arena includes a register save area for each of the plurality of threads. A processor, when allocated to the application, executes the application's user-level scheduler and selects a user-level thread from a plurality of available threads, wherein the step of selecting includes the step of reading register context associated with the selected thread from one of the plurality of register save areas. In multikernel systems, kernels having access to an application's register save areas can execute preempted threads from that application with no kernel-to-kernel communication. Likewise, kernels having access to an application's user-level run queues can execute ready-to-run threads from that application with no kernel-to-kernel communication.

    摘要翻译: 一种从多线程程序调度多个线程的系统和方法。 在用户存储器中提供共享的竞技场,其中共享竞技场包括用于多个线程中的每一个的寄存器保存区域。 当处理器分配给应用程序时,执行应用程序的用户级调度程序,并从多个可用线程中选择一个用户级线程,其中选择步骤包括以下步骤之一:选择线程从与 多个寄存器保存区域。 在多内核系统中,具有访问应用程序的寄存器保存区域的内核可以执行没有内核到内核通信的应用程序的抢占线程。 同样,可以访问应用程序的用户级运行队列的内核可以从该应用程序执行即可运行的线程,而无需内核到内核的通信。

    Dynamic allocation of registers to procedures in a digital computer
    10.
    发明授权
    Dynamic allocation of registers to procedures in a digital computer 失效
    动态分配寄存器到数字计算机中的程序

    公开(公告)号:US5564031A

    公开(公告)日:1996-10-08

    申请号:US629041

    申请日:1996-04-12

    摘要: In a digital computer, a circular queue of registers in a register file are allocated as temporary local storage for procedures rather than using the known caller/callee save convention in order to minimize main memory references. A called procedure dynamically allocates local registers as needed without regard to registers used by the caller of the procedure or by any callee of the procedure, whereby register allocation is not restricted by any predetermined window size. Local registers, including parameter passing registers, are allocated in the called procedure, rather than a priori at compile time, by adjusting register stack pointer values. Only the number of registers actually required by the procedure need by allocated. Optionally, rotating registers may be allocated among the local registers. Stack pointer values are stored in one of the parameter passing registers when a procedure is called. Hardware register file access circuitry maps virtual register numbers used by the procedures into the hardware register file. Upon return from a procedure, registers are deallocated by adjusting the register stack pointers to the values stored when the procedure was called.

    摘要翻译: 在数字计算机中,寄存器文件中的寄存器的循环队列被分配为用于过程的临时本地存储器,而不是使用已知的调用者/被调用者保存约定来最小化主存储器引用。 被调用的过程根据需要动态地分配本地寄存器,而不考虑由过程的调用者使用的寄存器或过程的任何被调用者,由此寄存器分配不受任何预定窗口大小的限制。 本地寄存器(包括参数传递寄存器)在调用过程中被分配,而不是在编译时通过调整寄存器堆栈指针值来先验地分配。 只有实际需要的寄存器数量需要分配。 可选地,可以在本地寄存器之间分配旋转寄存器。 调用过程时,堆栈指针值存储在参数传递寄存器之一中。 硬件寄存器文件访问电路将程序使用的虚拟寄存器编号映射到硬件寄存器文件中。 从过程返回时,通过将寄存器堆栈指针调整到调用过程时存储的值来释放寄存器。