Methods, systems, and computer program products for managing agile storage spaces (scalability of physical storage spaces)
Agile storage space management systems enable dynamic scaling of storage capacity through combined smart storage spaces, addressing inefficiencies and costs by optimizing storage allocation using AI and machine learning, ensuring timely and cost-effective delivery.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- INTERNATIONAL BUSINESS MACHINE CORPORATION
- Filing Date
- 2022-11-09
- Publication Date
- 2026-06-16
AI Technical Summary
Businesses face challenges in optimizing storage space utilization to meet fluctuating demand, leading to underutilization during low demand periods and increased costs due to inefficient storage solutions, especially for small and medium-sized enterprises (SMEs) and large companies with limited or unsuitable storage options.
Implementing agile storage space management systems that allow users to dynamically scale storage capacity by combining smart storage spaces owned by multiple entities, utilizing data collection devices, AI, and machine learning to optimize storage allocation based on demand and user inputs.
Ensures efficient use of storage space, reduces costs, and enhances delivery efficiency by matching storage needs with demand fluctuations, allowing businesses to deliver products promptly and cost-effectively.
Smart Images

Figure 0007874382000001 
Figure 0007874382000002 
Figure 0007874382000003
Abstract
Description
Technical Field
[0001] The present disclosure generally relates to the field of storage space, and more particularly to the field of optimizing storage space.
Background Art
[0002] Online shopping has become a popular shopping method that allows people to easily purchase products without visiting a store. As many industries shift to online shopping, competition among companies regarding the ability to deliver products to customers faster has intensified. Therefore, a delivery system that can deliver products to customers faster is in demand.
Summary of the Invention
Problems to be Solved by the Invention
[0003] To provide a method, a system, and a computer program product for the scalability of physical storage space.
Means for Solving the Problems
[0004] Embodiments of this disclosure include methods, computer program products, and systems for managing agile storage spaces. A processor may receive storage space information associated with an agile storage space. In some embodiments, the agile storage space may include one or more smart storage spaces. The processor may analyze the storage space information associated with the agile storage space. The processor may determine whether the quantity of one or more objects exceeds a storage threshold. In some embodiments, the quantity of one or more objects is based at least in part on the storage space information. The processor may assign one or more objects to one or more smart storage spaces. In some embodiments, assigning one or more objects to one or more smart storage spaces can be based at least in part on the storage threshold and storage space information.
[0005] The above summary is not intended to describe each or all of the illustrated embodiments of this disclosure.
[0006] The drawings included in this disclosure are incorporated herein and constitute part of this disclosure. They illustrate embodiments of this disclosure and, together with the descriptions, help to illustrate the principles of this disclosure. The drawings are illustrative of specific embodiments and do not limit this disclosure. [Brief explanation of the drawing]
[0007] [Figure 1] This is a block diagram of an embodiment of the agile storage space management system described herein. [Figure 2] This figure shows a flowchart of a method for managing agile storage space according to an embodiment of the present disclosure. [Figure 3A] This figure shows a cloud computing environment according to an embodiment of the disclosure. [Figure 3B] This figure shows an abstraction model layer according to an embodiment of the present disclosure. [Figure 4] This document shows a high-level block diagram of an exemplary computer system that may be used to implement one or more of the methods, tools, and modules described herein, as well as any related functions, according to embodiments of this disclosure. [Modes for carrying out the invention]
[0008] The embodiments described herein may be subject to various modifications and substitutions, the specifics of which are illustrated in the drawings and will be described in detail. However, it should be understood that the specific embodiments described are not intended to be restrictive. Rather, the intention is to cover all modifications, equivalents, and substitutions that fall within the spirit and scope of this disclosure.
[0009] The aspects of this disclosure generally relate to the field of storage space, and more specifically to the field of optimizing storage space. While this disclosure is not necessarily limited to such uses, various aspects of this disclosure can be understood through the discussion of several examples using this context.
[0010] As businesses shift from retail sales to online shopping, the ability to store goods and products is a critical issue in ensuring customers receive their purchases on time. These businesses must consider not only the location of storage space, but also securing sufficient storage capacity to accommodate periods of high demand. Having ample storage space allows businesses to deliver products to all customers who wish to purchase them, maximizing profits. Unfortunately, however, when product supply or demand is low, such storage space remains underutilized and serves no purpose until demand and supply increase. Such storage space often incurs maintenance costs for businesses, and if not properly utilized, it can negatively impact profits. Therefore, optimizing storage space and other types of storage locations to ensure businesses have the optimal amount of storage space available for storing their products is highly desirable.
[0011] The terms used herein are intended solely to describe specific embodiments and are not intended to limit them. Where used herein, the singular forms "a," "an," and "the" are intended to include the plural form unless the context explicitly indicates otherwise. Where used herein, the terms "comprises" or "comprising," or any combination thereof, specify the presence of the described features, steps, actions, elements, or components or combinations thereof, but do not preclude the presence or addition of one or more other features, steps, actions, elements, components, or groups or combinations thereof.
[0012] It will be readily apparent that the improvised components, as generally described and illustrated in the figures of this specification, may be arranged and designed in a wide variety of different configurations. Therefore, the following detailed description of at least one embodiment of a method, apparatus, non-temporary computer-readable medium, and system, as shown in the accompanying figures, is not intended to limit the scope of the claimed application, but is merely representative of selected embodiments.
[0013] Any improvised features, structures, or characteristics described herein may be combined or removed in any suitable manner in one or more embodiments. For example, throughout this specification, the use of “example embodiments,” “some embodiments,” or other similar language refers to the fact that certain features, structures, or characteristics described in relation to an embodiment may be included in at least one embodiment. Thus, throughout this specification, the appearance of “example embodiments,” “in some embodiments,” “in other embodiments,” or other similar language does not necessarily all refer to the same group of embodiments, and the described features, structures, or characteristics may be combined or removed in any suitable manner in one or more embodiments. Furthermore, in the figures, any connection between elements may enable one-way, two-way, or both, even if the depicted connection is a unidirectional or bidirectional arrow.
[0014] Furthermore, any device depicted in the drawings may be a different device. For example, if a mobile device is shown transmitting information, a wired device may also be used to transmit information. The term “module” may refer to a hardware module, a software module, or a module may be a combination of hardware and software resources. Embodiments of a hardware-based module may include self-contained components such as a chipset, specialized circuitry, one or more memory devices or persistent storage, or a combination thereof. A software-based module may be part of a program, program code, or link to program code containing specifically programmed instructions, loaded into a memory device or persistent storage device of one or more data processing systems operating as part of a computing environment (e.g., an agile storage space management system 100).
[0015] All means-plus-function elements or step-plus-function elements in the following claims, along with their corresponding structures, materials, and actions, and equivalents, are intended to include any structures, materials, or actions for performing a function in combination with elements of any other claim specifically claimed. The description of the present invention is presented for illustrative and explanatory purposes, but is not intended to be exhaustive or to limit the invention to the disclosed forms. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the invention. The embodiments are selected and described to best illustrate the principles and practical applications of the invention, and to enable those skilled in the art to understand the invention in terms of various embodiments with various modifications to suit specific intended uses.
[0016] In embodiments discussed herein, solutions are provided in the form of methods, systems, and computer program products for managing agile storage space. Embodiments contemplated herein may enable a user (e.g., business owner, administrator, etc.) to optimize the storage of one or more objects (e.g., products) by scaling up or down the agile storage space, or both, to meet the management space needs of the enterprise.
[0017] In traditional storage solutions, businesses (e.g., users) ideally choose storage located near their customers' locations, such as cities or towns. By locating storage close to customers, businesses can reduce not only the time associated with delivering products but also the costs of transporting them. Unfortunately, however, some businesses may have limited or difficult-to-access storage options. In some towns, it may be impossible to find storage that perfectly suits the needs of a small or medium-sized enterprise (SME). For example, an SME might need a small storage space, like a warehouse, to meet product demand, but only large warehouses are available. Such storage, even if the SME can afford it, is likely to be inefficient, unsuitable, and costly.
[0018] Alternatively, large companies may not be able to secure large storage spaces to store large quantities of products. If a company cannot store goods near or within a city, it risks increasing not only delivery times but also delivery costs. Therefore, the embodiments contemplated herein enable the management of agile storage space. In these embodiments, the agile storage space may be configured to allow a user or company to expand or contract the storage space to meet the storage needs of each particular user. Such embodiments can ensure that the relevant storage space is used efficiently in a way that is best suited to the user / company's needs.
[0019] In some embodiments, the agile storage space may include one or more smart storage spaces. A smart storage space may include, but is not limited to, any warehouse, storage room, retail store, rooftop of any building, office area, parking lot, closet, shelf, part of a shelf, or any combination thereof. In some embodiments, the agile storage space may be controlled by a single entity (e.g., a user) that owns or controls, or both, one or more smart storage spaces included in the agile storage space, while in other embodiments, the agile storage space may include smart storage spaces owned / controlled by multiple entities or users.
[0020] For example, in one embodiment, the agile storage space may include three smart storage spaces owned / controlled by different users (e.g., business owners). These smart storage spaces may include company A, which owns or leases a small storage facility for storing inventory for its retail stores; company B, which owns a large warehouse; and company C, which has storage rooms related to its retail stores. In this example, the three business owners can agree to metaphorically combine their respective smart storage spaces to form the agile storage space. By combining their respective smart storage spaces to form the agile storage space, each business owner can utilize the necessary portion of the smart storage space.
[0021] Continuing with the above example, during periods of low demand, the warehouse of Company B may become empty. If Company B's warehouse is empty, the smart storage space is not fully utilized, which may result in significant costs for Company B to maintain the warehouse. However, if the smart storage space of Company B is combined with the smart storage spaces of Company A and Company C to form an agile storage space, Company A and Company C will be able to store products or items (e.g., one or more objects) that they want to store in Company B's warehouse. As a result, Company A and Company C can expand the storage space available to accommodate the quantity of their respective products during peak demand, and Company B can utilize the warehouse and reduce the available storage space. In some embodiments, as will be described in more detail later, Company B may be compensated for the products or objects stored in the warehouse by Company A and Company C. The above example of the agile storage space is simplified, but any number of users (e.g., companies) may collectively combine their smart storage spaces to form an agile storage space that is configured to expand or contract their respective smart storage spaces.
[0022] In some embodiments, the smart storage space may include any number or combination of one or more data collection devices. The one or more data collection devices may include, but are not limited to, Internet of Things (IoT) devices, cameras, ultrasonic sensors, devices configured to detect one or more biometric parameters, or any combination thereof.
[0023] In an embodiment, the processor may be configured to receive / collect storage space information associated with each of one or more smart storage spaces of an agile storage space. The processor may receive / collect the storage space information using one or more data collection devices. The data collection device may be configured by the processor to collect the storage space information in real time, or to collect the storage space information over time, or to do a combination of these. In these embodiments, the processor may store the collected / received storage space information in a history repository.
[0024] The storage space information may include any data or information associated with the smart storage space. Examples of data associated with the storage space information include, but are not limited to, i) the configuration of the smart storage space (e.g., open area, shelf, storage compartment, etc.), ii) the dimensions of the smart storage space, iii) the objects that may currently occupy the smart storage space, iv) the amount of space available for storing an object (e.g., space not already occupied by other objects), v) the characteristics of the objects currently stored and associated with the smart storage space (e.g., object parameters), vi) the location of each smart storage space in the agile storage space, vii) security policies (e.g., physical security policies and digital security policies), or any information / data or both generated from various analyses contemplated herein (e.g., data generated from machine learning techniques). In some embodiments, the processor may receive the storage space information from one or more databases. For example, in some embodiments, the processor may receive information regarding the configuration of a particular smart storage space associated with a particular structure (e.g., a particular warehouse) from a particular database. In an embodiment, the storage space information may be stored in a cloud-hosted server.
[0025] In embodiments, the processor may be configured to analyze storage space information associated with smart storage spaces. In these embodiments, the processor may use artificial intelligence (AI) and machine learning techniques to analyze storage space information stored in a historical repository and real-time data collected from one or more data collection devices associated with the smart storage spaces. In embodiments, the processor may collect various storage space information from various sources. For example, the processor may receive and analyze blueprints associated with a particular warehouse (e.g., from an external database) to determine the types of available storage spaces, the spatial dimensions of any available storage spaces, and where each available storage space is located within the warehouse (e.g., using AI and machine learning techniques). Continuing the example, after analysis, the processor may / receive real-time storage space information that can indicate whether there are any objects (e.g., products) occupying the smart storage space and what those objects are. For example, the processor may use the storage space information to determine (e.g., via one or more data collection devices) that the objects currently occupying the smart storage space are medical supplies, and that medical supplies occupy one-quarter of the available storage space. In some embodiments, the processor may also analyze storage space information and associated smart storage spaces for one or more environmental features. The environmental features of the smart storage space may include, but are not limited to, temperature-controlled areas (e.g., refrigerated containers) and humidity-controlled areas (e.g., document storage).
[0026] In some embodiments, the processor may continuously update the cloud host server with updated storage space information (e.g., regarding what space is available in a particular smart storage space), while in other embodiments, the processor may receive storage space information from users. In any embodiment, any updated storage space information may be exposed to the cloud host server and made visible to each user of the agile storage space. For example, a user may provide updated storage space information that a particular smart storage space has been reconfigured to provide a temperature-controlled area and that the temperature-controlled area has become available for storing one or more objects.
[0027] In some embodiments, the processor may analyze one or more objects and determine one or more object parameters associated with a particular object. These object parameters may include, but are not limited to, the shape of the object, the dimensions of the object (e.g., dimensions of an object with a regular / irregular shape), the weight of the object, the hardness or softness of the object, the material from which the object is composed, the color of the object, or any combination thereof, any properties or characteristics of the object. In embodiments, the processor can determine or identify any number of object parameters associated with a particular object. Continuing with the exemplary embodiments described above, the processor may analyze the medical supplies currently occupying the smart storage space and determine the object parameters for each medical supply (e.g., a packaged medical supply). In this exemplary embodiment, the processor may determine that a particular medical supply has a particular shape, the dimensions of the particular medical supply, the hardness of the medical supply's packaging, and the level of fragility relating to the packaging, the particular medical supply itself, or both (e.g., if the medical supply is made of glass). In embodiments, the object parameters and associated data may be stored as storage space information.
[0028] In embodiments, the processor may analyze these object parameters to determine whether one or more objects have one or more environmental condition requirements. For example, continuing the above example, some medical supplies may be required to be refrigerated or kept at a constant temperature. In embodiments, the processor may analyze storage space information associated with different smart storage spaces to determine whether a particular smart storage space has appropriate environmental functions (e.g., refrigerated storage space) for maintaining objects that require a particular storage environment.
[0029] In embodiments, the processor may determine whether the quantity of one or more objects exceeds a storage threshold. Quantity may refer to any unit of measurement that can be used to determine whether the storage threshold has been exceeded. As intended herein, each smart storage space within an agile storage space may have its own set of attributes that make one smart storage space more suitable than another. These attributes include, but are not limited to, differences in total available space (e.g., warehouse vs. storage), differences in maximum weight tolerance or weight distribution (e.g., simple shelving vs. reinforced shelving), differences in environmental characteristics (e.g., temperature controlled vs. exposed to natural forces), different configurations of storage structures (e.g., warehouse with specific shelving structure vs. warehouse with open floor plan), and differences in security policies (e.g., levels of physical and digital security). In embodiments, the processor may determine these sets of attributes by analyzing storage space information. The processor may then determine a storage threshold for each of the one or more smart storage spaces. The storage threshold means when the attributes of one or more smart storage spaces reach or exceed the maximum or limit value for a particular storage space, or both. In one exemplary embodiment, a smart storage space may include a reinforced shelf capable of holding a total of 200 lbs with a total storage volume of 81 cubic meters (e.g., attribute). In such an embodiment, the processor may determine that the storage threshold can be reached or exceeded in several situations. For example, continuing the exemplary embodiment above, the processor may determine that the storage threshold has been exceeded for a smart storage space if the total weight of one or more objects on the reinforced shelf would exceed 200 lbs, or if the total storage volume of one or more objects would exceed 81 cubic meters.
[0030] In one embodiment, the processor may use storage space information to determine which of one or more smart storage spaces in the agile storage space should be used to store one or more objects. The processor may make this determination at least in part based on the storage threshold of each of the one or more smart storage spaces, but in other embodiments, the processor may make this determination based on one or more user inputs. These user inputs may include, but are not limited to, storing all the objects they wish to store in a single smart storage space (e.g., so that the user can easily access one or more of their objects), storing the objects near a specific location (e.g., near a specific city or community where demand for the objects may be high), and specific security policies (e.g., levels of physical and digital security). In one example embodiment, the processor may receive user input indicating that the user wants to store products (e.g., one or more objects) near its retail store in a city so that when demand for the objects is high, the user's customers can receive the products within a given time without the significant cost of transporting the products from longer distances.
[0031] In some embodiments, the processor may assign one or more objects to one or more smart storage spaces. Assigning one or more objects may be based at least in part on storage thresholds and storage space information. In some embodiments, the processor may also consider user input to assign one or more objects to one or more smart storage spaces. In some embodiments, the processor may receive storage space information indicating that the user wishes to store one or more objects in an agile storage space. In some embodiments, the processor may further analyze one or more objects and smart storage spaces by generating one or more simulations. In some embodiments, the processor may use various information associated with the storage space information and historical storage space information from a history repository to generate digital twins of various objects currently stored in an agile storage space (e.g., one or more smart storage spaces). The processor may use such digital twins to generate simulations relating to how an additional one or more objects (e.g., one or more objects that the user wishes to store) could be stored in the agile storage space. In these embodiments, the processor may utilize AI and machine learning techniques to generate digital twins and simulations. Using such simulations and techniques, the processor may assign one or more objects to one or more smart storage spaces.
[0032] In some embodiments, the processor may generate one or more simulations to predict the level of user demand for one or more objects. For example, the processor may use storage space information (e.g., historical storage space information from a historical repository) that can be used to simulate different trends within different populations based on geographical location, as well as historical storage space information. For example, the processor may analyze and identify that a particular object (e.g., Christmas lights) was stored in large quantities during short periods (e.g., the Christmas season) over the past three years. The processor can then notify the user of this trend and indicate that there may be high demand for such objects during this particular time. This is a simplified example, but the processor may be able to predict / forecast other demands based on events such as weather forecasts or local social events.
[0033] In these embodiments, the processor may simulate one or more objects that the user wants to store and determine that the quantity of one or more objects does not exceed a storage threshold associated with a particular smart storage space or primary storage space in the agile storage space. In these embodiments, the processor may assign the user's one or more objects to a primary storage space (e.g., one of one or more smart storage spaces).
[0034] In one embodiment, if the processor determines that the quantity of one or more objects exceeds the storage threshold of a particular smart storage space or primary storage space, the processor may identify another smart storage space or secondary storage space in which the user's one or more objects do not exceed the storage threshold (e.g., the storage threshold associated with the secondary storage space). The processor may then assign the user's one or more objects to the secondary storage space (e.g., one of the one or more smart storage spaces).
[0035] In some embodiments, while determining that the quantity of one or more objects exceeds the storage threshold of the smart storage space, the processor may determine the capacity and the overload. The capacity may refer to a first subset of the user's one or more objects, or the quantity (e.g., weight, volume, etc.) of one or more of the user's objects that can be stored in a particular storage space without exceeding the storage threshold. The overload may refer to a second subset of the user's one or more objects, or the quantity (e.g., weight, volume, area, etc.) of one or more of the user's objects that exceeds the storage threshold of a particular smart storage space (e.g., determined using simulation). The capacity may vary depending on what objects are currently occupying a particular smart storage space. For example, in one embodiment, user A currently stores 50 cubic meters of product X in a primary smart storage space with a storage threshold of 90 cubic meters, and user B may want to store 50 cubic meters of product Y. In such embodiments, the processor may allocate the capacity to a specific smart storage space, or primary storage space, and the overload to a different smart storage space, or secondary storage space. This can be thought of as expanding user B's storage space. Continuing the above example, the processor may analyze 50 cubic meters of product Y and a 90 cubic meter storage threshold associated with the primary storage space to determine a capacity of 40 cubic meters and an overload of 10 cubic meters. In such embodiments, the processor may allocate the capacity to the primary storage space (e.g., a smart storage space where the amount of objects does not exceed the storage threshold) and the overload to a secondary storage space (e.g., another smart storage space). In some embodiments, the processor may receive storage space information indicating that the 90 cubic meters of product Y cannot be separated (e.g., user input that all objects remain together, or user input that product Y is a single object).In such an embodiment, the processor may assign product Y to be stored in another smart storage space (e.g., a tertiary storage space) where all 90 cubic meters of objects can be stored without exceeding the storage threshold associated with that particular smart storage space.
[0036] In some embodiments, the processor may determine a specific cost associated with one or more smart storage spaces within an agile storage space. The processor may generate the cost based on a variety of factors, including but not limited to, the location of the smart storage space, the amount of space occupied by one or more of the user's objects, any special considerations associated with the objects (e.g., the objects need to be refrigerated), and the duration for which the objects are stored in a particular smart storage space. Continuing the example above, the processor may generate a cost for user B that includes the cost of storing product Y in primary and secondary storage spaces.
[0037] In some embodiments, a user may decide to remove one or more of their objects from one or more smart storage spaces. In some embodiments, a processor may receive storage space information from one or more data acquisition devices and identify that one or more of the user's objects have been removed from one or more smart storage spaces. In such embodiments, the processor may release the smart storage space that no longer contains the user's one or more objects. This may be thought of as reducing the user's agile storage space. The released smart storage space may then be made available to other users in the agile storage space. In embodiments where the processor generates costs for the user to store objects in the agile storage space, if the processor determines that the user is no longer using a smart storage space (e.g., a reduced storage space), the processor may remove the costs associated with the smart storage space that is no longer being used.
[0038] In some embodiments, the processor may include security policies. In some embodiments, the security policy may be associated with all of one or more smart storage spaces associated with the agile workspace, while in other embodiments, some or all of the smart storage spaces included in the agile storage space may include specific security policies associated with the location of a particular smart storage space. The security policy may include rules and regulations associated with physical security or digital security or both. Such rules and regulations are intended to protect the diverse products within the agile storage space as well as to maintain trust among users of the agile storage space. In some embodiments, the processor may configure the security policy using various information such as historical storage space information (e.g., stored in a history repository) and user input (e.g., a user defines what level of digital security is appropriate).
[0039] In some embodiments, the security policy may require each party accessing the agile storage space (e.g., user, delivery person, delivery vehicle, etc.) to have a security key. In these embodiments, the processor may assign each party a unique security key that allows only parties with valid authorization to enter specific smart storage spaces within the agile storage space, while preventing parties without valid authorization from entering or accessing, or both, specific storage spaces. For example, a delivery vehicle may be used to transport one or more objects from a first smart storage space to a second smart storage space within the agile storage space. In this example, the delivery vehicle or delivery person, or both, may be issued a unique security key that allows them to access the first smart storage space to retrieve the various objects they intend to transport. In some embodiments, the processor may receive storage space information from one or more data collection devices within the first smart storage space and determine that the intended objects have been retrieved by the delivery vehicle / delivery person. In this embodiment, when a delivery vehicle leaves the first smart storage space and no longer requires access to the first smart storage space, the processor may revoke the security key of the delivery vehicle, preventing the delivery vehicle from accessing the first smart storage space without valid authorization. In other embodiments, the processor may provide the delivery vehicle with a security key that allows the delivery vehicle to enter a second smart storage space to deliver the intended object. In these embodiments, the processor may track what object (e.g., product, merchandise, etc.) has been removed from a particular storage space. Such embodiments can ensure that objects are not lost due to mixing of objects associated with different users. Furthermore, they prevent delivery vehicles / delivery personnel from taking or adding unauthorized objects to the storage space without proper authorization.
[0040] The processor may analyze not only the storage space information but also historical space information stored in the history repository to determine whether a user, a particular smart storage space within an agile storage space, or both have an effective compliance level. In embodiments, an effective compliance level is maintained if one or more smart storage spaces correctly reflect the rules and regulations established in the security policy. For example, if the security policy indicates that a smart storage space prevents unauthorized users from accessing it by requiring authorized users to provide a security key before entering the smart storage space, the processor may analyze the storage space information and use historical storage space information to authenticate that only users with appropriate authorizations have been granted entry to the smart storage space. Other examples include, but are not limited to, ensuring that appropriate digital security measures are maintained (e.g., cybersecurity regulations), ensuring that temperature-controlled areas within smart spaces are controlled to provide the correct temperature range (e.g., the effectiveness of cooling or heating mechanisms or both), and ensuring that other physical security measures are maintained (e.g., having authorized personnel to maintain the security of smart storage spaces, ensuring that one or more objects are handled in accordance with security policies (e.g., fragile objects should be properly protected within smart storage spaces)).
[0041] Referring here to Figure 1, a block diagram of an agile storage system 100 for managing agile storage space according to an embodiment of the present disclosure is shown. Figure 1 provides an example of only one implementation and does not imply any limitation with respect to environments in which different embodiments may be implemented. Many modifications to the shown environment can be made by those skilled in the art without departing from the scope of the present invention as invoked by the claims.
[0042] In an embodiment, the agile storage system 100 may include a cloud service 102, storage space information 104, one or more smart storage spaces 106 (for example, indicated as smart storage spaces 106A to N), a simulation engine 110, and a security policy 112. In an embodiment, a user can interact with the agile storage system 100 by accessing the cloud service 102. The user can use the agile storage system 100 to expand or contract an agile smart storage space based on the amount of one or more objects that the user wishes to store. In an embodiment, the agile storage system 100 may be configured to receive storage space information associated with an agile storage space. In an embodiment, an agile storage space may include one or more smart storage spaces 106A to N. Each of the one or more smart storage spaces 106A to N may include one or more data collection devices 108A to N that can be used to collect storage space information associated with a particular smart storage space. For example, data acquisition devices 108A to N may collect the storage dimensions and quantity of objects currently occupying a particular smart storage space. In an embodiment, the agile storage system 100 may analyze storage space information associated with each of one or more smart storage spaces 106A to N of the agile storage space (for example, using AI and machine learning techniques).
[0043] In some embodiments, the agile storage system 100 may be configured to determine whether the quantity of one or more objects exceeds a storage threshold. In some embodiments, the quantity of one or more objects (e.g., weight, size, dimensions, etc.) may be based at least partially on storage space information. Based on whether or not the quantity exceeds the storage threshold, the agile storage system 100 may assign one or more objects to one or more smart storage spaces. In embodiments where the quantity of one or more objects does not exceed the threshold, the agile storage system 100 may assign one or more objects to one or more smart storage spaces 106A-N or to a primary storage space. In embodiments where the quantity exceeds the storage threshold, the agile storage space may be expanded by allowing the user to store their objects in multiple smart storage spaces. For example, if the quantity of one or more objects exceeds a storage threshold (e.g., for a particular smart storage space 106A), the agile storage system 100 may allocate some of the user's objects to primary storage space (e.g., one of the one or more storage spaces 106A-N) and the other objects to secondary or tertiary storage space (e.g., other smart storage spaces 106A-N). In embodiments where the user no longer has an amount of objects that need to be stored, such as an overload, the user may reduce the agile storage space to use only the smart storage space necessary to store the remaining quantity of objects. For example, if the agile storage system 100 initially allocates one or more of the user's objects to primary and secondary storage spaces, and the user decides to remove one or more objects stored in the secondary storage space, the agile storage system 100 may reduce the user's storage space to include only the primary storage space, freeing up the secondary storage space for one or more objects of another user.
[0044] Referring now to Figure 2, this is a flowchart illustrating an exemplary method 200 for managing agile storage space according to an embodiment of the present disclosure. Figure 2 provides an example of only one implementation and does not imply any limitation with respect to environments in which different embodiments may be implemented. Many modifications to the shown environment can be made by those skilled in the art without departing from the scope of the present invention as invoked by the claims.
[0045] In some embodiments, method 200 begins with operation 202, in which the processor may receive storage space information associated with an agile storage space. In some embodiments, the agile storage space may include one or more smart storage spaces. In some embodiments, method 200 proceeds to operation 204.
[0046] In operation 204, the processor may analyze storage space information associated with the agile storage space. In some embodiments, method 200 proceeds to operation 206.
[0047] In operation 206, the processor may determine whether the quantity of one or more objects exceeds a storage threshold. In some embodiments, the quantity of one or more objects may be based at least in part on storage space information. In some embodiments, method 200 proceeds to operation 208.
[0048] In operation 208, the processor may, at least partially, assign one or more objects to one or more smart storage spaces based on storage thresholds and storage space information. In some embodiments, method 200 may terminate after operation 208, as shown in Figure 2.
[0049] While this disclosure includes a detailed description of cloud computing, it should be understood that implementations of the teachings described herein are not limited to cloud computing environments. Rather, embodiments of the present invention can be implemented in combination with any other type of computing environment that is currently known or may be developed in the future.
[0050] Cloud computing is a service delivery model that enables convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services) that can be rapidly provisioned and released with minimal administrative effort or interaction with service providers. This cloud model may include at least five characteristics, at least three service models, and at least four deployment models.
[0051] The characteristics are as follows:
[0052] On-demand self-service: Cloud consumers can unilaterally prepare computing power, such as server time and network storage, automatically as needed, without requiring human interaction with service providers.
[0053] Broad network access: Computing power is available over the network and accessible through standard mechanisms. This facilitates utilization by heterogeneous thin or thick client platforms (e.g., mobile phones, laptops, PDAs).
[0054] Resource pooling: A provider's computing resources are pooled and delivered to multiple consumers using a multi-tenant model. Various physical and virtual resources are dynamically allocated and reallocated as needed. Generally, consumers have a sense of location independence because they do not manage or know the exact location of the resources provided. However, consumers may be able to identify the location at a higher level of abstraction (e.g., country, state, data center).
[0055] Rapid Elasticity: Computing power can be prepared quickly and flexibly, allowing it to scale out automatically and immediately, and to be quickly released and scale in immediately. To consumers, the computing power available for preparation often appears unlimited and can be purchased in any quantity at any time.
[0056] Measured Services: Cloud systems leverage metric capabilities at a certain level of abstraction, appropriate for the type of service (e.g., storage, processing, bandwidth, active user accounts), to automatically control and optimize resource usage. Resource usage can be monitored, controlled, and reported, providing transparency to both service providers and consumers.
[0057] The service model is as follows:
[0058] Software as a Service (SaaS): The functionality offered to consumers is the ability to use the provider's applications running on a cloud infrastructure. These applications can be accessed from various client devices via thin client interfaces such as web browsers (e.g., webmail). Consumers do not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, storage, or even individual application functions, except for configuring a limited number of user-specific applications.
[0059] Platform as a Service (PaaS): The functionality offered to consumers is the ability to deploy applications they have created or acquired to cloud infrastructure using programming languages and tools supported by the provider. Consumers do not manage or control the underlying cloud infrastructure, including networks, servers, operating systems, and storage, but they can control the deployed applications and, in some cases, the configuration of their hosting environment.
[0060] Infrastructure as a Service (IaaS): The functionality provided to consumers is the provision of processors, storage, networking, and other basic computing resources that enable consumers to deploy and run any software, including operating systems and applications. Consumers do not manage or control the underlying cloud infrastructure, but they can control the operating system, storage, and deployed applications, and in some cases, partially control certain network components (e.g., host firewalls).
[0061] The deployment model is as follows:
[0062] Private Cloud: This cloud infrastructure is operated exclusively for a specific organization. This cloud infrastructure can be managed by that organization or a third party and can reside on-premises or off-premises.
[0063] Community Cloud: This cloud infrastructure is shared by multiple organizations to support a specific community with common interests (e.g., mission, security requirements, policies, and compliance). This cloud infrastructure can be managed by the organization or a third party and can reside on-premises or off-premises.
[0064] Public Cloud: This cloud infrastructure is provided to a large number of people or large industry groups and is owned by organizations that sell cloud services.
[0065] Hybrid Cloud: This cloud infrastructure combines two or more cloud models (private, community, or public). While maintaining the unique entities of each model, they are bound together by standards or individual technologies to achieve data and application portability (e.g., cloud bursting for load balancing across clouds).
[0066] Cloud computing environments are service-oriented environments that emphasize statelessness, low coupling, modularity, and semantic interoperability. At the core of cloud computing is the infrastructure, which includes a network of interconnected nodes.
[0067] Here, Figure 3A shows an exemplary cloud computing environment 310. As shown, the cloud computing environment 310 includes one or more cloud computing nodes 300. Local computer devices used by cloud consumers (e.g., PDA or mobile phone 300A, desktop computer 300B, laptop computer 300C, or automotive computer system 300N, or a combination thereof) can communicate with these nodes. The nodes 300 can communicate with each other. The nodes 300 can be grouped physically or virtually (not shown) in one or more networks, such as the private, community, public, or hybrid clouds or a combination thereof. This allows the cloud computing environment 310 to provide infrastructure, platform, or software as a service, or a combination thereof, without requiring cloud consumers to maintain resources on their local computer devices. Note that the types of computer devices 300A-N shown in Figure 3A are merely examples, and it should be understood that the computing nodes 300 and the cloud computing environment 310 can communicate with any type of electronic device via any type of network or network addressable connection (e.g., using a web browser) or both.
[0068] Here, Figure 3B shows a set of functional abstraction layers provided by the cloud computing environment 310 (Figure 3A). It should be understood that the components, layers, and functions shown in Figure 3B are merely illustrative, and the embodiments of the present invention are not limited to these. As illustrated, the following layers and corresponding functions are provided.
[0069] The hardware and software layer 313 includes hardware components and software components. Examples of hardware components include a mainframe 302, a reduced instruction set computer (RISC) architecture-based server 304, server 306, blade server 308, storage device 311, and a network and network components 312. In some embodiments, the software components include network application server software 314 and database software 316.
[0070] The virtualization layer 320 provides an abstraction layer. From this layer, for example, the following virtual entities can be provided: a virtual server 322, virtual storage 324, a virtual network 326 including a virtual private network, a virtual application and operating system 328, and a virtual client 330.
[0071] As an example, the management layer 340 can provide the following functions: Resource preparation 342 enables the dynamic procurement of computing resources and other resources used to perform tasks within the cloud computing environment. Metering and pricing 344 enables cost tracking as resources are used within the cloud computing environment and billing or invoicing for the consumption of these resources. As an example, these resources may include licenses for application software. Security enables not only protection of data and other resources, but also identification and verification of cloud consumers and tasks. User portal 346 provides consumers and system administrators with access to the cloud computing environment. Service level management 348 enables the allocation and management of cloud computing resources to ensure that requested service levels are met. Service Level Agreement (SLA) planning and execution 350 enables the pre-arrangement and procurement of cloud computing resources that are expected to be needed in the future in accordance with the SLA.
[0072] Workload Layer 360 provides examples of the capabilities available in a cloud computing environment. Examples of workloads and capabilities available from this layer include mapping and navigation 362, software development and lifecycle management 364, virtual classroom education delivery 366, data analytics processing 368, transaction processing 370, and agile storage space management 372.
[0073] Figure 4 shows a high-level block diagram of an exemplary computer system 401 that may be used (for example, using one or more processor circuits or computer processors of a computer) to implement one or more of the methods, tools, and modules described herein, as well as any related functions, according to embodiments of the present invention. In some embodiments, the main components of the computer system 401 may include one or more processors 402, a memory subsystem 404, a terminal interface 412, a storage interface 416, an I / O (input / output) device interface 414, and a network interface 418, all of which may be coupled in a way that communication between components is possible, directly or indirectly, via a memory bus 403, an I / O bus 408, and an I / O bus interface unit 410.
[0074] The computer system 401 may include one or more general-purpose programmable central processing units (CPUs) 402A, 402B, 402C, and 402D (collectively referred to here as CPU 402). In some embodiments, the computer system 401 may include multiple processors, which is typical for relatively large systems, but in other embodiments, the computer system 401 may alternatively be a single CPU system. Each CPU 402 may execute instructions stored in the memory subsystem 404 and may include one or more levels of onboard cache.
[0075] The system memory 404 may include computer system-readable media in the form of volatile memory, such as random access memory (RAM) 422 or cache memory 424. The computer system 401 may further include other removable / non-removable, volatile / non-volatile computer system storage media. For illustrative purposes only, a storage system 426 may be provided for reading from and writing to a non-removable, non-volatile magnetic medium, such as a “hard drive”. Not shown, a magnetic disk drive may be provided for reading from and writing to a removable, non-volatile magnetic disk (e.g., a “floppy disk”), or an optical disk drive may be provided for reading from and writing to a removable, non-volatile optical disk, such as a CD-ROM, DVD-ROM, or other optical media. Furthermore, the memory 404 may include flash memory, such as a flash memory stick drive or flash drive. The memory device may be connected to the memory bus 403 by one or more data media interfaces. The memory 404 may include at least one program product having a set of program modules (e.g., at least one) configured to perform the functions of various embodiments.
[0076] One or more programs / utilities 428, each having at least one set of program modules 430, may be stored in memory 404. A program / utility 428 may include a hypervisor (also called a virtual machine monitor), one or more operating systems, one or more application programs, other program modules, and program data. Each or any combination of the operating system, one or more application programs, other program modules, and program data may include an implementation of a networking environment. Generally, a program 428 or a program module 430, or both, perform functions or methodologies in various embodiments.
[0077] In Figure 4, the memory bus 403 is shown as a single bus structure providing a direct communication path between the CPU 402, the memory subsystem 404, and the I / O bus interface 410. However, in some embodiments, the memory bus 403 may include multiple different buses or communication paths that are arranged in various forms, such as hierarchical, star, or web configurations, multiple hierarchical buses, parallel and redundant paths, or point-to-point links in other suitable types of configurations. Furthermore, although the I / O bus interface 410 and the I / O bus 408 are shown as single units, the computer system 401 may, in some embodiments, include multiple I / O bus interface units 410, multiple I / O buses 408, or both. Additionally, although multiple I / O interface units are shown to isolate the I / O bus 408 from various communication paths running to various I / O devices, in other embodiments, some or all of the I / O devices may be directly connected to one or more system I / O buses.
[0078] In some embodiments, the computer system 401 may be a multi-user mainframe computer system, a single-user system, or a server computer or similar device that has little or no direct user interface but receives requests from other computer systems (clients). Furthermore, in some embodiments, the computer system 401 may be implemented as a desktop computer, a portable computer, a laptop or notebook computer, a tablet computer, a pocket computer, a telephone, a smartphone, a network switch or router, or any other suitable type of electronic device.
[0079] It should be noted that Figure 4 is intended to show typical main components of an exemplary computer system 401. However, in some embodiments, individual components may be more or less complex than those shown in Figure 4, and there may be components other than those shown in Figure 4, or additional components, and the number, type, and configuration of such components may differ.
[0080] As will be discussed in more detail herein, some or all of the operations of some embodiments of the methods described herein may be performed in an alternative order, or may not be performed at all. Furthermore, multiple operations may occur simultaneously or as internal parts of a larger process.
[0081] The present invention may be a system, method, or computer program product or combination thereof, integrated at any possible level of technical detail. The computer program product may include a computer-readable storage medium storing computer-readable program instructions for causing a processor to perform aspects of the present invention.
[0082] A computer-readable storage medium can be a tangible device capable of holding and storing instructions used by an instruction execution device. Examples of computer-readable storage media may be electronic storage devices, magnetic storage devices, optical storage devices, electromagnetic storage devices, semiconductor storage devices, or appropriate combinations thereof. More specific examples of computer-readable storage media include portable computer diskettes, hard disks, RAM, ROM, EPROM (or flash memory), SRAM, CD-ROM, DVD, memory stick, floppy disk, punch cards, or grooved raised structures, and mechanically encoded devices on which instructions are recorded, and appropriate combinations thereof. Computer-readable storage devices as used herein should not be interpreted as transient signals themselves, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides or other transmission media (e.g., light pulses passing through optical fiber cables), or electrical signals transmitted through wires.
[0083] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to each computer device / processor. Alternatively, they can be downloaded to an external computer or external storage device via a network (e.g., the Internet, LAN, WAN, or wireless network, or a combination thereof). The network may include copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers or edge servers, or a combination thereof. A network adapter card or network interface within each computer device / processor receives computer-readable program instructions from the network and transfers them for storage in a computer-readable storage medium in the respective computer device / processor.
[0084] The computer-readable program instructions for performing the operation of the present invention may be assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, configuration data for integrated circuits, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages such as Smalltalk and C++, and procedural programming languages such as the "C" programming language or similar programming languages. The computer-readable program instructions can be executed as a standalone software package, either entirely on the user's computer or partially on the user's computer. Alternatively, they can be executed partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter case, the remote computer may be connected to the user's computer via any type of network, including LANs and WANs, or it may be connected to an external computer (for example, via the Internet using an Internet service provider). In some embodiments, electronic circuits, including, for example, programmable logic circuits, field-programmable gate arrays (FPGAs), and programmable logic arrays (PLAs), can execute computer-readable program instructions by utilizing state information of computer-readable program instructions in order to customize the electronic circuits for the purpose of performing aspects of the present invention.
[0085] Embodiments of the present invention are described herein with reference to flowcharts or block diagrams, or both, of methods, apparatus (systems), and computer program products according to embodiments of the present invention. Each block in a flowchart or block diagram, or both, and combinations of blocks in a flowchart or block diagram, or both, are executable by computer-readable program instructions.
[0086] The above computer-readable program instructions may be provided to a computer or other programmable data processing device processor for the purpose of producing a machine. This creates means for these instructions, executed via such computer or other programmable data processing device processor, to perform functions / operations identified in one or more blocks in a flowchart or block diagram, or both. The above computer-readable program instructions may further be stored in a computer-readable storage medium that can be instructed to function in a particular manner to a computer, programmable data processing device, or other device, or a combination thereof. This constitutes a product in which the computer-readable storage medium storing the instructions includes instructions for performing functions / operations identified in one or more blocks in a flowchart or block diagram, or both.
[0087] Alternatively, a computer execution process may be generated by loading computer-readable program instructions into a computer, another programmable device, or other device, and having a series of operational steps executed on that computer, other programmable device, or other device. This ensures that the instructions executed on the computer, other programmable device, or other device perform functions / operations identified in one or more blocks in a flowchart, block diagram, or both.
[0088] The flowcharts and block diagrams in the drawings of this disclosure illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of instructions containing one or more executable instructions for performing a particular logical function. In some other implementations, the functions shown within a block may be executed in an order different from the order shown in each figure. For example, two consecutively shown blocks may actually be executed substantially simultaneously, in a manner that partially or entirely overlaps in time, or in reverse order, depending on the functions involved. Each block in a block diagram or flowchart or both, and combinations of multiple blocks in a block diagram or flowchart or both, are executable by a dedicated hardware-based system that performs a particular function or operation, or executes a combination of dedicated hardware and computer instructions.
[0089] The descriptions of various embodiments of the present invention are presented for illustrative purposes only and are not intended to be exhaustive, nor are they intended to limit the disclosed embodiments. It will be apparent to those skilled in the art that many modifications and changes are possible without departing from the scope of the described embodiments. The terms used herein have been selected to best describe the principles of the embodiments, their practical application to market-based technologies, or technical improvements, or to enable those skilled in the art to understand the embodiments described herein.
[0090] While the present invention has been described in terms of specific embodiments, it is expected that changes and modifications thereto will be apparent to those skilled in the art. Therefore, the following claims are intended to be construed as covering all changes and modifications that fall within the true spirit and scope of this disclosure.
Claims
1. A method for managing agile storage space, wherein the method is: The processor receives storage space information associated with the agile storage space and information associated with one or more objects, wherein the agile storage space is formed by combining one or more storage spaces managed by multiple users. Analyzing the storage space information and the information associated with one or more objects, Using the analyzed storage space information and the information associated with one or more objects, a digital twin of the agile storage space and one or more objects is generated. Using the generated digital twin, generate one or more simulations relating to how one or more objects are stored in the agile storage space, The determination of whether the quantity of one or more objects exceeds a storage threshold is made at least in part based on the storage space information and the one or more simulations. This includes, based on the results of the above determination, assigning one or more of the objects to one or more of the storage spaces, Assigning one or more of the aforementioned objects to one or more of the aforementioned storage spaces is, In response to determining that the quantity of the one or more objects does not exceed the storage threshold, the one or more objects are allocated to a primary storage space, wherein the primary storage space is one of the one or more storage spaces of the agile storage space. In response to determining that the quantity of one or more of the aforementioned objects exceeds the storage threshold, a secondary storage space is identified, at least partially based on the storage space information, wherein the secondary storage space is one of the one or more storage spaces of the agile storage space, and the one or more of the aforementioned objects are assigned to the secondary storage space. Includes, Assigning one or more of the aforementioned objects to the secondary storage space is, Determining the amount of one or more objects that can be accommodated in the primary storage space, wherein the amount of objects is a first subset of the one or more objects associated with the amount that does not exceed the storage threshold, Determining the amount of overload, wherein the amount of overload is a second subset of the one or more objects associated with the amount exceeding the storage threshold, Allocating the storage capacity in the primary storage space, A method comprising allocating the overload amount to the secondary storage space.
2. The method according to claim 1, further comprising generating a cost associated with the one or more storage spaces, wherein the cost is based on factors relating to the one or more storage spaces.
3. A system for managing agile storage space, wherein the system is Memory and A processor that communicates with the memory, wherein the processor is configured to perform an operation, and the operation is Receiving storage space information associated with the agile storage space and information associated with one or more objects, wherein the agile storage space is formed by combining one or more storage spaces managed by multiple users, and receiving Analyzing the storage space information and the information associated with one or more objects, Using the analyzed storage space information and the information associated with one or more objects, a digital twin of the agile storage space and one or more objects is generated. Using the generated digital twin, generate one or more simulations relating to how one or more objects are stored in the agile storage space, The determination of whether the quantity of one or more objects exceeds a storage threshold is made at least in part based on the storage space information and the one or more simulations. This includes, based on the results of the above determination, assigning one or more of the objects to one or more of the storage spaces, Assigning one or more of the aforementioned objects to one or more of the aforementioned storage spaces is, In response to determining that the quantity of the one or more objects does not exceed the storage threshold, the one or more objects are allocated to a primary storage space, wherein the primary storage space is one of the one or more storage spaces of the agile storage space. In response to determining that the quantity of one or more of the aforementioned objects exceeds the storage threshold, a secondary storage space is identified, at least partially based on the storage space information, wherein the secondary storage space is one of the one or more storage spaces of the agile storage space, and the one or more of the aforementioned objects are assigned to the secondary storage space. Includes, Assigning one or more of the aforementioned objects to the secondary storage space is, Determining the amount of one or more objects that can be accommodated in the primary storage space, wherein the amount of objects is a first subset of the one or more objects associated with the amount that does not exceed the storage threshold, Determining the amount of overload, wherein the amount of overload is a second subset of the one or more objects associated with the amount exceeding the storage threshold, Allocating the storage capacity in the primary storage space, A system comprising allocating the overload amount to the secondary storage space.
4. The system according to claim 3, further comprising generating a cost associated with the one or more storage spaces, wherein the cost is based on factors relating to the one or more storage spaces.
5. A computer program for managing agile storage space, wherein the computer program includes program instructions, the program instructions are executable by a processor, and the processor performs a function, the function is Receiving storage space information associated with the agile storage space and information associated with one or more objects, wherein the agile storage space is formed by combining one or more storage spaces managed by multiple users, and receiving Analyzing the storage space information and the information associated with one or more objects, Using the analyzed storage space information and the information associated with one or more objects, a digital twin of the agile storage space and one or more objects is generated. Using the generated digital twin, generate one or more simulations relating to how one or more objects are stored in the agile storage space, The determination of whether the quantity of one or more objects exceeds a storage threshold is made at least in part based on the storage space information and the one or more simulations. This includes, based on the results of the above determination, assigning one or more of the objects to one or more of the storage spaces, Assigning one or more of the aforementioned objects to one or more of the aforementioned storage spaces is, In response to determining that the quantity of the one or more objects does not exceed the storage threshold, the one or more objects are allocated to a primary storage space, wherein the primary storage space is one of the one or more storage spaces of the agile storage space. In response to determining that the quantity of one or more of the aforementioned objects exceeds the storage threshold, a secondary storage space is identified, at least partially based on the storage space information, wherein the secondary storage space is one of the one or more storage spaces of the agile storage space, and the one or more of the aforementioned objects are assigned to the secondary storage space. Includes, Assigning one or more of the aforementioned objects to the secondary storage space is, Determining the amount of one or more objects that can be accommodated in the primary storage space, wherein the amount of objects is a first subset of the one or more objects associated with the amount that does not exceed the storage threshold, Determining the amount of overload, wherein the amount of overload is a second subset of the one or more objects associated with the amount exceeding the storage threshold, Allocating the storage capacity in the primary storage space, A computer program comprising allocating the overload amount to the secondary storage space.