Patents Assigned to Sun Microsystems
-
Publication number: 20070106851Abstract: A method for writing data to a storage pool, involving receiving a first write operation to write a first block to the storage pool, determining a first replication type for the first block using a first replication policy associated with the first block, determining a first number of physical blocks required to write the first block to the storage pool using a size of the first block and the first replication type, and writing the first block, in accordance with the first replication policy, to the storage pool by filling in the first number of physical blocks.Type: ApplicationFiled: April 19, 2006Publication date: May 10, 2007Applicant: Sun Microsystems, Inc.Inventors: Jeffrey Bonwick, William Moore
-
Publication number: 20070106846Abstract: A method for caching a block, which includes receiving a request to store the block in a cache and determining whether the cache is able to expand. If the cache is not able to expand, then determining whether evictable blocks are present in the cache and, if evictable blocks are present in the cache determining whether a total size of the evictable blocks is greater than or equal to a size of the block, evicting a sufficient number of the evictable blocks from the cache and storing the block in the cache, if the total size of the evictable blocks is greater than or equal to the size of the block, and activating a cache throttle, if the total size of the evictable blocks is less than the size of the block.Type: ApplicationFiled: May 3, 2006Publication date: May 10, 2007Applicant: Sun Microsystems, Inc.Inventors: Jeffrey Bonwick, William Moore, Mark Maybee, Matthew Ahrens
-
Publication number: 20070106700Abstract: A storage pool including a file system, where the file system is associated with a name and the name is determined using a hierarchical data structure.Type: ApplicationFiled: May 3, 2006Publication date: May 10, 2007Applicant: Sun Microsystems, Inc.Inventors: Matthew Ahrens, Mark Maybee, Jeffrey Bonwick
-
Publication number: 20070106865Abstract: A method for writing a logical block into a storage pool includes receiving a request to write the logical block, selecting a block allocation policy, by a file system associated with the storage pool, from a set of allocation policies, obtaining a list of free physical blocks in the storage pool, allocating a physical block from the list of free physical blocks, based on the block allocation policy, and writing the logical block to the physical block.Type: ApplicationFiled: April 20, 2006Publication date: May 10, 2007Applicant: Sun Microsystems, Inc.Inventors: William Moore, Jeffrey Bonwick
-
Publication number: 20070106632Abstract: A method for locating a root block in file system metadata, includes traversing the file system metadata to locate a leaf block, wherein the leaf block comprises a plurality of root blocks and at least one of the plurality of root blocks is unallocated, allocating the at least of one the plurality of unallocated root blocks to obtain an allocated root block, wherein the leaf block is associated with a fill count and the fill count is less than a maximum fill count of the leaf block.Type: ApplicationFiled: April 20, 2006Publication date: May 10, 2007Applicant: Sun Microsystems, Inc.Inventors: Jeffrey Bonwick, William Moore, Matthew Ahrens
-
Publication number: 20070106678Abstract: A storage pool, that includes a hierarchical data structure, wherein the hierarchical data structure comprises a plurality of nodes, wherein one of the plurality of nodes corresponds to the file system, and the file system, wherein the file system is associated with a value corresponding to an attribute, wherein the value is determined using the hierarchical data structure.Type: ApplicationFiled: May 11, 2006Publication date: May 10, 2007Applicant: Sun Microsystems, Inc.Inventors: Matthew Ahrens, Mark Maybee
-
Publication number: 20070106868Abstract: A computer readable medium includes executable instructions for writing a logical block in a storage pool by receiving a request to write the logical block, obtaining a first latency associated with a first disk in the storage pool and a second latency associated with a second disk in the storage pool, obtaining a list of free physical blocks, where the list of free physical blocks identifies free physical blocks on the first disk and the second disk, allocating a physical block from the list of free physical blocks based on the first latency and the second latency, and writing the logical block to the physical block.Type: ApplicationFiled: April 19, 2006Publication date: May 10, 2007Applicant: Sun Microsystems, Inc.Inventors: William Moore, Jeffrey Bonwick
-
Publication number: 20070106677Abstract: A computer readable medium includes executable instructions for resilvering a hierarchical block tree in a storage pool by traversing a branch of the hierarchical block tree only if a birth time of a parent block of the branch is greater than or equal to a lowest birth time on a dirty time log (DTL), and resilvering a child block in the branch only if the DTL comprises a birth time of the child block.Type: ApplicationFiled: April 19, 2006Publication date: May 10, 2007Applicant: Sun Microsystems, Inc.Inventors: William Moore, Jeffrey Bonwick, Matthew Ahrens
-
Publication number: 20070106863Abstract: A method for storing a first block and a second block, the includes storing the first block and the second block in a storage pool, and storing a third block in the storage pool, wherein the third block references the first block and second block and comprises a first fill count and a second fill count, wherein the first fill count corresponds to one selected from the group consisting of a number of data blocks directly referenced by the first block, a number of data blocks indirectly referenced by the first block, if the first block is an indirect block, wherein the first fill count is one if the first block is a data block.Type: ApplicationFiled: April 19, 2006Publication date: May 10, 2007Applicant: Sun Microsystems, Inc.Inventors: Jeffrey Bonwick, William Moore, Matthew Ahrens
-
Publication number: 20070106867Abstract: A method for resilvering a storage pool includes identifying a live block in the storage pool, determining whether a birth time associated with the live block is on a dirty time log (DTL), and resilvering the live block, if the birth time is on the DTL.Type: ApplicationFiled: April 19, 2006Publication date: May 10, 2007Applicant: Sun Microsystems, Inc.Inventors: Jeffrey Bonwick, William Moore
-
Publication number: 20070106870Abstract: A system includes a storage pool including a first disk and a second disk, a data management unit (DMU), and a storage pool allocator (SPA). The SPA is configured to receive a request from the DMU to write a logical block, allocate a first physical block on the first disk, attempt to write the logical block to the first physical block, and allocate a second physical block on the second disk, if the attempt to write the logical block to the first physical block fails.Type: ApplicationFiled: April 19, 2006Publication date: May 10, 2007Applicant: Sun Microsystems, Inc.Inventors: Jeffrey Bonwick, William Moore, Matthew Ahrens
-
Publication number: 20070106869Abstract: A method for storing a block in a file system includes attempting to store the block at a location on a disk, where the block is associated with a birth time and is selected from a group consisting of a data block and an indirect block, and updating a dirty time log (DTL) with the birth time if the block is not stored successfully on the disk.Type: ApplicationFiled: April 19, 2006Publication date: May 10, 2007Applicant: Sun Microsystems, Inc.Inventors: William Moore, Jeffrey Bonwick
-
Publication number: 20070106706Abstract: The invention relates to a system that includes a file system configured to create a snapshot of a hierarchical block tree (HBT) and a storage pool. After the snapshot has been created, the storage pool includes a snapshot, where the snapshot includes a copy of a first version of a root block and the HBT, where the HBT includes a second version of the root block. Further, the copy of the first version of the root block is created prior to overwriting the first version of the root block with the second version of the root block, the second version of the root block comprises references to a first block and a second block, and the copy of the first version of the root block comprises a reference to the first block and no reference to the second block.Type: ApplicationFiled: August 31, 2006Publication date: May 10, 2007Applicant: Sun Microsystems, Inc.Inventors: Matthew Ahrens, Mark Maybee, Jeffrey Bonwick
-
Publication number: 20070106849Abstract: A method for prefetching data in a file system includes detecting an access to a file in the file system, wherein an instance of file access information is generated upon each access to the file, placing a plurality of the instance of file access into an access history buffer, performing a collinear check between at least three of the plurality of the instance of file access information in the history buffer to determine a sequential access pattern, creating a prefetch stream based on the sequential access pattern if the collinear check succeeds, and placing the prefetch stream into the prefetch stream buffer.Type: ApplicationFiled: June 5, 2006Publication date: May 10, 2007Applicant: Sun Microsystems, Inc.Inventors: William Moore, Krister Johansen, Jeffrey Bonwick
-
Patent number: 7215556Abstract: A rack-mounted assembly (10) comprises one or more racks, each capable of containing one or more printed circuit boards (PCB) (18), interconnected by a backplane (15) which is located along the bottom of a shelf (14). This position of the backplane (15) allows the rear wall of the rack-mounted assembly to be perforated, thereby permitting a cooling airflow for the PCBs to pass in through the front of the assembly and then out through the back. An insertion mechanism is provided to allow a PCB to be inserted into a rack. To achieve this, the PCB must first travel backwards into the rack-mounted assembly, and then downwards into engagement with the backplane (15). In one embodiment, this is accomplished by supporting the PCB from a hanger (100) which moves in and out of the rack-mounted assembly along a guide rail (45). The hanger includes slots (115) that retain pins (110) from the PCB. The slots are orientated diagonally upwards and backwards.Type: GrantFiled: November 7, 2002Date of Patent: May 8, 2007Assignee: Sun Microsystems, Inc.Inventor: Sean Conor Wrycraft
-
Patent number: 7215175Abstract: An improved circuit for sensing and programming fuses in integrated circuits. The circuit is broadly comprised of a fuse cell, a reference circuit, a sense amplifier and a level detector. In one embodiment of the present invention, a two-stage sensing scheme is implemented. The improved fuse sensing circuit uses current-mode sensing and implements an auto-read current reduction scheme. Using a level-detect circuit, the virtual ground is raised automatically if the high-voltage power supply exceeds core supply (Vdd) by a fixed dc voltage. This reduces effective sensing voltage and the read current and thus helps preserve unblown fuse integrity. In one embodiment of the invention, four modes of operation are implemented: “Normal Read,” “Unblown_Read,” “Blown_Read_1” and “Blown_Read_2.” The default read mode is the “normal read” while the “Unblown” and “Blown” read modes are for fuse calibration purposes.Type: GrantFiled: September 1, 2004Date of Patent: May 8, 2007Assignee: Sun Microsystems, Inc.Inventors: Gurupada Mandal, Suresh Seshadri, David Hugh McIntyre, Raymond A. Heald, William Y. Mo
-
Patent number: 7216160Abstract: Methods for monitoring an application running on a server are described. Method steps include maintaining counters of statistics related to operation of the application, collecting first operational statistics based on counters from one or more application components, collecting second operational statistics based on counters from one or more application runtime environment components, updating aggregation statistics based on the collected statistics, and storing the statistics for access by a presentation agent which can interface with external monitoring tools. The nature and level of the collected statistics provide valuable insight into the operation of the application of interest.Type: GrantFiled: October 31, 2001Date of Patent: May 8, 2007Assignee: Sun Microsystems, Inc.Inventors: Murthy Chintalapati, Sreeram Duvvuru
-
Patent number: 7216248Abstract: A method and apparatus are provided, the method and apparatus comprising sending an output of a free-running counter to a comparator for a clock shaper logic unit, the free-running counter incremented every time a double-speed clock rises for an on-chip system and sending at least one input from a central processing unit (CPU) to the comparator for the clock shaper logic unit, the at least one input specifying a desired frequency. The method and apparatus also comprises producing a central processing unit (CPU) clock in the clock shaper logic unit based on the output of the free-running counter and the at least one input specifying the desired frequency by comparing a bit-reversed version of the output of the free-running counter with the at least one input specifying the desired frequency.Type: GrantFiled: March 20, 2003Date of Patent: May 8, 2007Assignee: Sun Microsystems, Inc.Inventor: Lawrence Butcher
-
Patent number: 7216202Abstract: One embodiment of the present invention provides a system that facilitates avoiding locks by speculatively executing critical sections of code. During operation, the system allows a process to speculatively execute a critical section of code within a program without first acquiring a lock associated with the critical section. If the process subsequently completes the critical section without encountering an interfering data access from another process, the system commits changes made during the speculative execution, and resumes normal non-speculative execution of the program past the critical section. Otherwise, if an interfering data access from another process is encountered during execution of the critical section, the system discards changes made during the speculative execution, and attempts to re-execute the critical section.Type: GrantFiled: February 24, 2004Date of Patent: May 8, 2007Assignee: Sun Microsystems, Inc.Inventors: Shailender Chaudhry, Marc Tremblay, Quinn A. Jacobson
-
Patent number: 7215142Abstract: An inverse toggle circuit includes a pair of input connections for receiving each of four possible input signal combinations in a sequential rotational manner. Each of four data paths are defined to be exercised in accordance with a respective input signal combination. A first output connection is controlled by first and third data paths. A second output connection is controlled by second and fourth data paths. Each data path is defined such that a currently exercised data path generates an output signal having an asserted state on the output connection that is controlled by the currently exercised data path. The currently exercised data path is also defined to cause a next data path in the sequence to generate an output signal having a non-asserted state on the output connection that is controlled by the next data path.Type: GrantFiled: December 13, 2005Date of Patent: May 8, 2007Assignee: Sun Microsystems, Inc.Inventor: Scott Fairbanks