A storage controller comprised by a solid state drive, SSD, and configured to manage storage and retrieval of data at the SSD, the storage controller comprising: a host interface configured to communicate with one or more hosts; a memory interface, configured to communicate locally with a non-volatile memory of the SSD; a central processing unit, CPU, configured to manage local storage or retrieval of objects at the non-volatile memory, wherein the objects are unstructured objects of different media types comprising videos, sound recordings, still images, textual objects, data obtained from various types of sensors; and a computational engine configured to: obtain, from a volatile memory (108, 125) via the CPU, a first computational model among a plurality of computational models, and a set of parameters for implementing the first computational model; and compute, by the CPU using the first computational model, metadata that defines content characteristics of the objects that are retrieved from the nonvolatile memory, wherein the CPU is configured to initiate computation of the metadata when the storage controller is idle from performing storage operations; and wherein the CPU is further configured to: receive, via the host interface, the objects from the one or more hosts, wherein the objects are to be stored at the non-volatile memory; temporarily store the received objects at a volatile memory disposed within the storage controller for metadata computation; after computation of the metadata that defines content characteristics of the objects is completed: send, via the memory interface, the received objects from the volatile memory to the non-volatile memory for storage; and perform at least one of: sending, via the host interface, the metadata to a host system, and sending, via the memory interface, the metadata to the non-volatile memory for storage. a host interface configured to communicate with one or more hosts; a memory interface, configured to communicate locally with a non-volatile memory of the SSD; a central processing unit, CPU, configured to manage local storage or retrieval of objects at the non-volatile memory, wherein the objects are unstructured objects of different media types comprising videos, sound recordings, still images, textual objects, data obtained from various types of sensors; and a computational engine configured to: obtain, from a volatile memory (108, 125) via the CPU, a first computational model among a plurality of computational models, and a set of parameters for implementing the first computational model; and compute, by the CPU using the first computational model, metadata that defines content characteristics of the objects that are retrieved from the nonvolatile memory, wherein the CPU is configured to initiate computation of the metadata when the storage controller is idle from performing storage operations; and obtain, from a volatile memory (108, 125) via the CPU, a first computational model among a plurality of computational models, and a set of parameters for implementing the first computational model; and compute, by the CPU using the first computational model, metadata that defines content characteristics of the objects that are retrieved from the nonvolatile memory, wherein the CPU is configured to initiate computation of the metadata when the storage controller is idle from performing storage operations; and wherein the CPU is further configured to: receive, via the host interface, the objects from the one or more hosts, wherein the objects are to be stored at the non-volatile memory; temporarily store the received objects at a volatile memory disposed within the storage controller for metadata computation; after computation of the metadata that defines content characteristics of the objects is completed: send, via the memory interface, the received objects from the volatile memory to the non-volatile memory for storage; and perform at least one of: sending, via the host interface, the metadata to a host system, and sending, via the memory interface, the metadata to the non-volatile memory for storage. receive, via the host interface, the objects from the one or more hosts, wherein the objects are to be stored at the non-volatile memory; temporarily store the received objects at a volatile memory disposed within the storage controller for metadata computation; after computation of the metadata that defines content characteristics of the objects is completed: send, via the memory interface, the received objects from the volatile memory to the non-volatile memory for storage; and perform at least one of: sending, via the host interface, the metadata to a host system, and sending, via the memory interface, the metadata to the non-volatile memory for storage. send, via the memory interface, the received objects from the volatile memory to the non-volatile memory for storage; and perform at least one of: sending, via the host interface, the metadata to a host system, and sending, via the memory interface, the metadata to the non-volatile memory for storage.