Patents by Inventor Roch Bourbonnais

Roch Bourbonnais 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).

  • Patent number: 11630776
    Abstract: Aspects of the present disclosure include methods and system for fast allocation of memory from fragmented memory. In one example, at a processor receives a request for an address to a buffer stored in a magazine associated with the processor. Upon determining that the magazine associated with the processor is empty, a request is made to a depot layer for additional memory. Upon determining that the depot layer cannot satisfy the request for the additional memory, executing a call to a slab layer for the additional memory. The slab layer identifies one or more partially-allocated slabs and generates a new magazine. A set of addresses correspond to buffers may be stored in the new magazine. A reference to the new magazine may be transferred from the slab layer to the depot layer. The reference to the new magazine may then be transferred from the depot layer to the processor.
    Type: Grant
    Filed: May 27, 2022
    Date of Patent: April 18, 2023
    Assignee: Oracle International Corporation
    Inventor: Roch Bourbonnais
  • Publication number: 20220318143
    Abstract: Aspects of the present disclosure include methods and system for fast allocation of memory from fragmented memory. In one example, at a processor receives a request for an address to a buffer stored in a magazine associated with the processor. Upon determining that the magazine associated with the processor is empty, a request is made to a depot layer for additional memory. Upon determining that the depot layer cannot satisfy the request for the additional memory, executing a call to a slab layer for the additional memory. The slab layer identifies one or more partially-allocated slabs and generates a new magazine. A set of addresses correspond to buffers may be stored in the new magazine. A reference to the new magazine may be transferred from the slab layer to the depot layer. The reference to the new magazine may then be transferred from the depot layer to the processor.
    Type: Application
    Filed: May 27, 2022
    Publication date: October 6, 2022
    Applicant: Oracle International Corporation
    Inventor: Roch Bourbonnais
  • Patent number: 11386007
    Abstract: Aspects of the present disclosure include methods and system for fast allocation of memory from fragmented memory. In one example, at a processor receives a request for an address to a buffer stored in a magazine associated with the processor. Upon determining that the magazine associated with the processor is empty, a request is made to a depot layer for additional memory. Upon determining that the depot layer cannot satisfy the request for the additional memory, executing a call to a slab layer for the additional memory. The slab layer identifies one or more partially-allocated slabs and generates a new magazine. A set of addresses correspond to buffers may be stored in the new magazine. A reference to the new magazine may be transferred from the slab layer to the depot layer. The reference to the new magazine may then be transferred from the depot layer to the processor.
    Type: Grant
    Filed: April 5, 2021
    Date of Patent: July 12, 2022
    Assignee: Oracle International Corporation
    Inventor: Roch Bourbonnais
  • Patent number: 10241685
    Abstract: Implementations of the present disclosure involve a system and/or method for managing a storage system and, more particularly, for externally managing input/output (I/O) requests to a storage device to avoid large delays in servicing the I/O requests. The management system may maintain I/O request queues for one or more of the storage devices associated with the system. The system may calculate a difference between an order value of the I/O request at the top of the queue and the bottom of the queue for the storage devices. If the calculated difference is above a threshold value, new I/O requests for the storage device are not added to the queue or transmitted to the storage device. In this manner, the management system may force the storage device to service an I/O request that has been stored in the queue for some time without being serviced.
    Type: Grant
    Filed: August 17, 2016
    Date of Patent: March 26, 2019
    Assignee: ORACLE INTERNATIONAL CORPORATION
    Inventors: Blaise Sanouillet, Roch Bourbonnais, Peter Weston Gill
  • Patent number: 9990296
    Abstract: Implementations described and claimed herein provide systems and method for prefetching data. In one implementation, whether a read request for a first data block is part of a sequential access stream is determined. A first trigger for a subsequent data block in the sequential access stream is recorded. A first set of data blocks is prefetched. The first set of data blocks is defined by a first prefetch window associated with the first trigger. A second trigger is recorded for a second subsequent data block in the sequential access stream. A second set of data blocks is prefetched. The second set of data blocks is defined by a second prefetch window associated with the first trigger. A size of the prefetch windows may be dynamically adjusted based on resource contention with the prefetching.
    Type: Grant
    Filed: July 31, 2015
    Date of Patent: June 5, 2018
    Assignee: ORACLE INTERNATIONAL CORPORATION
    Inventors: Natalie Ross, Peter Dunlap, Roch Bourbonnais, Blaise Sanouillet
  • Publication number: 20180052612
    Abstract: Implementations of the present disclosure involve a system and/or method for managing a storage system and, more particularly, for externally managing input/output (I/O) requests to a storage device to avoid large delays in servicing the I/O requests. The management system may maintain I/O request queues for one or more of the storage devices associated with the system. The system may calculate a difference between an order value of the I/O request at the top of the queue and the bottom of the queue for the storage devices. If the calculated difference is above a threshold value, new I/O requests for the storage device are not added to the queue or transmitted to the storage device. In this manner, the management system may force the storage device to service an I/O request that has been stored in the queue for some time without being serviced.
    Type: Application
    Filed: August 17, 2016
    Publication date: February 22, 2018
    Applicant: Oracle International Corporation
    Inventors: Blaise Sanouillet, Roch Bourbonnais, Peter Weston Gill
  • Patent number: 9594635
    Abstract: Implementations claimed and described herein provide systems and methods for the efficient rebuilding of a failed storage device through sequential resilvering. In one implementation, blocks for resilvering are discovered. The blocks correspond to input/output requests not successfully completed for a failed storage device. A coarse grained sorting of the blocks is performed based on a block location of each of the blocks on the failed storage device. The block locations of the blocks are stored in memory according to the coarse grained sorting. A fine grained sorting of the blocks is performed based on the coarse grained sorting of the blocks. The blocks are sequentially resilvered based on the fine grained sorting.
    Type: Grant
    Filed: September 4, 2014
    Date of Patent: March 14, 2017
    Assignee: ORACLE INTERNATIONAL CORPORATION
    Inventors: Eric Carl Taylor, Blaise Sanouillet, Roch Bourbonnais
  • Publication number: 20170031823
    Abstract: Implementations described and claimed herein provide systems and method for prefetching data. In one implementation, whether a read request for a first data block is part of a sequential access stream is determined. A first trigger for a subsequent data block in the sequential access stream is recorded. A first set of data blocks is prefetched. The first set of data blocks is defined by a first prefetch window associated with the first trigger. A second trigger is recorded for a second subsequent data block in the sequential access stream. A second set of data blocks is prefetched. The second set of data blocks is defined by a second prefetch window associated with the first trigger. A size of the prefetch windows may be dynamically adjusted based on resource contention with the prefetching.
    Type: Application
    Filed: July 31, 2015
    Publication date: February 2, 2017
    Applicant: Oracle International Corporation
    Inventors: Natalie Ross, Peter Dunlap, Roch Bourbonnais, Blaise Sanouillet
  • Publication number: 20150355968
    Abstract: Implementations claimed and described herein provide systems and methods for the efficient rebuilding of a failed storage device through sequential resilvering. In one implementation, blocks for resilvering are discovered. The blocks correspond to input/output requests not successfully completed for a failed storage device. A coarse grained sorting of the blocks is performed based on a block location of each of the blocks on the failed storage device. The block locations of the blocks are stored in memory according to the coarse grained sorting. A fine grained sorting of the blocks is performed based on the coarse grained sorting of the blocks. The blocks are sequentially resilvered based on the fine grained sorting.
    Type: Application
    Filed: September 4, 2014
    Publication date: December 10, 2015
    Applicant: Oracle International Corporation
    Inventors: Eric Carl Taylor, Blaise Sanouillet, Roch Bourbonnais
  • Patent number: 9135262
    Abstract: A system and method is provided for parallel processing of multiple write requests to write data associated the multiple write requests to a storage area concurrently. The file system receives a series of write request from one more applications executing on the computing device. The file system includes one or more processing modules that selectively groups writes request into lists or trains. After the processing modules begin processing first threads associated with writes in a first train, the processing modules determines whether and when to initiate processing of second threads associated with writes in a second train during processing of the first threads.
    Type: Grant
    Filed: October 19, 2012
    Date of Patent: September 15, 2015
    Assignee: Oracle International Corporation
    Inventors: Neil Veness Perrin, Roch Bourbonnais, Bradley Romain Lewis
  • Patent number: 9104342
    Abstract: A method for writing a logical data block to storage. The method includes receiving a request to write a logical data block to a storage pool, allocating a number of physical log blocks in a RAID log and a parity block for the logical data block, and writing the logical data block and the parity block to the physical log blocks. The number of the physical log blocks are less than a number of disks storing the RAID log. The method further includes allocating space in a physical slab block in a RAID slab for the logical data block, copying data including the logical data block to the space in the physical slab block, and updating, in the RAID slab, a checksum corresponding to the physical slab block and a parity block that includes the data stripe having the physical slab block based on the data copied.
    Type: Grant
    Filed: October 21, 2010
    Date of Patent: August 11, 2015
    Assignee: Oracle International Corporation
    Inventors: Roch Bourbonnais, Blaise Sanouillet
  • Publication number: 20140115016
    Abstract: A system and method is provided for parallel processing of multiple write requests to write data associated the multiple write requests to a storage area concurrently. The file system receives a series of write request from one more applications executing on the computing device. The file system includes one or more processing modules that selectively groups writes request into lists or trains. After the processing modules begin processing first threads associated with writes in a first train, the processing modules determines whether and when to initiate processing of second threads associated with writes in a second train during processing of the first threads.
    Type: Application
    Filed: October 19, 2012
    Publication date: April 24, 2014
    Applicant: ORACLE INTERNATIONAL CORPORATION
    Inventors: Neil Veness Perrin, Roch Bourbonnais, Bradley Romain Lewis
  • Publication number: 20130246707
    Abstract: A method for writing a logical data block to storage. The method includes receiving a request to write a logical data block to a storage pool, allocating a number of physical log blocks in a RAID log and a parity block for the logical data block, and writing the logical data block and the parity block to the physical log blocks. The number of the physical log blocks are less than a number of disks storing the RAID log. The method further includes allocating space in a physical slab block in a RAID slab for the logical data block, copying data including the logical data block to the space in the physical slab block, and updating, in the RAID slab, a check-sum corresponding to the physical slab block and a parity block that includes the data stripe having the physical slab block based on the data copied.
    Type: Application
    Filed: October 21, 2010
    Publication date: September 19, 2013
    Applicant: ORACLE INTERNATIONAL CORPORATION
    Inventors: Roch Bourbonnais, Blaise Sanouillet
  • Patent number: 7448032
    Abstract: Embodiments of the present invention are directed to a method and apparatus for integration of URL's into standard file systems of a local computer. In one embodiment of the present invention, the file system (e.g., a Uniform File System (UFS)) of a local computer is integrated with an Internet protocol, such as the Hyper Text Transport Protocol (HTTP). Once the protocol has been integrated into the file system of the local computer, applications running on local computer can access any Web based documents under that protocol. Thus, the local applications (and/or users) can access these Web based documents (and/or files) as if they are local files even though the documents are actually located on the Internet (and away from the local computer). In a further embodiment, the applications (and/or users) are able to access these Web based documents by utilizing a relating apparatus that relates the applications (and/or users) to their corresponding Web based documents.
    Type: Grant
    Filed: May 22, 2002
    Date of Patent: November 4, 2008
    Assignee: Sun Microsystems, Inc.
    Inventor: Roch Bourbonnais
  • Publication number: 20030220924
    Abstract: Embodiments of the present invention are directed to a method and apparatus for integration of URL's into standard file systems of a local computer. In one embodiment of the present invention, the file system (e.g., a Uniform File System (UFS)) of a local computer is integrated with an Internet protocol, such as the Hyper Text Transport Protocol (HTTP). Once the protocol has been integrated into the file system of the local computer, applications running on local computer can access any Web based documents under that protocol. Thus, the local applications (and/or users) can access these Web based documents (and/or files) as if they are local files even though the documents are actually located on the Internet (and away from the local computer). In a further embodiment, the applications (and/or users) are able to access these Web based documents by utilizing a relating apparatus that relates the applications (and/or users) to their corresponding Web based documents.
    Type: Application
    Filed: May 22, 2002
    Publication date: November 27, 2003
    Inventor: Roch Bourbonnais