Patent application number | Description | Published |
20140115089 | METHOD AND APPARATUS FOR JOINING READ REQUESTS - Implementations of the present disclosure involve a system and/or method for joining read requests for the same data block sent to a storage appliance. The system and method is configured to receive the first read request for the data block at an I/O layer of the storage appliance. The I/O layer is configured to manage obtaining data blocks from one or more storage devices on the storage appliance. The system and method may then receive a second read request for the data block at the I/O layer of the storage appliance. The first and second read request may then be joined at I/O layer and only a single copy of the data block is returned to a cache in response to the first and second read requests. | 04-24-2014 |
20140115244 | APPARATUS, SYSTEM AND METHOD FOR PROVIDING A PERSISTENT LEVEL-TWO CACHE - Aspects of the present disclosure disclose systems and methods for providing a level-two persistent cache. In various aspects, a solid-state drive is employed as a level-two cache to expand the capacity of existing caches. In particular, any data that is scheduled to be evicted or otherwise removed from a level-one cache is stored in the level-two cache with corresponding metadata in a manner that is quickly retrievable. | 04-24-2014 |
20140115245 | APPARATUS SYSTEM AND METHOD FOR PROVIDING RAW DATA IN A LEVEL-TWO CACHE - Aspects of the present disclosure disclose systems and methods for managing a level-two persistent cache. In various aspects, a solid-state drive is employed as a level-two cache to expand the capacity of existing caches. Any data stored in the level-two cache may be stored in a particular version or format of data known as “raw” data, in contrast to storing the data in a “cooked” version, as is typically stored in a level-one cache. | 04-24-2014 |
20140115246 | APPARATUS, SYSTEM AND METHOD FOR MANAGING EMPTY BLOCKS IN A CACHE - Aspects of the present disclosure disclose systems and methods for recognizing multiple and distinct references within a cache that identify or otherwise provide access to empty blocks of data. Multiple references identifying empty blocks of data are associated with a single block of empty data permanently stored in the cache. Subsequently, each time an empty block of data is added to the cache, a reference corresponding to the empty block is mapped to a generic empty block of data stored in the cache. When a reference is removed or deleted from the cache, only the reference is deleted; the single generic block of empty data continues to reside in the cache. | 04-24-2014 |
20140115258 | SYSTEM AND METHOD FOR MANAGING A DEDUPLICATION TABLE - Implementations described and claimed herein provide systems and methods for allocating and managing resources for a deduplication table. In one implementation, an upper limit to an amount of memory allocated to a deduplication table is established. The deduplication table has one or more checksum entries, and each checksum entry is associates a checksum with unique data. A new checksum entry corresponding to new unique data is prevented from being added to the deduplication table where adding the new checksum entry will cause the deduplication table to exceed a size limit. The new unique data has a checksum that is different from the checksums in the one or more checksum entries in the deduplication table. | 04-24-2014 |
20140115260 | SYSTEM AND METHOD FOR PRIORITIZING DATA IN A CACHE - Implementations described and claimed herein provide a system and methods for prioritizing data in a cache. In one implementation, a priority level, such as critical, high, and normal, is assigned to cached data. The priority level dictates how long the data is cached and consequently, the order in which the data is evicted from the cache memory. Data assigned a priority level of critical will be resident in cache memory unless heavy memory pressure causes the system to reclaim memory and all data assigned a priority state of high or normal has been evicted. High priority data is cached longer than normal priority data, with normal priority data being evicted first. Accordingly, important data assigned a priority level of critical, such as a deduplication table, is kept resident in cache memory at the expense of other data, regardless of the frequency or recency of use of the data. | 04-24-2014 |
20140115261 | APPARATUS, SYSTEM AND METHOD FOR MANAGING A LEVEL-TWO CACHE OF A STORAGE APPLIANCE - Aspects of the present disclosure disclose systems and methods for managing a level-two persistent cache. In various aspects, a solid-state drive is employed as a level-two cache to expand the capacity of existing caches. In particular, any data that is scheduled to be evicted or otherwise removed from a level-one cache is stored in the level-two cache with corresponding metadata in a manner that is quickly retrievable. The data contained within the level-two cache is managing using a cache list that manages and/or maintains data chunk entries added to the level-two cache based on a temporal access of the data chunk. | 04-24-2014 |
20140344222 | METHOD AND APPARATUS FOR REPLICATION SIZE ESTIMATION AND PROGRESS MONITORING - Implementations of the present disclosure involve a system and/or method for replication size estimation and progress monitoring for a file system residing on a computing system. The replication progress monitoring system obtains a first snapshot of a file system for a first point in time and a second snapshot of the file system for a second point in time. The system may then calculate the difference between the first snapshot size from the second snapshot size and add to the difference the size a released data size. The released data size includes the size of any blocks of data included in the first snapshot and released before the second snapshot was taken. The replication transfer size may then be estimated by adding the snapshot size difference with the released size estimate. | 11-20-2014 |
Patent application number | Description | Published |
20100332446 | STORAGE POOL SCRUBBING WITH CONCURRENT SNAPSHOTS - A method for scrubbing a storage pool. The method includes loading a scrub queue with a number of identifiers corresponding to a number of datasets, selecting a first identifier from the scrub queue, where the first identifier corresponds to a first dataset, initiating a scrubbing of the first dataset. The method further includes, upon receiving an indication of a requirement to pause the scrubbing, pausing the scrubbing of the first dataset, creating a bookmark recording a last location within the first dataset that was scrubbed before pausing the scrubbing of the first dataset, detecting at least one change to a storage pool, and performing a modification in response to detecting the at least one change to the storage pool. | 12-30-2010 |
20110283113 | METHOD AND SYSTEM FOR ENCRYPTING DATA - A processing device may generate a data encryption key configured to encrypt unique data within a clone of an encrypted data set and associated with a set of transaction identifiers of a transaction based file system. The processing device may further wrap the data encryption key with a wrapping key, create a cloned encrypted data set with the data encryption key, and store the wrapped data encryption key with the cloned encrypted data set indexed by at least one of the set of transaction identifiers. | 11-17-2011 |
20120005163 | BLOCK-BASED INCREMENTAL BACKUP - A method for backing up a file system, including obtaining a first indirect block comprising a first block pointer, obtaining a first birth time from the first block pointer, determining whether the first birth time is subsequent to a time of a last backup, and backing up a first block referenced by the first block pointer, if the first birth time is subsequent to the time of the last backup. | 01-05-2012 |
Patent application number | Description | Published |
20080276238 | Use of Metrics to Control Throttling and Swapping in a Message Processing - A system and method of using metrics to control throttling and swapping in a message processing system is provided. A workload status of a message processing system is determined, and the system polls for a new message according to the workload status. The message processing system identifies a blocked instance and calculates an expected idle time for the blocked instance. The system dehydrates the blocked instance if the expected idle time exceeds a predetermined threshold. | 11-06-2008 |
20090307652 | AUTOMATIC MODEL-SPECIFIC DEBUGGER EXTENSIONS - Extensions to a debugger are identified in a debugger database which is read automatically when the debugger loads. The debugger watches for trigger events in its execution environment and optionally for load conditions in a debuggee program's internal state. If a trigger event occurs and a load condition is met, then the debugger automatically loads an extension for use. Some extensions provide debugging routines that are specifically designed to support debugging of applications which use a specific programming model. | 12-10-2009 |
20090307663 | DEBUGGING SUPPORT FOR TASKS IN MULTITHREADED ENVIRONMENTS - A debugger enhancement provides a debug-task-provider interface whose implementation includes routines designed to support debugging of programs that contain tasks written for a specific programming model. Task creation hierarchies, individual task properties, resource dependencies, synchronization dependencies, and other information can be made accessible during debugging, through a model-independent interface. In a multithreaded environment, a mapping between tasks and threads is also available. | 12-10-2009 |
20100199265 | PROGRAM DEBUGGING WITH DYNAMICALLY INSERTED INSTRUMENTATION - The present disclosure simplifies programming debugging by dynamically injecting debugger compiled instrumentation into the debuggee process such that the debuggee process executes the instrumentation without executing the debugger. In one example method, the debugger controls compiling a description of the instrumentation as an instrumentation method. The debugger can then write the instrumentation method into the debuggee. The debuggee can save the state of a target method of the debuggee process at a predetermined location. The debuggee process calls the instrumentation method from the debuggee. In addition, the state of the target method can be restored and the resumed from the predetermined location after the instrumentation method executes. | 08-05-2010 |
20100235815 | SIMULTANEOUSLY DISPLAYING MULTIPLE CALL STACKS IN AN INTERACTIVE DEBUGGER - Visual representations of multiple call stacks in a parallel programming system include a stack segments graph constructed by coalescing data from multiple stacks. The graph has nodes that represent stack segments and has arcs between adjacent segments. Similar stack frames are represented by the same node. In a stack prefix view of the graph, arcs are directed from a node representing stack frames to a node representing subsequently executed stack frames. In a method-centered view, an arc is shown between a node representing stack frames of a selected method and a node representing adjacent stack frames. The graph can be based on call stacks of all tasks or all threads, or based on call stacks of tasks or threads flagged by a user. Stack frame, thread, and/or task details are also displayed. | 09-16-2010 |
20120124426 | DEBUGGING IN A CLUSTER PROCESSING NETWORK - A technology is described for debugging in a cluster processing network. A scheduler can dispatch a process that is part of the cluster job for execution. Further, a compute node can be used to execute the process dispatched by the scheduler to the compute node. A debugger can be activated in response to an unhandled suspension event in the process on the compute node. In addition, the debugger can send notification messages regarding the unhandled suspension event. A job monitor can receive a notification from the debugger that an unhandled suspension event has occurred. The notification can be displayed to a user via the job monitor. | 05-17-2012 |
20120124504 | DEBUGGING IN A MULTI-PROCESSING ENVIRONMENT - Technology is described for debugging in a multi-processor environment. An example system can include a plurality of process icons representing processes executing on compute nodes. A plurality of relationship arc icons between the process icons can represent messages being sent between source processes and destination processes on the compute nodes. A tabular display control can have rows to display attributes for relationship arc icons representing the messages being sent. In addition, a grouping module can be used to identify groups of messages that are related and to highlight relationship arc icons which are part of a group. | 05-17-2012 |
20120159444 | FUSING DEBUG INFORMATION FROM DIFFERENT COMPILER STAGES - The present invention extends to methods, systems, and computer program products for fusing debug information from different compiler stages. Embodiments of the invention fuse debug information from a plurality of different compile stages in a code generation process into a single set of debug information. The single set of debug information maps directly between instructions and symbols (e.g., source code) input to a first compile stage and instructions and symbols (e.g., machine code) output from a last compile stage. | 06-21-2012 |
Patent application number | Description | Published |
20120084753 | DEBUGGER LAUNCH AND ATTACH ON COMPUTE CLUSTERS - Launching a debugging process. A method includes at a compute node on a cluster private network, receiving a debug job via a scheduler of a head node from a client on a public network. The head node is connected to both the cluster private network and the public network. The public network is external to the cluster private network. The method further includes beginning processing the debug job, and as a result initiating debugging by starting one or more debugger remote agents at the compute node. The method further includes beginning processing a user job in the presence of the started debugger remote agents at the compute node. The client is informed that the one or more debugger remote agents are ready to debug the user job. A debugger client at the client is connected to the one or more debugger remote agents. | 04-05-2012 |
20120151445 | DATA PARALLELISM AWARE DEBUGGING - The debugging of a kernel in a data parallel environment. A debugger engine interfaces with a data parallel environment that is running one or more data parallel kernels through a first interface. For each of at least one of the one or more kernels, a program object is formulated that abstractly represents the data parallel kernel including data parallel functionality of the kernel. The program object has a second interface that allows information regarding the kernel to be discovered by the debugger user interface module. | 06-14-2012 |
20120151447 | DISPLAY OF DATA FROM PARALLEL PROGRAMMING CONTEXTS - The display of a debugging interface for use with parallel computing. When a break state has been entered in a particular code context (such as a method) by a particular execution context (such as a thread), related execution contexts are found that were also executing in the particular code context. While in the break state, multiple expressions are then evaluated for each of the execution contexts. The results are then displayed with perhaps navigation controls that allow the results to be efficiently navigated. | 06-14-2012 |
20120159258 | DEBUGGING IN DATA PARALLEL COMPUTATIONS - The debugging of a program in a data parallel environment. A connection is established between a debugging module and a process of the data parallel environment. The connection causes the data parallel environment to notify the debugging module of certain events as they occur in the execution of the process. Upon notification of such an event, the process execution is paused, and the debugging module may query the data parallel environment for information regarding the process at the device independent virtual machine layer. Upon completion of this querying, the process may then resume execution. This may occur repeatedly if multiple events are encountered. | 06-21-2012 |