Patents by Inventor Bruce E. Caram
Bruce E. Caram 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: 12147692Abstract: A technique consolidates data at multiple levels of granularity, the levels including a first level based on whole PLBs (physical large blocks) and a second level based on portions of donor PLBs. The technique further includes tracking PLBs in multiple PLB queues arranged based on storage utilization of the PLBs, and tracking PLB portions in multiple portion queues arranged based on storage utilization of the portions. When consolidating data to create a new PLB, a set of whole PLBs is selected, based on utilization, from the PLB queues, and a set of portions of donor PLBs is selected, based on utilization, from the portion queues. The selections are performed such that the total data size of the selected whole PLB(s) and the selected portion(s) fit within the new PLB.Type: GrantFiled: April 12, 2023Date of Patent: November 19, 2024Assignee: Dell Products L.P.Inventors: Bruce E. Caram, Vamsi K. Vankamamidi, Alexei Karaban, Ajay Karri
-
Publication number: 20240345751Abstract: A technique consolidates data at multiple levels of granularity, the levels including a first level based on whole PLBs (physical large blocks) and a second level based on portions of donor PLBs. The technique further includes tracking PLBs in multiple PLB queues arranged based on storage utilization of the PLBs, and tracking PLB portions in multiple portion queues arranged based on storage utilization of the portions. When consolidating data to create a new PLB, a set of whole PLBs is selected, based on utilization, from the PLB queues, and a set of portions of donor PLBs is selected, based on utilization, from the portion queues. The selections are performed such that the total data size of the selected whole PLB(s) and the selected portion(s) fit within the new PLB.Type: ApplicationFiled: April 12, 2023Publication date: October 17, 2024Inventors: Bruce E. Caram, Vamsi K. Vankamamidi, Alexei Karaban, Ajay Karri
-
Patent number: 12056378Abstract: A method, computer program product, and computing system for tracking the utilization of a plurality of PLBs within a storage platform to generate PLB utilization information, wherein each PLB is associated with one or more VLBs; and tracking the utilization of the one or more VLBs associated with each of the plurality of PLBs within the storage platform to generate VLB utilization information.Type: GrantFiled: January 27, 2023Date of Patent: August 6, 2024Assignee: Dell Products L.P.Inventors: Bruce E. Caram, Vamsi K. Vankamamidi, Alexei Karaban, Henry A. Spang, IV, Ajay Karri
-
Patent number: 12056373Abstract: A method, computer program product, and computing system for compartmentalizing a SSD storage tier within a storage platform into a plurality of SSD portions including a first SSD portion, a second SSD portion and a third SSD portion; reducing the size of the third SSD portion if the first SSD portion and/or the second SS portion needs to expand; and reducing the size of the second SSD portion if the first SSD portion needs to expand; wherein the storage platform includes an HDD storage tier.Type: GrantFiled: January 27, 2023Date of Patent: August 6, 2024Assignee: Dell Products L.P.Inventors: Vamsi K. Vankamamidi, Bruce E. Caram, Ajay Karri, Alexei Karaban
-
Publication number: 20240256158Abstract: A method, computer program product, and computing system for compartmentalizing a SSD storage tier within a storage platform into a plurality of SSD portions including a first SSD portion, a second SSD portion and a third SSD portion; reducing the size of the third SSD portion if the first SSD portion and/or the second SS portion needs to expand; and reducing the size of the second SSD portion if the first SSD portion needs to expand; wherein the storage platform includes an HDD storage tier.Type: ApplicationFiled: January 27, 2023Publication date: August 1, 2024Inventors: Vamsi K. Vankamamidi, Bruce E. Caram, Ajay Karri, Alexei Karaban
-
Publication number: 20240256162Abstract: A method, computer program product, and computing system for tracking the utilization of a plurality of PLBs within a storage platform to generate PLB utilization information, wherein each PLB is associated with one or more VLBs; and tracking the utilization of the one or more VLBs associated with each of the plurality of PLBs within the storage platform to generate VLB utilization information.Type: ApplicationFiled: January 27, 2023Publication date: August 1, 2024Inventors: Bruce E. Caram, Vamsi K. Vankamamidi, Alexei Karaban, Henry A. Spang, IV, Ajay Karri
-
Patent number: 12050807Abstract: A method, computer program product, and computing system for defining a quantity of discrete storage portions within a storage system; entering an expansion mode during which the discrete storage portions are incrementally assigned to at least one processing node until a first assignment level target is achieved; once the first assignment level target is achieved, entering a utilization mode during which the utilization of the assigned discrete portions is increased until a first utilization level target is achieved; and once the first utilization level target is achieved, reentering the expansion mode during which additional discrete storage portions are incrementally assigned to the at least one processing node until a second assignment level target is achieved.Type: GrantFiled: April 23, 2021Date of Patent: July 30, 2024Assignee: EMC IP Holding Company, LLCInventors: Bruce E. Caram, Vamsi K. Vankamamidi, Philippe Armangau, Ajay Karri
-
Patent number: 11755233Abstract: A method, computer program product, and computing system for identifying a first memory device source that includes first content; identifying a second memory device source that include second content; and initiating a first iteration of a memory device cleansing procedure wherein first content and at least a first portion of the second content are moved to a first unused memory device.Type: GrantFiled: April 23, 2021Date of Patent: September 12, 2023Assignee: EMC IP Holding Company, LLCInventors: Vamsi K. Vankamamidi, Bruce E. Caram, Ajay Karri, Alexei Karaban
-
Patent number: 11630584Abstract: A method, computer program product, and computing system for maintaining a first cursor pointer for a memory system, wherein the first cursor pointer concerns a first search criteria and identifies an initial first cursor starting location; receiving a first search request for the memory system that satisfies the first search criteria; executing the first search request within an initial first search window starting at the initial first cursor starting location; and updating the first cursor pointer to identify an updated first cursor starting location based, at least in part, upon the initial first search window.Type: GrantFiled: November 5, 2019Date of Patent: April 18, 2023Assignee: EMC IP HOLDING COMPANY, LLCInventors: Vamsi K. Vankamamidi, Philippe Armangau, Bruce E. Caram, Ajay Karri
-
Publication number: 20220357871Abstract: A method, computer program product, and computing system for identifying a first memory device source that includes first content; identifying a second memory device source that include second content; and initiating a first iteration of a memory device cleansing procedure wherein first content and at least a first portion of the second content are moved to a first unused memory device.Type: ApplicationFiled: April 23, 2021Publication date: November 10, 2022Inventors: Vamsi K. Vankamamidi, Bruce E. Caram, Ajay Karri, Alexei Karaban
-
Publication number: 20220342599Abstract: A method, computer program product, and computing system for defining a quantity of discrete storage portions within a storage system; entering an expansion mode during which the discrete storage portions are incrementally assigned to at least one processing node until a first assignment level target is achieved; once the first assignment level target is achieved, entering a utilization mode during which the utilization of the assigned discrete portions is increased until a first utilization level target is achieved; and once the first utilization level target is achieved, reentering the expansion mode during which additional discrete storage portions are incrementally assigned to the at least one processing node until a second assignment level target is achieved.Type: ApplicationFiled: April 23, 2021Publication date: October 27, 2022Inventors: Bruce E. Caram, Vamsi K. Vankamamidi, Philippe Armangau, Ajay Karri
-
Patent number: 11216195Abstract: An allocation history is maintained for each node in a multi-node data storage system. The allocation history for each node indicates sets of physical blocks previously allocated to the node to store dirty pages of user data flushed from a cache of the node. The allocation history indicates non-quarantined sets of physical blocks that are currently being used to provide non-volatile data storage to cache flush operations, and quarantined sets of physical blocks not currently being used to provide non-volatile data storage to cache flush operations. Allocation is prevented to any node of any set of physical blocks that is indicated as non-quarantined by any of the allocation histories, and of any set of physical blocks that is indicated as quarantined by any of the allocation histories.Type: GrantFiled: July 31, 2020Date of Patent: January 4, 2022Assignee: EMC IP Holding Company LLCInventors: Philippe Armangau, Vamsi K. Vankamamidi, Bruce E. Caram, Ajay Karri
-
Patent number: 11093454Abstract: Embodiments are directed to techniques for performing deduplication. A method includes (a) obtaining a digest of a data block logically-positioned within a filesystem, the digest providing a hash value of data of the data block, (b) searching a Most Wanted Digest Cache (MWDC) within system memory for the digest, (c) locating an entry in the MWDC using the digest, wherein this locating indicates that the data block has the same data as another data block located elsewhere within the filesystem, the other data block having been previously persistently-stored, the entry having been added to the MWDC in response to the other data block having been deduplicated at least a plurality number of times, (d) locating a mapping structure referenced by the entry located from the MWDC, the mapping structure providing metadata about the other data block, and (e) deduplicating the data block and the other data block with reference to the located mapping structure.Type: GrantFiled: October 31, 2017Date of Patent: August 17, 2021Assignee: EMC IP Holding Company LLCInventors: Philippe Armangau, Christopher A. Seibel, Bruce E. Caram, Yubing Wang, John Gillono
-
Patent number: 11068299Abstract: A technique for managing metadata in a data storage system includes receiving a set of data to be stored in a file system of the data storage system and calculating values of metadata blocks that the file system will use to organize the set of data in the file system. The technique aggregates values of the metadata blocks and sends them in a single, atomic transaction to a persistent cache. The transaction either succeeds, in which case the persistent cache stores the values of all of the metadata blocks, or it fails, in which case the persistent cache stores none of the values of the metadata blocks. Over time, the persistent cache flushes the values of the metadata blocks to a set of non-volatile storage devices that back the metadata blocks in the data storage system.Type: GrantFiled: August 4, 2017Date of Patent: July 20, 2021Assignee: EMC IP Holding Company LLCInventors: Philippe Armangau, Christopher A. Seibel, John Gillono, Bruce E. Caram, Yubing Wang, Jean-Pierre Bono
-
Patent number: 11048632Abstract: A method of assigning I/O requests to CPU cores of a data storage system includes, in a first operating mode, assigning I/O requests to CPU cores based on port affinity while maintaining a current I/O completion count, and regularly performing a first test-and-switch operation that includes (i) for a sample interval, temporarily assigning the I/O requests to the CPU cores based on core availability while obtaining a sample I/O completion count, (ii) comparing the first sample I/O completion count to the current I/O completion count, and (iii) based on the sample I/O completion count being greater than the current I/O completion count, switching to a second operating mode. In the second operating mode, I/O requests are assigned to the CPU cores based on core availability, and similar operations are performed for periodically testing whether to switch to the first operating mode.Type: GrantFiled: April 30, 2019Date of Patent: June 29, 2021Assignee: EMC IP Holding Company LLCInventors: Philippe Armangau, Bruce E. Caram, Rustem Rafikov
-
Publication number: 20210133156Abstract: A method, computer program product, and computing system for maintaining a first cursor pointer for a memory system, wherein the first cursor pointer concerns a first search criteria and identifies an initial first cursor starting location; receiving a first search request for the memory system that satisfies the first search criteria; executing the first search request within an initial first search window starting at the initial first cursor starting location; and updating the first cursor pointer to identify an updated first cursor starting location based, at least in part, upon the initial first search window.Type: ApplicationFiled: November 5, 2019Publication date: May 6, 2021Inventors: Vamsi K. Vankamamidi, Philippe Armangau, Bruce E. Caram, Ajay Karri
-
Patent number: 10838721Abstract: A technique for processing IO (Input/Output) requests includes executing a first set of instructions for processing an IO request using a first thread on a CPU core and providing the first thread with an option, based on how busy the CPU core is, either (i) to execute a second set of instructions for further processing the IO request itself or (ii) to pass the IO request to a second thread on the CPU core, such that the second thread executes the second set of instructions instead of the first thread.Type: GrantFiled: March 31, 2016Date of Patent: November 17, 2020Assignee: EMC IP Holding Company LLCInventors: Philippe Armangau, Bruce E. Caram, Christopher A. Seibel, Jean-Pierre Bono
-
Publication number: 20200349079Abstract: A method of assigning I/O requests to CPU cores of a data storage system includes, in a first operating mode, assigning I/O requests to CPU cores based on port affinity while maintaining a current I/O completion count, and regularly performing a first test-and-switch operation that includes (i) for a sample interval, temporarily assigning the I/O requests to the CPU cores based on core availability while obtaining a sample I/O completion count, (ii) comparing the first sample I/O completion count to the current I/O completion count, and (iii) based on the sample I/O completion count being greater than the current I/O completion count, switching to a second operating mode. In the second operating mode, I/O requests are assigned to the CPU cores based on core availability, and similar operations are performed for periodically testing whether to switch to the first operating mode.Type: ApplicationFiled: April 30, 2019Publication date: November 5, 2020Inventors: Philippe Armangau, Bruce E. Caram, Rustem Rafikov
-
Publication number: 20190129623Abstract: A storage technique includes selectively tagging a set of write requests by applying tags to write requests that are pursuant to copy operations and not applying tags to at least some write requests that are not pursuant to copy operations. For each of the set of write requests, the technique further includes performing a decision operation configured to (i) direct the write request down a first processing path that supports inline deduplication in response to the write request satisfying a set of criteria and (ii) direct the write request down a second processing path that does not support inline deduplication in response to the write request failing to satisfy the set of criteria. The set of criteria include whether the write request has a tag applied, such that the decision operation preferentially directs write requests down the first processing path in response to the write requests being tagged.Type: ApplicationFiled: October 31, 2017Publication date: May 2, 2019Inventors: Philippe Armangau, Bruce E. Caram, Yining Si, Christopher A. Seibel
-
Publication number: 20190129970Abstract: Embodiments are directed to techniques for performing deduplication. A method includes (a) obtaining a digest of a data block logically-positioned within a filesystem, the digest providing a hash value of data of the data block, (b) searching a Most Wanted Digest Cache (MWDC) within system memory for the digest, (c) locating an entry in the MWDC using the digest, wherein this locating indicates that the data block has the same data as another data block located elsewhere within the filesystem, the other data block having been previously persistently-stored, the entry having been added to the MWDC in response to the other data block having been deduplicated at least a plurality number of times, (d) locating a mapping structure referenced by the entry located from the MWDC, the mapping structure providing metadata about the other data block, and (e) deduplicating the data block and the other data block with reference to the located mapping structure.Type: ApplicationFiled: October 31, 2017Publication date: May 2, 2019Inventors: Philippe Armangau, Christopher A. Seibel, Bruce E. Caram, Yubing Wang, John Gillono