Data cache based on greenhouse gas data
By receiving and storing greenhouse gas emission values associated with datasets, and replacing and managing datasets based on emission values, the problem of inefficient data storage in computing devices is solved, achieving more efficient data caching and resource utilization.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-11-07
- Publication Date
- 2026-03-31
AI Technical Summary
Existing computing devices fail to effectively utilize greenhouse gas emission data for cache optimization during data storage and management, resulting in resource waste and inefficiency.
By receiving and storing greenhouse gas emission values associated with the dataset, replacing and managing the dataset based on the emission values, and using application programming interfaces and graphical user interfaces to determine and execute dataset replacement strategies, efficient caching of the dataset is achieved.
It improves the data storage efficiency of computing devices, reduces unnecessary data set occupancy, optimizes storage resource utilization, and reduces the energy and resource consumption of computing systems.
Smart Images

Figure CN116089325B_ABST
Abstract
Description
Background Technology
[0001] Computing devices typically include components (e.g., memory, hard disk drives, solid-state drives, etc.) for storing data used by the computing device. Caching is a technique used to improve the speed at which data is served to various data consumers within a computing device. Caching can be implemented in both hardware and software. Examples of hardware caches include processor caches, disk caches, etc. Examples of software caches include web browser caches, database caches, etc. Many caching algorithms are used to manage data in the cache. Examples of such algorithms include First-In-First-Out (FIFO), Last-In-First-Out (LIFO), First-In-Last-Out (FILO), Least Recently Used (LRU), Most Recently Used (MRU), Least Frequently Used (LFU), etc. Summary of the Invention
[0002] In some embodiments, a non-transitory machine-readable medium stores a program executable by at least one processing unit of the device. The program receives a first dataset and a first greenhouse gas emission value associated with the first dataset. The program also stores the first dataset and the first greenhouse gas emission value in a cache of the device. The program also receives a second dataset and a second greenhouse gas emission value associated with the second dataset. The program also stores the second dataset and the second greenhouse gas emission value in a cache of the device. The program also receives a third dataset and a third greenhouse gas emission value associated with the third dataset. The program further determines, based on the first and second greenhouse gas emission values, one of the first and second datasets to be removed from the cache of the device. The program also replaces one of the first and second datasets and the corresponding first or second greenhouse gas emission value in the cache of the device with the third dataset and the third greenhouse gas emission value.
[0003] In some embodiments, the program may also send a request to the computing system via an application programming interface (API) provided by the computing system. A first dataset and a first greenhouse gas emission value may be received from the computing system in response to the request. The first greenhouse gas emission value may indicate the amount of greenhouse gas emitted by the computing system in order to process the request and determine the first dataset.
[0004] In some embodiments, the program may also receive a first greenhouse gas emission value specified for a first dataset via a graphical user interface (GUI) and store a mapping between the first greenhouse gas emission value and the first dataset. The program may also send a request to the computing system via an application programming interface (API) provided by the computing system, wherein, in response to the request, the program receives the first dataset from the computing system and determines the association between the first greenhouse gas emission value and the first dataset based on the mapping between the first greenhouse gas emission value and the first dataset.
[0005] In some embodiments, determining one of the first dataset and the second dataset to be removed from the device's cache may include: determining the one with the highest value among the first gas emission value and the second gas emission value, and determining the corresponding dataset in the first dataset and the second dataset as one of the first dataset and the second dataset to be removed from the device's cache. The device's cache may be the device's memory cache.
[0006] In some embodiments, a method executable by a device receives a first dataset and a first greenhouse gas emission value associated with the first dataset. The method also stores the first dataset and the first greenhouse gas emission value in a cache of the device. The method further receives a second dataset and a second greenhouse gas emission value associated with the second dataset. The method also stores the second dataset and the second greenhouse gas emission value in a cache of the device. The method further receives a third dataset and a third greenhouse gas emission value associated with the third dataset. The method also determines, based on the first and second greenhouse gas emission values, one of the first and second datasets to be removed from the device's cache. The method also replaces one of the first and second datasets and the corresponding first or second greenhouse gas emission value in the device's cache with the third dataset and the third greenhouse gas emission value.
[0007] In some embodiments, the method may also send a request to the computing system via an application programming interface (API) provided by the computing system. In response to the request, a first dataset and a first greenhouse gas emission value may be received from the computing system. The first greenhouse gas emission value may indicate the amount of greenhouse gas emitted by the computing system in order to process the request and determine the first dataset.
[0008] In some embodiments, the method may also receive a first greenhouse gas emission value specified for a first dataset via a graphical user interface (GUI) and store a mapping between the first greenhouse gas emission value and the first dataset. The method may also send a request to the computing system via an application programming interface (API) provided by the computing system, wherein the first dataset receives the request from the computing system and determines the association between the first greenhouse gas emission value and the first dataset based on the mapping between the first greenhouse gas emission value and the first dataset.
[0009] In some embodiments, determining one of the first dataset and the second dataset to be removed from the device's cache may include: determining the one with the highest value among the first gas emission value and the second gas emission value, and determining the corresponding dataset in the first dataset and the second dataset as one of the first dataset and the second dataset to be removed from the device's cache. The device's cache may be the device's memory cache.
[0010] In some embodiments, a system includes a set of processing units and a non-transitory machine-readable medium storing instructions. The instructions cause at least one processing unit to receive a first dataset and a first greenhouse gas emission value associated with the first dataset. The instructions also cause at least one processing unit to store the first dataset and the first greenhouse gas emission value in a cache of the system. The instructions further cause at least one processing unit to receive a second dataset and a second greenhouse gas emission value associated with the second dataset. The instructions further cause at least one processing unit to store the second dataset and the second greenhouse gas emission value in a cache of the system. The instructions further cause at least one processing unit to receive a third dataset and a third greenhouse gas emission value associated with the third dataset. The instructions further cause at least one processing unit to determine, based on the first and second greenhouse gas emission values, one of the first and second datasets to be removed from the system's cache. The instructions further cause at least one processing unit to replace one of the first and second datasets and the corresponding first or second greenhouse gas emission value in the system's cache with the third dataset and the third greenhouse gas emission value.
[0011] In some embodiments, the instruction may also cause at least one processing unit to send a request to the computing system via an application programming interface (API) provided by the computing system. In response to the request, a first dataset and a first greenhouse gas emission value may be received from the computing system. The first greenhouse gas emission value may indicate the amount of greenhouse gas emitted by the computing system in order to process the request and determine the first dataset.
[0012] In some embodiments, the instruction may also cause at least one processing unit to receive, via a graphical user interface (GUI), a first greenhouse gas emission value specified for a first dataset, and to store a mapping between the first greenhouse gas emission value and the first dataset. The instruction may also cause at least one processing unit to send a request to the computing system via an application programming interface (API) provided by the computing system, wherein, in response to the request, the processing unit receives the first dataset from the computing system and determines, based on the mapping between the first greenhouse gas emission value and the first dataset, that the first greenhouse gas emission value is associated with the first dataset. Determining one of the first dataset and the second dataset to be removed from the device's cache may include: determining the one with the highest value among the first gas emission value and the second gas emission value, and determining the corresponding dataset in the first dataset and the second dataset as one of the first dataset and the second dataset to be removed from the device's cache.
[0013] The following detailed description and accompanying drawings are provided to better understand the nature and advantages of the various embodiments of this disclosure. Attached Figure Description
[0014] Figure 1 A system for caching data based on greenhouse gas data is shown according to some embodiments.
[0015] Figure 2 Example data structures for storing cache entries in a cache, according to some embodiments, are shown.
[0016] Figures 3A to 3F Examples of managing cached data based on greenhouse data are shown according to some embodiments.
[0017] Figure 4 This illustrates a process for caching data based on greenhouse gas data according to some embodiments.
[0018] Figure 5 Exemplary computer systems that can implement various embodiments are shown.
[0019] Figure 6 Exemplary computing devices that can implement various embodiments are shown.
[0020] Figure 7 Exemplary systems that can be implemented in various embodiments are shown. Detailed Implementation
[0021] In the following description, numerous examples and specific details are set forth for the purpose of explanation, in order to provide a full understanding of this disclosure. However, it will be apparent to those skilled in the art that the various embodiments of this disclosure as defined by the claims may individually include some or all of the features of these examples, or in combination with other features described below, and may also include modifications and equivalents of the features and concepts described herein.
[0022] This document describes a technique for caching data based on greenhouse gas data. In some embodiments, a first computing system is configured to cache data based on greenhouse gas data. For example, the first computing system may call an application programming interface (API) provided by a second computing system. In response to the API call, the first computing system can receive a dataset from the second computing system. In some cases, the first computing system may also receive greenhouse gas emission values from the second computing system. In other cases, a user-defined greenhouse gas emission value associated with the dataset is provided by a client device. Regardless of the source of the greenhouse gas emission values, the first computing system stores the dataset and the greenhouse gas emission values in a cache. The first computing system can continue to cache data with associated greenhouse gas emission values in this manner. When the first computing system is caching a specific dataset and its associated greenhouse gas emission values, and the cache is full, the first computing system can determine, based on the greenhouse gas emission values of the cache entries currently stored in the cache, cache entries to be replaced with the specific dataset and its associated greenhouse gas emission values. The first computing system can then replace the determined cache entries with the specific dataset and its associated greenhouse gas emission values.
[0023] Figure 1 A system 100 for caching data based on greenhouse gas data, according to some embodiments, is illustrated. As shown, system 100 includes a client device 105, a computing system 110, and a computing system 135. Client device 105 can communicate and interact with computing system 110. For example, a user of client device 105 can access computing system 110 (e.g., via a graphical user interface (GUI) provided by computing system 110) to specify different greenhouse gas emission values for different datasets. In some embodiments, a data identifier (ID) can be used to identify a specific dataset. In some such embodiments, a user of client device 105 can specify greenhouse gas emission values for a specific dataset by specifying greenhouse gas emission values for a data ID that identifies the specific dataset.
[0024] like Figure 1As shown, the computing system 110 includes a configuration manager 115, a cache manager 120, a mapping store 125, and a cache store 130. The mapping store 125 is configured to store a mapping between datasets and greenhouse gas emission values. In some embodiments, the greenhouse gas emission values (e.g., carbon dioxide emission values, nitrous oxide emission values, methane emission values, etc.) indicate the amount of greenhouse gas emitted (e.g., in tons) to generate the corresponding dataset. The cache store 130 may store a cache for caching the dataset. In some embodiments, stores 125 and 130 are implemented in a single physical storage unit, while in other embodiments, stores 125 and 130 may be implemented in several physical storage units. Although... Figure 1 Storage 125 and 130 are shown as part of computing system 110, but those skilled in the art will understand that in some embodiments, mapped storage 125 and / or cache storage 130 may be located outside computing system 110.
[0025] Configuration manager 115 is responsible for managing the configuration settings of computing system 110. For example, configuration manager 115 can provide a graphical user interface (GUI) for receiving different greenhouse gas emission values specified for different datasets. Through this GUI, configuration manager 115 can receive greenhouse gas emission values specified for a particular dataset. In response to receiving greenhouse gas emission values, configuration manager 115 stores a mapping between greenhouse gas emission values and specific datasets (e.g., a data ID identifying a specific dataset).
[0026] Cache manager 120 is configured to manage cached data stored in cache storage 130. For example, when cache manager 120 receives a dataset and greenhouse gas emission values to be cached in a specific cache, cache manager 120 caches the dataset and greenhouse gas emission values in the specific cache stored in cache storage 130 based on the greenhouse gas emission values associated with the dataset stored in the specific cache. Details of a data caching example will be described below. Figure 2 An example data structure 200 for storing cache entries in a cache, according to some embodiments, is shown. As shown, data structure 200 includes three attributes 205 to 215. Attribute 205 is configured to store a data ID used to identify a dataset stored in attribute 210. Attribute 210 stores the dataset. Attribute 215 is configured to store greenhouse gas emission values.
[0027] Back Figure 1The computing system 135 includes an application programming interface (API) manager 140 and a greenhouse gas emissions data storage 145. The greenhouse gas emissions data storage 145 stores different greenhouse gas emissions values for different datasets generated by executing different API requests. The API manager 140 is responsible for managing API requests provided by the computing system 135. For example, the API manager 140 may receive API requests from the computing system 110. In response to a request, the API manager 140 executes the corresponding API, causing the API to generate a dataset. Next, the API manager 140 sends a response to the API request, including the dataset, to the computing system 110a.
[0028] Now, refer to Figures 3A to 3F This describes the example data caching operation. Figures 3A to 3F An example of managing data in cache 300 based on greenhouse gas data according to some embodiments is shown. In this example, cache 300 is stored in cache storage 130, and cache entries stored in cache 300 are stored according to data structure 200. Example operation begins with computing system 110 sending a request to API manager 140 via an API called API_12. In response to the request, API manager 140 executes API_12, which generates the string value "orange". API manager 140 then sends the string "orange" and the associated greenhouse gas emission value 0.008 to computing system 110. When computing system 110 receives the data, it sends the data and the name of the API (API_12 in this example) to cache manager 120. Next, cache manager 120 generates a cache entry that includes the data ID of API_12, the dataset with the string "orange", and the greenhouse gas emission value of 0.008. Figure 3A As shown, cache 300 includes cache entry 305, which is a cache entry generated by cache manager 120. Cache entry 305 includes the data ID of API_12, a dataset with the string "orange", and a greenhouse gas emission value of 0.008. Here, cache manager 120 has stored cache entry 305 in cache 300.
[0029] The example operation continues, with computing system 110 sending a request to API manager 140 via an API called API_7. Upon receiving the request, API manager 140 executes API_7, which generates the string "green". API manager 140 sends the string "green" and the associated greenhouse gas emission value of 0.002 retrieved from greenhouse gas emission data store 145 to computing system 110. Once computing system 110 receives the data from API manager 140, it sends the data and the name of the API (API_7 in this example) to cache manager 120. Next, cache manager 120 generates a cache entry that includes the data ID of API_7, the dataset with the string "green", and the greenhouse gas emission value of 0.002. Figure 3A It is also shown that cache entry 310 will be cached in cache 300. As shown, cache entry 310 generated by cache manager 120 includes API_12 data ID, dataset with the string "green" and greenhouse gas emission value of 0.002.
[0030] Figure 3B The image shows cache 300 after cache manager 120 has cached cache entry 310. In this example, cache manager 120 stores cache entry 310 in cache 300 based on the greenhouse gas emission values of cache entries 305 and 310. Specifically, cache manager 120 caches cache entry 310 in cache 300 such that the cache entries in cache 300 are sorted in ascending order of greenhouse gas emission values (the smallest is on the left and the largest is on the right in this example). Here, the greenhouse gas emission value of cache entry 310 is less than the greenhouse gas emission value of cache entry 305. Therefore, in Figure 3B In the image, cache entry 310 is depicted to the left of cache entry 305.
[0031] Continuing with the example operation, computing system 110 sends a request to API manager 140 via an API called API_4. When API manager 140 receives the request, it executes API_4, which generates the string "red". API manager 140 then sends the string "red" and the associated greenhouse gas emission value of 0.006 retrieved from greenhouse gas emission data store 145 to computing system 110. After receiving the data from API manager 140, computing system 110 sends the string, the associated greenhouse gas emission value, and the name of the API (API_4 in this example) to cache manager 120. Cache manager 120 then generates a cache entry that includes the API's data ID, the dataset with the string "red", and the greenhouse gas emission value of 0.006. Figure 3B It also shows that cache entry 315 will be cached in cache 300. For example... Figure 3B The cache entry 315, generated by the cache manager 120, includes an API_4 data ID, a dataset with the string "red", and a greenhouse gas emission value of 0.006.
[0032] Figure 3C The image shows cache 300 after cache manager 120 has cached cache entry 315. In this example, cache manager 120 stores cache entry 315 in cache 300 based on the greenhouse gas emission values of cache entries 305 through 315. Specifically, cache manager 120 caches cache entry 315 in cache 300 such that the cache entries in cache 300 are sorted based on their greenhouse gas emission values from smallest to largest (in this example, the smallest is on the left and the largest is on the right). In this example, the greenhouse gas emission value of cache entry 315 is less than that of cache entry 305, but greater than that of cache entry 310. Therefore, cache entry 315 is shown to the left of cache entry 305 and to the right of cache entry 310.
[0033] The example operation continues, with computing system 110 sending a request to API manager 140 via an API called API_13. In response to the request, API manager 140 executes API_13, which generates the string "purple". Next, API manager 140 sends the string "purple" and the associated greenhouse gas emission value of 0.005 retrieved from greenhouse gas emission data store 145 to computing system 110. When computing system 110 receives data from API manager 140, it sends the string, the associated greenhouse gas emission value, and the name of the API (API_13 in this example) to cache manager 120. Cache manager 120 then generates a cache entry that includes the API's data ID, the dataset with the string "purple", and the greenhouse gas emission value of 0.005. Figure 3C It is also shown that cache entry 320 will be cached in cache 300. As shown, cache entry 320 generated by cache manager 120 includes the data ID of API_13, the dataset with the string "purple", and a greenhouse gas emission value of 0.005.
[0034] Figure 3D The image shows cache 300 after cache entry 320 has been cached by cache manager 120. Here, cache manager 120 stores cache entry 320 in cache 300 based on the greenhouse gas emission values of cache entries 305 through 320. Specifically, cache manager 120 caches cache entry 320 in cache 300 such that the cache entries in cache 300 are sorted based on their greenhouse gas emission values from smallest to largest (in this example, the smallest is on the left and the largest is on the right). For this example, the greenhouse gas emission value of cache entry 320 is less than the greenhouse gas emission values of cache entries 315 and 305, but greater than the greenhouse gas emission value of cache entry 310. Therefore, cache entry 320 is depicted to the left of cache entry 315 and to the right of cache entry 310.
[0035] Continuing with the example operation, computing system 110 sends a request to API manager 140 via an API called API_1. Upon receiving the request, API manager 140 executes API_1, which generates the string "blue". API manager 140 then sends the string "blue" and the associated greenhouse gas emission value of 0.01 retrieved from greenhouse gas emission data store 145 to computing system 110. Once computing system 110 receives the data from API manager 140, it sends the string, the associated greenhouse gas emission value, and the name of the API (API_1 in this example) to cache manager 120. Next, cache manager 120 generates a cache entry that includes the API's data ID, the dataset with the string "blue", and the greenhouse gas emission value of 0.01. Figure 3D It also shows that cache entry 325 will be cached in cache 300. For example... Figure 3D As shown, the cache entry 325 generated by the cache manager 120 includes the data ID of API_1, the dataset with the string "blue", and a greenhouse gas emission value of 0.01.
[0036] Figure 3E The diagram shows cache 300 after cache manager 120 has cached cache entry 325. In this example, cache manager 120 stores cache entry 325 in cache 300 based on the greenhouse gas emission values of cache entries 305 to 325. As shown, cache 300 is currently full of cache entries. Therefore, cache manager 120 determines how to handle cache entry 325. Here, cache manager 120 determines the cache entry among cache entries 305 to 325 that has the lowest greenhouse gas emission value. If the determined cache entry is cache entry 325, cache manager 120 discards cache entry 325. Otherwise, cache manager 120 replaces the determined cache entry with cache entry 325 by maintaining the cache entries in ascending order. For this example, cache manager 120 determines that cache entry 310 has the lowest greenhouse gas emission value among cache entries 305 to 325. Thus, cache manager 120 replaces cache entry 310 with cache entry 325. Because cache entry 325 has the highest greenhouse gas emission value, cache entry 325 is depicted in... Figure 3E It is located in the rightmost position of the 300-byte cache.
[0037] The example operation continues, with computing system 110 sending a request to API manager 140 via an API called API_8. Upon receiving the request, API manager 140 executes API_8, which generates the string "yellow". API manager 140 then sends the string "yellow" and the associated greenhouse gas emission value of 0.001 retrieved from greenhouse gas emission data store 145 to computing system 110. After receiving the data from API manager 140, computing system 110 sends the string, the associated greenhouse gas emission value, and the name of the API (API_8 in this example) to cache manager 120. Next, cache manager 120 generates a cache entry that includes the API's data ID, the dataset with the string "yellow", and the greenhouse gas emission value of 0.001. Figure 3E It also describes that cache entry 330 will be cached in cache 300. For example... Figure 3E As shown, the cache entry 330 generated by the cache manager 120 includes a data ID of API_8, a dataset with the string "yellow", and a greenhouse gas emission value of 0.001.
[0038] Figure 3F The diagram shows cache 300 after cache manager 120 has cached cache entry 330. In this example, cache manager 120 stores cache entry 330 in cache 300 based on the greenhouse gas emission values of cache entries 305 through 330. As shown, cache 300 is currently full of cache entries. Therefore, cache manager 120 determines how to handle cache entry 330. In this example, cache manager 120 identifies the cache entry among cache entries 305 through 330 that has the lowest greenhouse gas emission value. If the identified cache entry is cache entry 330, cache manager 120 discards cache entry 330. If the identified cache entry is not cache entry 330, cache manager 120 replaces the identified cache entry with cache entry 330 by maintaining the cache entries in ascending order. Here, cache manager 120 determines that cache entry 330 has the lowest greenhouse gas emission value among cache entries 305 through 330. Therefore, cache manager 120 discards cache entry 330. As shown, the same cache entries 305 to 320 are still stored in cache 300.
[0039] Figure 4This illustrates a process for caching data based on greenhouse gas data according to some embodiments. In some embodiments, computing system 110 executes process 400. Process 400 begins in which a first dataset and a first greenhouse gas emission value associated with the first dataset are received. (See reference...) Figure 1 and 3B The computing system 110 can receive the string "red" and the associated greenhouse gas emission value of 0.006 from the API manager 140.
[0040] Next, in process 420, process 400 stores the first dataset and the first greenhouse gas emission value in the device's cache. Figure 1 and 3C For example, cache manager 120 stores cache entry 315 in cache 300, which includes the string "red" and the associated greenhouse gas emission value 0.006. Then, in process 430, process 400 receives a second dataset and a second greenhouse gas emission value associated with the second dataset. (Reference) Figure 1 and 3C The computing system 110 can receive the string "purple" and the associated greenhouse gas emission value of 0.005 from the API manager 140.
[0041] In process 400, within 440, the second dataset and the second greenhouse gas emission values are stored in the device's cache. Figure 1 and 3D For example, cache manager 120 stores cache entry 320 in cache 300, which includes the string "purple" and the associated greenhouse gas emission value 0.005. Then, in process 450, process 400 receives a third dataset and the third greenhouse gas emission value associated with the third dataset. (Reference) Figure 1 and 3D The computing system 110 can receive the string "blue" and the associated greenhouse gas emission value of 0.01 from the API manager 140.
[0042] Next, in process 400 at 460, based on the first and second greenhouse gas emission values, one of the first and second datasets to be removed from the device's cache is determined. Figure 1 and 3E For example, the cache manager 120 determines how to handle cache entry 325 by identifying the cache entry with the lowest greenhouse gas emission value among cache entries 305 to 325.
[0043] Finally, in process 400 at 470, one of the first and second datasets, along with the corresponding first or second greenhouse gas emission value, is replaced in the device's cache with the third dataset and the third greenhouse gas emission value. Figure 1 and 3E For example, if the determined cache entry is cache entry 325, then cache manager 120 discards cache entry 325. Otherwise, cache manager 120 replaces the determined cache entry with cache entry 325 by maintaining the cache entries in ascending order. Here, cache manager 120 determines that cache entry 310 has the lowest greenhouse gas emission value among cache entries 305 to 325. Cache manager 120 replaces cache entry 310 with cache entry 325 in cache 300, which includes the string "blue" and the associated greenhouse gas emission value 0.01.
[0044] The above reference Figures 1 to 4 The described example illustrates a technique for caching data based on greenhouse gas emission values. Those skilled in the art will understand that this technique can be applied to any type of caching mechanism. For example, data caching techniques can be applied to any type of software caching (e.g., database / database management system (DBMS) caching, network caching, etc.) and any type of hardware caching (e.g., processor memory caching (e.g., L2 memory cache, L3 memory cache, L4 memory cache, etc.), page / disk cache, etc.).
[0045] Figure 5 An exemplary computer system 500 is shown that can implement the various embodiments described above. For example, computer system 500 can be used to implement client device 105, computing system 110, and computing system 135. Computer system 500 can be a desktop computer, laptop computer, server computer, or any other type of computer system, or a combination thereof. Some or all of the elements of configuration manager 115, cache manager 120, API manager 140, or combinations thereof can be included or implemented in computer system 500. Furthermore, computer system 500 can implement many of the operations, methods, and / or processes described above (e.g., process 400). Figure 5 As shown, the computer system 500 includes a processing subsystem 502 that communicates with an input / output (I / O) subsystem 508, a storage subsystem 510, and a communication subsystem 524 via a bus subsystem 526.
[0046] Bus subsystem 526 is configured to facilitate communication between the various components and subsystems of computer system 500. Although bus subsystem 526 is... Figure 5 While shown as a single bus, those skilled in the art will understand that bus subsystem 526 can be implemented as multiple buses. Bus subsystem 526 can be any of several types of bus structures using any of a variety of bus architectures (e.g., memory bus or memory controller, peripheral bus, local bus, etc.). Examples of bus architectures may include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, Peripheral Component Interconnect (PCI) bus, Universal Serial Bus (USB), etc.
[0047] A processing subsystem 502, which may be implemented as one or more integrated circuits (e.g., conventional microprocessors or microcontrollers), controls the operation of a computer system 500. The processing subsystem 502 may include one or more processors 504. Each processor 504 may include one processing unit 506 (e.g., a single-core processor, such as processor 504-1) or several processing units 506 (e.g., a multi-core processor, such as processor 504-2). In some embodiments, the processor 504 of the processing subsystem 502 may be implemented as a standalone processor, while in other embodiments, the processor 504 of the processing subsystem 502 may be implemented as multiple processors integrated into a single chip or multiple chips. Furthermore, in some embodiments, the processor 504 of the processing subsystem 502 may be implemented as a combination of a standalone processor and multiple processors integrated into a single chip or multiple chips.
[0048] In some embodiments, the processing subsystem 502 can execute various programs or procedures in response to program code, and can maintain multiple concurrently executing programs or procedures. At any given time, some or all of the program code to be executed can reside in the processing subsystem 502 and / or the storage subsystem 510. With appropriate programming, the processing subsystem 502 can provide various functionalities, such as those described above with reference to process 400.
[0049] I / O subsystem 508 may include any number of user interface input devices and / or user interface output devices. User interface input devices may include keyboards, directional devices (e.g., mice, trackballs, etc.), touchpads, touchscreens integrated into displays, scroll wheels, click wheels, dials, buttons, switches, keypads, audio input devices with voice recognition systems, microphones, image / video capture devices (e.g., webcams, image scanners, barcode readers, etc.), motion sensing devices, gesture recognition devices, eye gesture (e.g., blinking) recognition devices, biometric input devices, and / or any other type of input device.
[0050] User interface output devices may include visual output devices (e.g., display subsystems, indicator lights, etc.), audio output devices (e.g., speakers, headphones, etc.). Examples of display subsystems may include cathode ray tubes (CRTs), flat panel devices (e.g., liquid crystal displays (LCDs), plasma displays, etc.), projection devices, touch screens, and / or any other type of device and mechanism for outputting information from computer system 500 to a user or another device (e.g., a printer).
[0051] like Figure 5 As shown, the storage subsystem 510 includes a system memory 512, a computer-readable storage medium 520, and a computer-readable storage medium reader 522. The system memory 512 may be configured to store software in the form of program instructions that can be loaded and executed by the processing subsystem 502, as well as data generated during the execution of the program instructions. In some embodiments, the system memory 512 may include volatile memory (e.g., random access memory (RAM)) and / or non-volatile memory (e.g., read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), flash memory, etc.). The system memory 512 may include different types of memory, such as static random access memory (SRAM) and / or dynamic random access memory (DRAM). The system memory 512 may include a basic input / output system (BIOS), which in some embodiments is configured to store basic routines to facilitate the transfer of information between elements within the computer system 500 (e.g., during startup). This BIOS can be stored in ROM (e.g., a ROM chip), flash memory, or any other type of memory that can be configured to store the BIOS.
[0052] like Figure 5 As shown, system memory 512 includes application program 514, program data 516, and operating system (OS) 518. OS 518 can be various versions of Microsoft Windows, Apple MacOS, Apple OS X, Apple macOS, and / or Linux operating systems, various commercially available UNIX or UNIX-like operating systems (including but not limited to various GNU / Linux operating systems, Google...). One of the following: OS (such as Apple iOS, Windows Phone, Windows Mobile, Android, BlackBerry OS, Blackberry 10 and Palm OS, WebOS operating system).
[0053] Computer-readable storage medium 520 may be a non-transitory computer-readable medium configured to store software (e.g., programs, code modules, data structures, instructions, etc.). Many of the aforementioned components (e.g., configuration manager 115, cache manager 120, and API manager 140) and / or processes (e.g., process 400) may be implemented as software, which, when executed by a processor or processing unit (e.g., the processor or processing unit of processing subsystem 502), performs the operations of such components and / or processes. Storage subsystem 510 may also store data used for software execution or generated during software execution.
[0054] The storage subsystem 510 may also include a computer-readable storage medium reader 522 configured to communicate with the computer-readable storage medium 520. The computer-readable storage medium 520, together with and optionally in conjunction with the system memory 512, can comprehensively represent remote, local, fixed, and / or removable storage devices, as well as storage media for temporarily and / or more permanently containing, storing, transmitting, and retrieving computer-readable information.
[0055] Computer-readable storage medium 520 can be any suitable medium known or used in the art, including storage media implemented in any method or technology for storing and / or transmitting information, such as volatile, non-volatile, removable, or non-removable media. Examples of such storage media include RAM, ROM, EEPROM, flash memory or other memory technologies, optical disc read-only memory (CD-ROM), digital versatile disc (DVD), Blu-ray disc (BD), magnetic cassettes, magnetic tape, disk storage (e.g., hard disk drive), Zip drive, solid-state drive (SSD), flash memory card (e.g., Secure Digital (SD) card, CompactFlash card, etc.), USB flash drive, or any other type of computer-readable storage medium or device.
[0056] The communication subsystem 524 serves as an interface for receiving data from and transmitting data to other devices, computer systems, and networks. For example, the communication subsystem 524 may allow computer system 500 to connect to one or more devices via a network (e.g., a Personal Area Network (PAN), Local Area Network (LAN), Storage Area Network (SAN), Campus Network (CAN), Metropolitan Area Network (MAN), Wide Area Network (WAN), Global Area Network (GAN), Intranet, Internet, a network consisting of any number of different types of networks, etc.). The communication subsystem 524 may include any number of different communication components. Examples of these components may include radio frequency (RF) transceiver components, global positioning system (GPS) receiver components, and / or other components for accessing wireless voice and / or data networks using cellular technologies (such as 2G, 3G, 4G, 5G, etc.), wireless data technologies (such as Wi-Fi, Bluetooth, ZigBee, etc.), or any combination thereof. In some embodiments, in addition to or replacing components configured for wireless communication, the communication subsystem 524 may provide components configured for wired communication (e.g., Ethernet).
[0057] Those skilled in the art will recognize that, Figure 5 The architecture shown is merely an example architecture of computer system 500, and computer system 500 may have more or fewer components than shown, or may have different component configurations. Figure 5 The various components shown can be implemented using hardware, software, firmware, or any combination thereof (including one or more signal processing and / or dedicated integrated circuits).
[0058] Figure 6 An exemplary computing device 600 is shown that can implement the various embodiments described above. For example, computing device 600 can be used to implement client device 105. Computing device 600 can be a mobile phone, smartphone, wearable device, activity tracker or manager, tablet computer, personal digital assistant (PDA), media player, or any other type of mobile computing device, or a combination thereof. Figure 6 As shown, computing device 600 includes a processing system 602, an input / output (I / O) system 608, a communication system 618, and a storage system 620. These components can be coupled via one or more communication buses or signal lines.
[0059] A processing system 602, which can be implemented as one or more integrated circuits (e.g., conventional microprocessors or microcontrollers), controls the operation of a computing device 600. As shown, the processing system 602 includes one or more processors 604 and a memory 606. The processor 604 is configured to run or execute various software and / or instruction sets stored in the memory 606 to perform various functions of the computing device 600 and process data.
[0060] Each processor in processor 604 may include one processing unit (e.g., a single-core processor) or several processing units (e.g., a multi-core processor). In some embodiments, processor 604 of processing system 602 may be implemented as a standalone processor, while in other embodiments, processor 604 of processing system 602 may be implemented as multiple processors integrated into a single chip. Furthermore, in some embodiments, processor 604 of processing system 602 may be implemented as a combination of a standalone processor and multiple processors integrated into a single chip.
[0061] Memory 606 may be configured to receive and store software in the form of program instructions that can be loaded and executed by processor 604 (e.g., operating system 622, application 624, I / O module 626, communication module 628, etc. from storage system 620), as well as data generated during the execution of program instructions. In some embodiments, memory 606 may include volatile memory (e.g., random access memory (RAM)), non-volatile memory (e.g., read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), flash memory, etc.) or combinations thereof.
[0062] I / O system 608 is responsible for receiving input through various components and providing output through various components. As shown in this example, I / O system 608 includes a display 610, one or more sensors 612, a speaker 614, and a microphone 616. Display 610 is configured to output visual information (e.g., a graphical user interface (GUI) generated and / or rendered by processor 604). In some embodiments, display 610 is a touchscreen configured to also receive touch-based input. Display 610 can be implemented using liquid crystal display (LCD) technology, light-emitting diode (LED) technology, organic LED (OLED) technology, organic electroluminescent (OEL) technology, or any other type of display technology. Sensor 612 can include any number of different types of sensors for measuring physical quantities (e.g., temperature, force, pressure, acceleration, orientation, light, radiation, etc.). Speaker 614 is configured to output audio information, and microphone 616 is configured to receive audio input. Those skilled in the art will understand that I / O system 608 can include any number of more, fewer, and / or different components. For example, I / O system 608 may include a keypad or keyboard for receiving input, a port for transmitting data, receiving data and / or power, and / or communicating with another device or component, an image capture component for capturing photos and / or videos, etc.
[0063] Communication system 618 serves as an interface for receiving data from and transmitting data to other devices, computer systems, and networks. For example, communication system 618 may allow computing device 600 to connect to one or more devices via a network (e.g., a Personal Area Network (PAN), Local Area Network (LAN), Storage Area Network (SAN), Campus Network (CAN), Metropolitan Area Network (MAN), Wide Area Network (WAN), Global Area Network (GAN), Intranet, Internet, a network consisting of any number of different types of networks, etc.). Communication system 618 may include any number of different communication components. Examples of these components may include radio frequency (RF) transceiver components, global positioning system (GPS) receiver components, and / or other components for accessing wireless voice and / or data networks (e.g., using cellular technologies such as 2G, 3G, 4G, 5G, etc., wireless data technologies such as Wi-Fi, Bluetooth, ZigBee, etc.) or any combination thereof). In some embodiments, in addition to or replacing components configured for wireless communication, communication system 618 may provide components configured for wired communication (e.g., Ethernet).
[0064] Storage system 620 handles the storage and management of data from computing device 600. Storage system 620 may be implemented by one or more non-transitory machine-readable media configured to store software (e.g., programs, code modules, data structures, instructions, etc.) and to store data used for the execution of the software or generated during the execution of the software.
[0065] In this example, storage system 620 includes an operating system 622, one or more applications 624, an I / O module 626, and a communication module 628. The operating system 622 includes various processes, instruction sets, software components, and / or drivers for controlling and managing general system tasks (e.g., memory management, storage device control, power management, etc.) and facilitating communication between various hardware and software components. The operating system 622 can be various versions of Microsoft Windows, Apple Mac OS, Apple OS X, Apple macOS, and / or Linux operating systems, various commercially available UNIX or UNIX-like operating systems (including but not limited to various GNU / Linux operating systems, Google...). One of the following: OS (such as Apple iOS, Windows Phone, Windows Mobile, Android, BlackBerry OS, Blackberry 10 and Palm OS, WebOS operating system).
[0066] Application 624 may include any number of different applications installed on computing device 600. Examples of such applications may include browser applications, address book applications, contact list applications, email applications, instant messaging applications, word processing applications, Java-enabled applications, encryption applications, digital rights management applications, speech recognition applications, location determination applications, map applications, music player applications, etc.
[0067] I / O module 626 manages information received via input components (e.g., display 610, sensor 612, and microphone 616) and information to be output via output components (e.g., display 610 and speaker 614). Communication module 628 facilitates communication with other devices via communication system 618 and includes various software components for processing data received from communication system 618.
[0068] Those skilled in the art will recognize that, Figure 6 The architecture shown is merely an example architecture of computing device 600, and computing device 600 may have more or fewer components than shown, or may have different component configurations. Figure 6The various components shown can be implemented using hardware, software, firmware, or any combination thereof (including one or more signal processing and / or dedicated integrated circuits).
[0069] Figure 7 An exemplary system 700 is shown that can implement the various embodiments described above. For example, one of client devices 702 to 708 can be used to implement client device 105, and a cloud computing system can be used to implement computing systems 110 and 135. As shown, system 700 includes client devices 702 to 708, one or more networks 710, and a cloud computing system 712. Cloud computing system 712 is configured to provide resources and data to client devices 702 to 708 via network 710. In some embodiments, cloud computing system 700 provides resources to any number of different users (e.g., customers, tenants, organizations, etc.). Cloud computing system 712 can be implemented by one or more computer systems (e.g., servers), virtual machines operating on computer systems, or a combination thereof.
[0070] As shown in the figure, the cloud computing system 712 includes one or more applications 714, one or more services 716, and one or more databases 718. The cloud computing system 700 can provide applications 714, services 716, and databases 718 to any number of different customers in a self-service, subscription-based, elastically scalable, reliable, highly available, and secure manner.
[0071] In some embodiments, the cloud computing system 700 can be adapted to automatically provide, manage, and track customer subscriptions to services provided by the cloud computing system 700. The cloud computing system 700 can provide cloud services via different deployment models. For example, the cloud service can be provided in a public cloud model, where the cloud computing system 700 is owned by an organization selling cloud services, and the cloud services are provided to the general public or businesses in different industries. As another example, the cloud service can be provided in a private cloud model, where the cloud computing system 700 is operated by a single organization and can provide cloud services to one or more entities within that organization. The cloud service can also be provided in a community cloud model, where the cloud computing system 700 and the cloud services provided by the cloud computing system 700 are shared by several organizations in the relevant community. The cloud service can also be provided in a hybrid cloud model, which is a combination of two or more of the different models described above.
[0072] In some cases, any of the applications 714, services 716, and databases 718 provided via network 710 from cloud computing system 712 to client devices 702 to 708 is referred to as a "cloud service." Typically, the servers and systems constituting cloud computing system 712 differ from the on-premises servers and systems of the clients. For example, cloud computing system 712 can host applications, and a user of one of the client devices 702 to 708 can subscribe to and use the applications via network 710.
[0073] Application 714 may include a software application configured to execute on cloud computing system 712 (e.g., a computer system or a virtual machine operating on a computer system), and accessed, controlled, managed, etc., via client devices 702 to 708. In some embodiments, application 714 may include server applications and / or middleware applications (e.g., HTTP (Hypertext Transfer Protocol) server applications, FTP (File Transfer Protocol) server applications, CGI (Common Gateway Interface) server applications, JAVA server applications, etc.). Service 716 is a software component, module, application, etc., configured to execute on cloud computing system 712, and provides functionality to client devices 702 to 708 via network 710. Service 716 may be a network-based service or an on-demand cloud service.
[0074] Database 718 is configured to store and / or manage data accessed by application 714, service 716, and / or client devices 702 to 708. For example, storage devices 125, 130, and 145 may be stored in database 718. Database 718 may reside on a non-transitory storage medium local to (and / or residing in) cloud computing system 712, in a storage area network (SAN), or on a non-transitory storage medium remote from cloud computing system 712. In some embodiments, database 718 may include a relational database managed by a relational database management system (RDBMS). Database 718 may be a column-oriented database, a row-oriented database, or a combination thereof. In some embodiments, some or all of database 718 are in-memory databases. That is, in some such embodiments, the data of database 718 is stored in and managed in memory (e.g., random access memory (RAM)).
[0075] Client devices 702 to 708 are configured to execute and operate client applications (e.g., web browsers, proprietary client applications, etc.) that communicate with application 714, service 716, and / or database 718 via network 710. Thus, while application 714, service 716, and database 718 operate (e.g., are hosted) on cloud computing system 700, client devices 702 to 708 can access various functions provided by application 714, service 716, and database 718. Client devices 702 to 708 can be as described above, respectively. Figure 5 and 6 The computer system 500 or computing device 600 is described. Although system 700 shows four client devices, it can support any number of client devices.
[0076] Network 710 can be any type of network configured to facilitate data communication between client devices 702 to 708 and cloud computing system 712 using any of a variety of network protocols. Network 710 can be a Personal Area Network (PAN), Local Area Network (LAN), Storage Area Network (SAN), Campus Network (CAN), Metropolitan Area Network (MAN), Wide Area Network (WAN), Global Area Network (GAN), Intranet, Internet, or a network consisting of any number of different types of networks, etc.
[0077] The foregoing description illustrates various embodiments of this disclosure and examples of how aspects of this disclosure can be implemented. The foregoing examples and embodiments should not be considered as the only embodiments, but are intended to illustrate the flexibility and advantages of the various embodiments of this disclosure as defined by the appended claims. Other arrangements, embodiments, implementations, and equivalents will be apparent to those skilled in the art based on the foregoing disclosure and the appended claims, and may be employed without departing from the spirit and scope of this disclosure as defined by the claims.
Claims
1. A non-transitory machine-readable medium storing a program executable by at least one processing unit of a device, the program comprising sets of instructions for: receiving a first data set and a first greenhouse gas emission value associated with the first data set, wherein, storing, in a cache of the device, the first data set and the first greenhouse gas emission value; receiving a second data set and a second greenhouse gas emission value associated with the second data set, wherein the second greenhouse gas emission value indicates an amount of greenhouse gases emitted by the computing system to process the request and determine the second data set; storing, in the cache of the device, the second data set and the second greenhouse gas emission value; receiving a third data set and a third greenhouse gas emission value associated with the third data set, wherein the third greenhouse gas emission value indicates an amount of greenhouse gases emitted by the computing system to process the request and determine the third data set; determining, based on the first greenhouse gas emission value and the second greenhouse gas emission value, one of the first data set and the second data set to remove from the cache of the device; and replacing, in the cache of the device, the one of the first data set and the second data set and the corresponding first greenhouse gas emission value or the second greenhouse gas emission value with the third data set and the third greenhouse gas emission value. The program further comprises sets of instructions for sending a request to the computing system through an application programming interface (API) provided by the computing system, wherein the first data set and the first greenhouse gas emission value are received from the computing system in response to the request.
2. The non-transitory machine-readable medium of claim 1, wherein, The program further comprises sets of instructions for:
3. The non-transitory machine-readable medium of claim 1, wherein, receiving, through a graphical user interface (GUI), a specification of the first greenhouse gas emission value for the first data set; and storing a mapping between the first greenhouse gas emission value and the first data set. The program further comprises sets of instructions for:
4. The non-transitory machine-readable medium of claim 3, wherein, sending a request to the computing system through an application programming interface (API) provided by the computing system, wherein the first data set is received from the computing system in response to the request; and determining, based on the mapping between the first greenhouse gas emission value and the first data set, that the first greenhouse gas emission value is associated with the first data set. Determining one of the first data set and the second data set to remove from the cache of the device comprises:
5. The non-transitory machine-readable medium of claim 1, wherein, determining one of the first greenhouse gas emission value and the second greenhouse gas emission value having a highest value; and determining a corresponding one of the first data set and the second data set as the one of the first data set and the second data set to remove from the cache of the device. The cache of the device is a memory cache of the device.
6. The non-transitory machine-readable medium of claim 1, wherein, 7. A method executable by a device, comprising: receiving a first data set and a first greenhouse gas emission value associated with the first data set, wherein the first greenhouse gas emission value indicates an amount of greenhouse gases emitted by the computing system to process the request and determine the first data set; storing, in a cache of the device, the first data set and the first greenhouse gas emission value; receiving a second data set and a second greenhouse gas emission value associated with the second data set, wherein the second greenhouse gas emission value indicates an amount of greenhouse gases emitted by the computing system to process the request and determine the second data set; storing the second data set and the second greenhouse gas emission value in a cache of the device; receiving a third data set and a third greenhouse gas emission value associated with the third data set, wherein the third greenhouse gas emission value indicates an amount of greenhouse gas emitted by the computing system to process the request and determine the third data set; determining one of the first data set and the second data set to remove from the cache of the device based on the first greenhouse gas emission value and the second greenhouse gas emission value; and replacing one of the first data set and the second data set and the corresponding first greenhouse gas emission value or the second greenhouse gas emission value with the third data set and the third greenhouse gas emission value in the cache of the device.
8. The method of claim 7, further comprising: sending a request to the computing system through an application programming interface (API) provided by the computing system, wherein the first data set and the first greenhouse gas emission value are received from the computing system in response to the request.
9. The method of claim 7, further comprising: receiving, through a graphical user interface (GUI), a specification of the first greenhouse gas emission value for the first data set; and storing a mapping between the first greenhouse gas emission value and the first data set.
10. The method of claim 9, further comprising: sending a request to the computing system through an application programming interface (API) provided by the computing system, wherein the first data set is received from the computing system in response to the request; and determining that the first greenhouse gas emission value is associated with the first data set based on the mapping between the first greenhouse gas emission value and the first data set.
11. The method of claim 7, wherein, determining one of the first data set and the second data set to remove from the cache of the device includes: determining one of the first greenhouse gas emission value and the second greenhouse gas emission value having a highest value; and determining a corresponding one of the first data set and the second data set as the one of the first data set and the second data set to remove from the cache of the device.
12. The method of claim 7, wherein, The cache of the device is a memory cache of the device.
13. A system comprising: a set of processing units; and a non-transitory machine-readable medium storing instructions that, when executed by at least one processing unit of the set of processing units, cause the at least one processing unit to: receive a first data set and a first greenhouse gas emission value associated with the first data set, wherein the first greenhouse gas emission value indicates an amount of greenhouse gas emitted by the computing system to process the request and determine the first data set; store the first data set and the first greenhouse gas emission value in a cache of the system; receive a second data set and a second greenhouse gas emission value associated with the second data set, wherein the second greenhouse gas emission value indicates an amount of greenhouse gas emitted by the computing system to process the request and determine the second data set; store the second data set and the second greenhouse gas emission value in the cache of the system; receive a third data set and a third greenhouse gas emission value associated with the third data set, wherein the third greenhouse gas emission value indicates an amount of greenhouse gas emitted by the computing system to process the request and determine the third data set; determine, based on the first greenhouse gas emission value and the second greenhouse gas emission value, one of the first data set and the second data set to remove from the cache of the system; and replace, in the cache of the system, the one of the first data set and the second data set and the corresponding first greenhouse gas emission value or the second greenhouse gas emission value with a third data set and a third greenhouse gas emission value.
14. The system of claim 13, wherein, The instructions further cause the at least one processing unit to:
15. The system of claim 13, wherein, receive, from the computing system, the first data set and the first greenhouse gas emission value in response to the request. The instructions further cause the at least one processing unit to: receive, via a graphical user interface (GUI), a specification of the first greenhouse gas emission value for the first data set; and 16. The system of claim 15, wherein, store a mapping between the first greenhouse gas emission value and the first data set. The instructions further cause the at least one processing unit to: receive, from the computing system, the first data set in response to the request; and 17. The system of claim 13, wherein, determine, based on the mapping between the first greenhouse gas emission value and the first data set, that the first greenhouse gas emission value is associated with the first data set. Determining the one of the first data set and the second data set to remove from the cache of the system includes: determining the one of the first greenhouse gas emission value and the second greenhouse gas emission value having a highest value; and determining, as the one of the first data set and the second data set to remove from the cache of the system, a corresponding one of the first data set and the second data set.
Citation Information
Patent Citations
System and method for carbon footprint determination
US10902484B1
Intelligent cache replacement mechanism with varying and adaptive temporal residency requirements
US20100281218A1
System and method of controlling data center resources for management of greenhouse gas emission
US7742830B1