Embodiments relate to the field of data structures, and more specifically to data structures having a large number of entries.
The World Wide Web includes vast amounts of information and a variety of applications. For example, various organizations provide e-mail access to one or more users. At one or more times, it was not uncommon for those organizations to place one or more limits on a user's e-mail storage. For example, a user may have been limited to a particular quantity of data associated with an e-mail account. However, as limits on user storage have increased over time one or more challenges have been encountered for e-mail providers. Accordingly, under some circumstances, it is desirable to develop new techniques for handling ever increasing quantities of data.
Subject matter is particularly pointed out and distinctly claimed in the concluding portion of the specification. Claimed subject matter, however, both as to organization and method of operation, together with objects, features, and advantages thereof, may best be understood by reference of the following detailed description when read with the accompanying drawings in which:
In the following detailed description, numerous specific details are set forth to provide a thorough understanding of claimed subject matter. However, it will be understood by those skilled in the art that claimed subject matter may be practiced without these specific details. In other instances, methods, procedures, components or circuits that would be known by one of ordinary skill have not been described in detail so as not to obscure claimed subject matter.
Reference throughout this specification to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of claimed subject matter. Thus, the appearances of the phrase “in one embodiment” or “an embodiment” in various places throughout this specification are not necessarily all referring to the same embodiment. Furthermore, the particular features, structures, or characteristics may be combined in one or more embodiments.
The World Wide Web includes vast amounts of information and a variety of applications. For example, various organizations provide e-mail access to one or more users. At one or more times, it was not uncommon for those organizations to place one or more limits on a user's e-mail storage. For example, a user may have been limited to a particular quantity of data associated with an e-mail account. However, as limits on user storage have increased over time one or more challenges have been encountered for e-mail providers. Accordingly, under some circumstances, it is desirable to develop new techniques for handling ever increasing quantities of data.
As limits on e-mail data, such as e-mail data associated with one or more web based e-mail providers, have increased over time new solutions have been desirable to address one or more issues. For example, as a quantity of messages in an e-mail folder has increased a corresponding increase in storage capacity and computing capacity has been needed to keep pace. As just one example, a larger number of e-mails in a folder at least in part results in an increased computing burden on one or more back-end or system maintenance processes. For example, a back-end or system maintenance process may from time to time open a user's e-mail folder at least in part to perform one or more clean-up tasks. Clean-up tasks may include purging of messages marked for deletion, movement of messages marked to be moved from one folder to another, sorting one or more messages by a category, such as date, if a folder has at least one region sorted by such a category and at least one region not sorted such a category, or the like. For example, newly received messages may be initially place in an unsorted region until a back-end or system maintenance process sorts those new messages. For another example, if a user deletes an e-mail from a folder, that e-mail, while no longer visible to a user in that folder, may remain in that folder until a back-end or system maintenance process associated with the e-mail provider opens that folder and processes the deletion. As the size of a particular folder increases the back-end or system maintenance process will may deal with ever larger quantities of data in order to process the deletions, folder moves, etc. This may result in a need for more processing power or more memory usage by the back-end process and a computing platform associated with the back-end process.
Embodiments, as described more fully below, may at least in part address one or more of the above-described challenges. In an embodiment, a system or process may address the above issues at least in part by utilizing a folder, a metadata file associated with the folder, and one or more virtual sub-folders associated with the folder. For example, if an e-mail user exceeds a threshold range associated with a quantity of e-mails in a folder a system or process may create one or more virtual sub-folders for e-mails in that folder in excess of the threshold range. In addition, a system or process may update a metadata file to track the one or more virtual sub-folders and associated e-mail messages. Furthermore, if a user deletes or moves an e-mail file the metadata folder may be updated to indicate a quantity of pending deletions, moves, or the like. In this way, a back-end or maintenance process may analyze the metadata file to determine whether any further processes are desirable at a given time. For example, a back-end process may analyze a metadata file at least in part to determine whether a threshold quantity of deletions, moves, or the like has been reached with respect to a folder or a virtual sub-folder. If a threshold quantity has been reached then a back-end process may open a corresponding folder or virtual sub-folder to perform an appropriate clean up process, such as processing one or more deletions, moves, or the like. If, however, a threshold quantity has not been reached the back-end process may not need to expend any resources opening the corresponding folder or virtual sub-folder. In addition, a back-end process may utilize a metadata file at least in part to manage virtual sub-folder creation and contraction. For example, if a metadata file indicates that a folder or virtual sub-folder exceeds a threshold range associated with a quantity of active e-mails a back-end process may create an additional virtual sub-folder for subsequent e-mails received by that folder or virtual sub-folder. For another example, if a metadata file indicates that one or more of a folder or virtual sub-folders have a quantity of active e-mail such that at least one less virtual subfolder could adequately address the quantity of active e-mail a back-end process may remove a virtual subfolder and associate any e-mails in the removed virtual sub-folder with another virtual sub-folder or folder. It should, however, be noted that these are merely illustrative examples relating to e-mail folders or back-end processes and that claimed subject matter is not limited in this regard.
Based at least in part on the examination or a metadata file, a back-end system or process may determine one or more actions to perform on a folder or one or more virtual subfolder as shown in box 104, for example. For example, if a quantity or new or active e-mails associated with a folder or virtual sub-folder exceeds a threshold range, such as 25,000 to 75,000 e-mails, a back-end system or process may create one or more virtual subfolders for the folder at least in part so that new e-mails intended for that folder may be associated with the newly created virtual sub-folder as shown in box 106. For an additional example, if a quantity of e-mail in at least two of a folder and one or more virtual sub-folders is small enough a back end system or process may remove one or more of the virtual sub-folders and re-assign any e-mails associated with the removed virtual sub-folder(s) to one or more remaining folders or virtual subfolders as shown in box 108. In this example, if re-assigning the e-mails from the virtual subfolder would not result in a folder or virtual sub-folder approaching the threshold value discussed above it may be beneficial to re-assign those e-mails to one of the other folders or sub-folders and remove a virtual sub-folder. In addition, after processing deletions, moves, creation of virtual sub-folder, removal of virtual sub-folders, changes in quantity of new mail, or quantity of active mail a system or process may update the metadata file to reflect a current status for a folder or sub-folder as shown in box 110. It should, however, be noted that this is merely an illustrative example relating to a data structure or backend processes and that claimed subject matter is not limited in this regard.
It should be noted that, although aspects of the above system or process have been described in a particular order, the specific order is merely an example of a process and claimed subject matter is of course not limited to the order described. It should also be noted that the methods and processes described herein, may be capable of being performed by one or more computing platforms. In addition, the methods or processes described herein may be capable of being stored on a storage medium as one or more machine readable instructions, that if executed may be adapted to enable a computing platform to perform one or more actions. “Storage medium” as referred to herein relates to media capable of maintaining expressions, which may be operated on, or executed by, by one or more machines. For example, a storage medium may comprise one or more storage devices for storing machine-readable instructions or information. Such storage devices may comprise any one of several media types including, for example, magnetic, optical or semiconductor storage media. However, these are merely examples of a storage medium and claimed subject matter is not limited in these respects.
Furthermore, additional e-mails received for folder 1 may subsequently be associated with virtual sub-folder xxx.1.2.folder1. A system maintenance process may similarly create an additional virtual sub-folder, such as virtual sub-folder xxx.1.3.folder1 if a quantity of e-mail exceeds a threshold range in virtual sub-folder1.2.folder1. In an embodiment, there is no set upper bound for a number of virtual sub-folders that may be created. For example, as an e-mail folder continues to grow a system maintenance process may create one or more subsequent virtual sub-folders as earlier created virtual sub-folders meet or exceed a threshold range. In this manner, a system may allow an e-mail user to have an unbounded quantity of e-mail associated with any particular folder. It should, however, be noted that these are merely illustrative examples relating to e-mail folders and that claimed subject matter is not limited in this regard.
With regard to
With regard to
Unless specifically stated otherwise, as apparent from the following discussion, it is appreciated that throughout this specification discussions utilizing terms such as “processing”, “computing”, “calculating”, “selecting”, “forming”, “initiating”, “querying”, “obtaining”, “representing”, “modifying”, “receiving”, “transmitting”, “storing”, “analyzing”, “creating”, “contracting”, “associating”, “updating”, “determining”, and/or the like refer to the actions or processes that may be performed by a computing platform, such as a computer or a similar electronic computing device, that manipulates or transforms data represented as physical, electronic or magnetic quantities or other physical quantities within the computing platform's processors, memories, registers, or other information storage, transmission, reception or display devices. Accordingly, a computing platform refers to a system or a device that includes the ability to process or store data in the form of signals. Thus, a computing platform, in this context, may comprise hardware, software, firmware or any combinations thereof. Further, unless specifically stated otherwise, a process as described herein, with reference to flow diagrams or otherwise, may also be executed or controlled, in whole or in part, by a computing platform.
In the preceding description, various aspects of claimed subject matter have been described. For purposes of explanation, specific numbers, systems or configurations were set forth to provide a thorough understanding of claimed subject matter. However, it should be apparent to one skilled in the art having the benefit of this disclosure that claimed subject matter may be practiced without the specific details. In other instances, features that would be understood by one of ordinary skill were omitted or simplified so as not to obscure claimed subject matter. While certain features have been illustrated or described herein, many modifications, substitutions, changes, or equivalents will now occur to those skilled in the art. It is, therefore, to be understood that the appended claims are intended to cover all such modifications or changes as fall within the true spirit of claimed subject matter.