Patent application number | Description | Published |
20120120722 | PIPELINE ARCHITECTURE FOR SCALABLE PERFORMANCE ON MEMORY - An apparatus for data storage is presented. In one embodiment, the apparatus includes a phase change memory device comprising phase change memory storage elements. The apparatus further includes control logic to control two or more set pipelines to serve memory requests in a staggered manner, such that set operations of the memory requests begin at different times. | 05-17-2012 |
20120297231 | Interface for Storage Device Access Over Memory Bus - A nonvolatile storage or memory device is accessed over a memory bus. The memory bus has an electrical interface typically used for volatile memory devices. A controller coupled to the bus sends synchronous data access commands to the nonvolatile memory device, and reads the response from the device bus based on an expected timing of a reply from the nonvolatile memory device. The controller determines the expected timing based on when the command was sent, and characteristics of the nonvolatile memory device. The controller may not need all the electrical signal lines available on the memory bus, and could issue data access commands to different groups of nonvolatile memory devices over different groups of electrical signal lines. The memory bus may be available and configured for either use with a memory controller and volatile memory devices, or a storage controller and nonvolatile memory devices. | 11-22-2012 |
20130339589 | ADAPTIVE CONFIGURATION OF NON-VOLATILE MEMORY - Examples are disclosed for adaptive configuration of non-volatile memory. The examples include a mode register configured to include default and updated values to indicate one or more configurations of the non-volatile memory. The examples may also include discoverable capabilities maintained in a configuration table that may indicate memory address lengths and/or operating power states. | 12-19-2013 |
20140075107 | INTERFACE FOR STORAGE DEVICE ACCESS OVER MEMORY BUS - A nonvolatile storage or memory device is accessed over a memory bus. The memory bus has an electrical interface typically used for volatile memory devices. A controller coupled to the bus sends synchronous data access commands to the nonvolatile memory device, and reads the response from the device bus based on an expected timing of a reply from the nonvolatile memory device. The controller determines the expected timing based on when the command was sent, and characteristics of the nonvolatile memory device. The controller may not need all the electrical signal lines available on the memory bus, and could issue data access commands to different groups of nonvolatile memory devices over different groups of electrical signal lines. The memory bus may be available and configured for either use with a memory controller and volatile memory devices, or a storage controller and nonvolatile memory devices. | 03-13-2014 |
20140258804 | REDUCED UNCORRECTABLE MEMORY ERRORS - Uncorrectable memory errors may be reduced by determining a logical array address for a set of memory arrays and transforming the logical array address to at least two unique array addresses based, at least in part, on logical locations of at least two memory arrays within the set of memory arrays. The at least two memory arrays are then accessed using the at least two unique array addresses, respectively. | 09-11-2014 |
20140317474 | PHASE CHANGE MEMORY WITH SWITCH (PCMS) WRITE ERROR DETECTION - Methods and apparatus related to PCMS (Phase Change Memory with Switch) write error detection are described. In one embodiment, a first storage unit stores a single bit to indicate whether an error corresponding to a write operation in any of one or more PCMS devices has occurred. Also, one or more storage units each store a plurality of bits to indicate whether the error corresponding to the write operation has occurred in a partition of a plurality of partitions of the one or more PCMS devices. Other embodiments are also disclosed and claimed. | 10-23-2014 |
20150046611 | DEVICES, SYSTEMS, AND METHODS OF REDUCING CHIP SELECT - Several systems and methods of chip select are described. In one such method, a device maintains two identifiers, (ID_a and ID_m). When the device receives a command, it examines the values of ID_a and ID_m relative to a third reference identifier (ID_s). If either ID_a or ID_m is equivalent to ID_s, the device executes the command, otherwise, the device ignores the command. By using two different identification methods, a system has options in choosing to activate devices, being able to selectively switch between selecting multiple devices and single devices in a quick manner. In another such method, a device may have a persistent area that stores identification information such as an ID_a. Thus, system functionality may remain independent from any defect/marginality associated with the physical or logical components required for initial ID_a assignment of all devices in the system. | 02-12-2015 |
20150089120 | REFRESH OF DATA STORED IN A CROSS-POINT NON-VOLATILE MEMORY - Embodiments including systems, methods, and apparatuses associated with refreshing memory cells are disclosed herein. In embodiments, a memory controller may be configured to perform a read operation on one or more memory cells in a cross-point non-volatile memory such as a phase change memory (PCM). The one or more memory cells may have voltage values respectively set to a first threshold voltage or a second threshold voltage. Based on the read, the memory controller may identify the memory cells in the cross-point non-volatile memory that are set to the second threshold voltage, and refresh the voltage values of those cells without altering the voltage values of the memory cells in the cross-point non-volatile memory that are set to the first threshold voltage. Other embodiments may be described or claimed. | 03-26-2015 |
20150269100 | INTERFACE FOR STORAGE DEVICE ACCESS OVER MEMORY BUS - A nonvolatile storage or memory device is accessed over a memory bus. The memory bus has an electrical interface typically used for volatile memory devices. A controller coupled to the bus sends synchronous data access commands to the nonvolatile memory device, and reads the response from the device bus based on an expected timing of a reply from the nonvolatile memory device. The controller determines the expected timing based on when the command was sent, and characteristics of the nonvolatile memory device. The controller may not need all the electrical signal lines available on the memory bus, and could issue data access commands to different groups of nonvolatile memory devices over different groups of electrical signal lines. The memory bus may be available and configured for either use with a memory controller and volatile memory devices, or a storage controller and nonvolatile memory devices. | 09-24-2015 |
Patent application number | Description | Published |
20090222829 | METHOD AND APPARATUS FOR DECOMPOSING I/O TASKS IN A RAID SYSTEM - A data access request to a file system is decomposed into a plurality of lower-level I/O tasks. A logical combination of physical storage components is represented as a hierarchical set of objects. A parent I/O task is generated from a first object in response to the data access request. A child I/O task is generated from a second object to implement a portion of the parent I/O task. The parent I/O task is suspended until the child I/O task completes. The child I/O task is executed in response to an occurrence of an event that a resource required by the child I/O task is available. The parent I/O task is resumed upon an event indicating completion of the child I/O task. Scheduling of any child I/O task is not conditional on execution of the parent I/O task, and a state diagram regulates the child I/O tasks. | 09-03-2009 |
20110191780 | METHOD AND APPARATUS FOR DECOMPOSING I/O TASKS IN A RAID SYSTEM - A data access request to a file system is decomposed into a plurality of lower-level I/O tasks. A logical combination of physical storage components is represented as a hierarchical set of objects. A parent I/O task is generated from a first object in response to the data access request. A child I/O task is generated from a second object to implement a portion of the parent I/O task. The parent I/O task is suspended until the child I/O task completes. The child I/O task is executed in response to an occurrence of an event that a resource required by the child I/O task is available. The parent I/O task is resumed upon an event indicating completion of the child I/O task. Scheduling of any child I/O task is not conditional on execution of the parent I/O task, and a state diagram regulates the child I/O tasks. | 08-04-2011 |
20110196905 | STORING DATA TO MULTI-CHIP LOW-LATENCY RANDOM READ MEMORY DEVICE USING NON-ALIGNED STRIPING - Described herein are method and apparatus for storing data to a low-latency random read memory (LLRRM) device using non-aligned data striping, the LLRRM device being implemented on a storage system. The LLRRM device may comprise a bank comprising a plurality of memory chips, each chip being simultaneously accessible for storing data on a plurality of erase-units (EUs). A storage operating system may maintain, for each chip, a reserve data structure listing reserve EUs and a remapping data structure for tracking remappings between defective EUs to reserve EUs in the chip. A defective EU in a chip may be mapped to a reserve EU from the reserve data structure. Upon receiving a data block to be stored to the LLRRM device at the defective EU, the storage operating system may stripe the received data block across a plurality of chips in a non-aligned manner using the remapped reserve EU. | 08-11-2011 |
20130238832 | DEDUPLICATING HYBRID STORAGE AGGREGATE - Methods and apparatuses for performing deduplication in a hybrid storage aggregate are provided. In one example, a method includes operating a hybrid storage aggregate that includes a plurality of tiers of different types of physical storage media. The method includes identifying a first storage block and a second storage block of the hybrid storage aggregate that contain identical data and identifying caching statuses of the first storage block and the second storage block. The method also includes deduplicating the first storage block and the second storage block based on the caching statuses of the first storage block and the second storage block. | 09-12-2013 |
20130238851 | HYBRID STORAGE AGGREGATE BLOCK TRACKING - Methods and apparatuses for operating a hybrid storage aggregate are provided. In one example, such a method includes operating a first tier of physical storage of the hybrid storage aggregate as a cache for a second tier of physical storage of the hybrid storage aggregate. The first tier of physical storage includes a plurality of assigned blocks. The method also includes updating metadata of the assigned blocks in response to an event associated with at least one of the assigned blocks. The metadata includes block usage information tracking more than two possible usage states per assigned block. The method can further include processing the metadata to determine a caching characteristic of the assigned blocks. | 09-12-2013 |
20130346810 | USE OF APPLICATION-LEVEL CONTEXT INFORMATION TO DETECT CORRUPTED DATA IN A STORAGE SYSTEM - A storage system, such as a file server, receives a request to perform a write operation that affects a data block. In response, the storage system writes to a storage device the data block together with context information which uniquely identifies the write operation with respect to the data block. When the data block is subsequently read from the storage device together with the context information, the context information that was read with the data block is used to determine whether a previous write of the data block was lost. | 12-26-2013 |
20140173198 | METHOD AND APPARATUS FOR DECOMPOSING I/O TASKS IN A RAID SYSTEM - A data access request to a file system is decomposed into a plurality of lower-level I/O tasks. A logical combination of physical storage components is represented as a hierarchical set of objects. A parent I/O task is generated from a first object in response to the data access request. A child I/O task is generated from a second object to implement a portion of the parent I/O task. The parent I/O task is suspended until the child I/O task completes. The child I/O task is executed in response to an occurrence of an event that a resource required by the child I/O task is available. The parent I/O task is resumed upon an event indicating completion of the child I/O task. Scheduling of any child I/O task is not conditional on execution of the parent I/O task, and a state diagram regulates the child I/O tasks. | 06-19-2014 |
20150193168 | CLUSTERED RAID ASSIMILATION MANAGEMENT - In one embodiment, a node is a member of a cluster having a plurality of nodes, where each node is coupled to one or more storage arrays of solid state drives (SSDs) that serve as main storage. The node executed a storage input/output (I/O) stack having a redundant array of independent disks (RAID) layer that organizes the SSDs within the one or more storage arrays as one or more RAID groups. Configuration information is stored as a cluster database. The configuration information identifies (i) one or more RAID groups associated with an extent store, (ii) SSDs within each RAID group, and (iii) an identification of a node that owns the extent store. The cluster database is stored separate and apart from the main storage. | 07-09-2015 |
20150193169 | GLOBAL IN-LINE EXTENT-BASED DEDUPLICATION - In one embodiment, a layered file system of a storage input/output (I/O) stack executes on one or more nodes of a cluster. The layered file system includes a flash-optimized, log-structured layer configured to provide sequential storage of data and metadata (i.e., a log-structured layout) on solid state drives (SSDs) of storage arrays in the cluster to reduce write amplification, while leveraging a data de-duplication feature of the storage I/O stack. An extent store layer of the file system performs and maintains mappings of the extent keys to SSD storage locations, while a volume layer of the file system performs and maintains mappings of the LUN offset ranges to the extent keys. Separation of the mapping functions between the volume and extent store layers enables different volumes with different offset ranges to reference a same extent key (and thus a same extent). | 07-09-2015 |
20150193170 | GLOBAL IN-LINE EXTENT-BASED DEDUPLICATION - In one embodiment, a layered file system includes a volume layer and an extent store layer configured to provide sequential log-structured layout of data and metadata on solid state drives (SSDs) of one or more storage arrays. The data is organized as variable-length extents of one or more logical units (LUNs). The metadata includes volume metadata mappings from offset ranges of a LUN to extent keys and extent metadata mappings of the extent keys to storage locations of the extents on the SSDs. The extent store layer maintaining the extent metadata mappings determines whether an extent is stored on a storage array, and, in response to determination that the extent is stored on the storage array, returns an extent key for the stored extent to the volume layer to enable global inline de-duplication that obviates writing a duplicate copy of the extent on the storage array. | 07-09-2015 |
20150193338 | FLASH OPTIMIZED, LOG-STRUCTURED LAYER OF A FILE SYSTEM - In one embodiment, storage arrays of solid state drives (SSDs) coupled to a node are organized as redundant array of independent disks (RAID) groups. Each storage array includes one or more segments. Each segment has contiguous free space on the SSDs. Data and metadata is organized on the SSDs with a sequential log-structured layout, with the data organized as variable-length extents of one or more logical units (LUNs). Segment cleaning is performed to clean a selected segment by moving the extents of the selected segment that contain valid data to one or more different segments so as to free the selected segment. Additional extents are written as a sequence of contiguous range write operations to the entire free segment with temporal locality to reduce data relocation within the SSDs as a result of the write operations. | 07-09-2015 |
20150205663 | CLUSTERED RAID DATA ORGANIZATION - In one embodiment, a node of a cluster having a plurality of nodes, executes a storage input/output (I/O) stack having a redundant array of independent disks (RAID) layer. The RAID layer organizes solid state drives (SSDs) within one or more storage arrays as a plurality of RAID groups associated with one or more extent stores. The RAID groups are formed from slices of storage spaces of the SSDs instead of entire storage spaces of the SSDs. This provides for RAID groups to co-exist on a same set of the SSDs. | 07-23-2015 |
20150205668 | FILE SYSTEM DRIVEN RAID REBUILD TECHNIQUE - In one embodiment, one or more storage arrays of solid state drives (SSDs) that include a plurality of segments are organized as one or more redundant array of independent disks (RAID) groups, where the RAID groups provides data redundancy for the segments. A node executing a layered file system of a storage input/output (I/O) stack performs segment cleaning to clean the segments. It further initiates rebuild of a RAID configuration of the SSDs on a segment-by-segment basis in response to the segment cleaning. In such a configuration, each segment includes one or more RAID stripes that provide a level of data redundancy as well as RAID organization for the segment. | 07-23-2015 |
20150205669 | FILE SYSTEM DRIVEN RAID REBUILD TECHNIQUE - In one embodiment, a file system driven RAID rebuild technique is provided. A layered file system may organize storage of data as segments spanning one or more sets of storage devices, such as solid state drives (SSDs), of a storage array, wherein each set of SSDs may form a RAID group configured to provide data redundancy for a segment. The file system may then drive (i.e., initiate) rebuild of a RAID configuration of the SSDs on a segment-by-segment basis in response to cleaning of the segment (i.e., segment cleaning). Each segment may include one or more RAID stripes that provide a level of data redundancy (e.g., single parity RAID 5 or double parity RAID 6) as well as RAID organization (i.e., distribution of data and parity) for the segment. Notably, the level of data redundancy and RAID organization may differ among the segments of the array. | 07-23-2015 |
20150227465 | DATA STORAGE WITHIN HYBRID STORAGE AGGREGATE - Among other things, one or more techniques and/or systems are provided for storing data within a hybrid storage aggregate comprising a lower-latency storage tier and a higher-latency storage tier. In particular, frequently accessed data, randomly accessed data, and/or short lived data may be stored (e.g., read caching and/or write caching) within the lower-latency storage tier. Infrequently accessed data and/or sequentially accessed data may be stored within the higher-latency storage tier. Because the hybrid storage aggregate may comprise a single logical container derived from the higher-latency storage tier and the lower-latency storage tier, additional storage and/or file system functionality may be implemented across the storage tiers. For example, deduplication functionality, caching functionality, backup/restore functionality, and/or other functionality may be provided through a single file system (or other type of arrangement) and/or a cache map implemented within the hybrid storage aggregate. | 08-13-2015 |
20160004447 | CLUSTERED RAID ASSIMILATION MANAGEMENT - In one embodiment, a node of a cluster is coupled to a storage array of storage devices. The node executes a storage input/output (I/O) stack having a redundant array of independent disks (RAID) layer that organizes the storage devices within the storage array as a plurality of RAID groups. Configuration information is stored as a cluster database. The configuration information identifies the RAID groups associated with the storage devices. Each RAID group is associated with a plurality of segments and each segment has a different RAID configuration. | 01-07-2016 |
Patent application number | Description | Published |
20150347974 | MULTI-OBJECTIVE RECRUITER SEARCH - A system includes a database, a network interface, and a processor. The database includes, for each multiple users of a social network, profile data and activities, by the user, related to the social network. The network interface is configured to be communicatively coupled to user devices associated with the population of users. The processor is configured to obtain a recruitment search query for a position in an organization, compare the recruitment search query against the profile data of at least some of the users to obtain a comparison, determine, for each of the at least some of the users, a likelihood of interacting with a recruiter associated with the position based on the activities of each of the at least some of the users, and transmit, to at least one of the users, a communication related to the position based, at least in part, on the comparison and the likelihood of interacting. | 12-03-2015 |
20160034461 | CONNECTION INSIGHTS WIDGET - Techniques for enhancing search results generated by a search engine are described. A first set of member profiles is identified, the first set of member profiles satisfying a search query initiated by a searcher. A second set of member profiles is identified, the second set of member profiles having a relationship between a profile of the searcher and each of the second set of member profiles. A subset of the second set of member profiles is selected based on strength of relationships between each of the subset of the second set of member profiles and the first set of member profiles. A portion of each of the first set of member profiles is communicated for presentation in a first region of a search results user interface and a portion of each of the subset of the second set of member profiles is communicated for presentation in a second region of the search results user interface. | 02-04-2016 |
20160034464 | PERSONALIZED SEARCH BASED ON SEARCHER INTEREST - A system and method for personalized search based on searcher interest may include obtaining a search term from a member of a social network at a user device via the network interface. An initial result may be generated based on the search term, including a first group of content items from a social network and stored in a content database, the content items including member profiles of members of the social network. Each of the content items of the first group may be ranked based on information from an activity database, the activity database storing the information related to the social network, the activities including interactions with search results that include ones of the member profiles. A second group of the content items may be displayed, including at least some of the first group of the content items, based on the rank of the first group of the content items. | 02-04-2016 |
20160034466 | PERSONALIZED SEARCH USING SEARCHER FEATURES - A system and method for personalized search user searcher features may include obtaining a search term from a member of a social network at a user device via the network interface. An initial result may be generated based on the search term, including a first group of content items from a social network and stored in a content database, the content items including member profiles of members of the social network. Each of the content items of the first group may be ranked based on information indicative of interactions from an activity database with the content items of the first group, the interactions being by at least a second user of the social network different than the first user. A second group of the content items may be displayed, including at least some of the first group of the content items, based on the rank of the first group of the content items. | 02-04-2016 |
20160063121 | ENHANCING RANKINGS OF SEARCH RESULTS FOR MEMBER PROFILE QUERIES - Techniques for improving rankings of search results generated by a search engine are described. A set of member profiles is identified. The identifying is based on keywords specified in a search query matching search index entries corresponding to the set of member profiles. A subset of the member profiles is selected. The selecting is based on a matching of the keywords to special index entries associated with the subset of the member profiles. The special index entries represent values of data fields specified in each of the subset of the set of member profiles. The special index entries also represent relationships between the values of the data fields. Ranking scores associated with each of the subset of the member profiles are boosted. A portion of each of the set of member profiles is communicated for presentation in user interface in order of the ranking scores. | 03-03-2016 |
Patent application number | Description | Published |
20120143778 | Method and System for Representing Laws and Rules - The complexity of regulations in healthcare, financial services, and other industries makes it difficult for enterprises to design and deploy effective compliance systems. The present invention supports compliance by using formalized portions of applicable laws to regulate business processes that use information systems. An embodiment of the present invention uses a stratified fragment of Prolog with limited use of negation to formalize a portion of the US Health Insurance Portability and Accountability Act (HIPAA). An embodiment of the invention provides for deployment in a prototypical hospital that implements a Web portal messaging system. | 06-07-2012 |
20120284776 | Techniques for Providing Access to Data in Dynamic Shared Accounts - Techniques for providing access to data in dynamic shared accounts are disclosed. In one particular exemplary embodiment, the techniques may be realized as a system for providing data in dynamic shared accounts. The system may comprise one or more processors communicatively coupled to a network. The one or more processors may be configured to identify a first user associated with an account, identify a second user to have access to the account associated with the first user in the event the first user is unavailable to access data or perform functions associated with the account, map the second user to the account, and provide the second user access to the account based on the mapping and with access privileges associated with the first user. | 11-08-2012 |
20140351260 | ENCRYPTED SEARCH ACCELERATION - Techniques are disclosed for using a false positive-prone data structure to store normalization data for use in an encrypted search context. A file host server in a cloud provider network may provide search functionality for a user's encrypted data by use of a search index. In updating the search index, the server consolidates common identities of the user on different web services (e.g., an e-mail service or a social media service) into a normalized identifier. These normalization values are stored in the false positive-prone data structure (e.g., a colliding hash table, a Bloomier filter, etc.). Consequently, the data structure may return false positives after a search operation. The server may filter out these false positives before returning search results. | 11-27-2014 |
Patent application number | Description | Published |
20120198318 | Media- Editing Application with Automatic Background Rendering Capabilities - Some embodiments provide a media-editing application that includes several background-rendering modules. These modules automatically render segments of a media presentation in the background of a system on which the media-editing application is being executed. By performing rendering in the background, the background-rendering modules produce rendered results for the segments. That is, the modules pre-generate playable media output data (e.g., composite video frames or audio samples) of the media presentation without interrupting other operations (e.g., editing operations, etc.) of the media-editing application. The background-rendering modules in some embodiments include a first background-rendering module and a second background-rendering module. The first background-rendering module determines a prioritized order in which the segments are to be rendered. The second background-rendering module renders the segments of each category in the prioritized order that is determined by the first background-rendering module. | 08-02-2012 |
20120207452 | Spatial Conform Operation for a Media-Editing Application - Some embodiments provide a method that receives the addition of a video clip having a first set of spatial properties to a composite video project having a second set of spatial properties. When the first set of spatial properties and the second set of spatial properties are different, the method automatically applies a spatial conform effect to the video clip to conform images of the video clip to the second set of spatial properties. The method receives input to transform images of the video clip as displayed in the composite video project. The method stores the spatial conform effect and the received transform as separate effects for the video clip. | 08-16-2012 |
20120210228 | RETIMING MEDIA PRESENTATIONS - A novel method for retiming a portion of a media content (e.g., audio data, video data, audio and video data, etc.) in a media-editing application is provided. The media editing application includes a user interface for defining a range in order to select a portion of the media content. The media editing application performs retiming by applying a speed effect to the portion of the media content selected by the defined range. For a faster speed effect, the media editing application retimes the selected portion of the media content by sampling the media content at a faster rate. For a slower speed effect, the media editing application retimes the selected portion of the media content by sampling the content at a slower rate. | 08-16-2012 |
20120210232 | Rate Conform Operation for a Media-Editing Application - Some embodiments provide a method that receives the addition of a video clip to a composite video project. The video clip has a sequence of video images at a first frame rate and the composite video project has a second frame rate for outputting video images. When the first frame rate does not match the second frame rate but is within a threshold of the second frame rate, the method generates output video images for a particular duration of the composite video project at the second frame rate by using each of the video images of the video clip once during the particular duration. When the first frame rate is not within the threshold, generating output video images for the particular duration of the composite video project at the second frame rate by using at least one of the video images for each output video image over the particular duration. | 08-16-2012 |
20140169765 | User Interface for Retiming in a Media Authoring Tool - A novel method for creating multimedia presentations in a media editing application is provided. The method selects a portion of a media clip and retimes the selected portion of the media clip from a first playback speed to a second playback speed. The method defines a transition interval for a discontinuity between a first section of the media clip with the first playback speed and a second section of the media clip with the second playback speed. The media clip is played back according to a smoothed curve that is constrained by the transition interval, the first playback speed, and the second playback speed. The smoothed curve transitions gradually from the first playback speed at the start of the transition interval to the second playback speed at the end of the transition interval. | 06-19-2014 |