A computer-implemented method for data management, comprising: obtaining, by at least one processor, a task request, the task request indicating to retrieve data stored on at least one storage device to execute a task; updating execution information for the data by the at least one processor and based on the task request, the execution information for the data describing a task set of one or more tasks that need retrieval of the data, wherein the execution information comprises an execution frequency of each of the one or more tasks, wherein updating the execution information for the data comprises: in response to determining that said task is not comprised in the task set, adding said task to the task set so that the execution frequency of said task is comprised in the updated execution information; or in response to determining that said task is comprised in the task set, adjusting the execution frequency of said task in the execution information based on the task request; calculating, by the at least one processor and based on the updated execution information for the data and for each of a plurality of storage locations on the at least one storage device, a storage location specific cost value of the data; determining, by the at least one processor and based on the calculated cost value, an objective storage location on the at least one storage device for storing said data; and executing said task; wherein the method further comprises in response to a current storage location of the data being not the objective storage location, re-storing the data on the objective storage location before the execution of the task, in parallel with the execution of the task, or after the execution of the task, wherein the cost value is calculated based on both a time cost and a price cost, and wherein the time cost of the data is calculated based on a required time, a desired time, and a penalty value of each of the one or more tasks, the penalty value representing a degree of unacceptability of task execution overtime of the one or more tasks. obtaining, by at least one processor, a task request, the task request indicating to retrieve data stored on at least one storage device to execute a task; updating execution information for the data by the at least one processor and based on the task request, the execution information for the data describing a task set of one or more tasks that need retrieval of the data, wherein the execution information comprises an execution frequency of each of the one or more tasks, wherein updating the execution information for the data comprises: in response to determining that said task is not comprised in the task set, adding said task to the task set so that the execution frequency of said task is comprised in the updated execution information; or in response to determining that said task is comprised in the task set, adjusting the execution frequency of said task in the execution information based on the task request; in response to determining that said task is not comprised in the task set, adding said task to the task set so that the execution frequency of said task is comprised in the updated execution information; or in response to determining that said task is comprised in the task set, adjusting the execution frequency of said task in the execution information based on the task request; calculating, by the at least one processor and based on the updated execution information for the data and for each of a plurality of storage locations on the at least one storage device, a storage location specific cost value of the data; determining, by the at least one processor and based on the calculated cost value, an objective storage location on the at least one storage device for storing said data; and executing said task; wherein the method further comprises in response to a current storage location of the data being not the objective storage location, re-storing the data on the objective storage location before the execution of the task, in parallel with the execution of the task, or after the execution of the task, wherein the cost value is calculated based on both a time cost and a price cost, and wherein the time cost of the data is calculated based on a required time, a desired time, and a penalty value of each of the one or more tasks, the penalty value representing a degree of unacceptability of task execution overtime of the one or more tasks.