Patent Description:
With the development of electronic and communication technology, more and more electronic devices (e.g., processing devices) are widely used. Under different situations or scenarios, required storage capacities and/or required computing capacities are different. Therefore, it is desirable to provide systems and methods for effectively balancing storage performance and computing performance of the processing devices, thereby improving both the storage performance and the computing performance.

<CIT> discloses a system comprising a plurality of storage nodes with respective I/O controllers, and a Distributed Data Management Unit that includes a Data Analysis Unit. The Data Analysis Unit analyzes a type of a data request provided from a processing node and length and address of data, and provides the analysis information to a Distributed Resource Management Unit. An I/O Performance Monitoring Unit monitors the I/O performances of the respective storage nodes. The I/O performance may be evaluated according to the I/O speed, the maximum bandwidth, and the current bandwidth capacity of each of the storage nodes. An I/O Bandwidth Setting Unit may decide the bandwidth or the amount of parts to be read from the respective storage nodes according to the I/O performance of the respective storage nodes.

The methods, systems, and/or programming described herein are further described in terms of exemplary embodiments. These embodiments are nonlimiting exemplary embodiments, in which like reference numerals represent similar structures throughout the several views of the drawings, and wherein:.

It will be understood that the term "system," "engine," "unit," "module," and/or "block" used herein are one method to distinguish different components, elements, parts, section or assembly of different level in ascending order. However, the terms may be displaced by other expression(s) if they may achieve the same purpose.

Generally, the word "module," "unit," or "block," as used herein, refers to logic embodied in hardware or firmware, or to a collection of software instructions. A module, a unit, or a block described herein may be implemented as software and/or hardware and may be stored in any type of non-transitory computer-readable medium or other storage device(s). In some embodiments, a software module/unit/block may be compiled and linked into an executable program. It will be appreciated that software modules can be callable from other modules/units/blocks or from themselves, and/or may be invoked in response to detected events or interrupts. Software modules/units/blocks configured for execution on computing devices may be provided on a computer-readable medium, such as a compact disc, a digital video disc, a flash drive, a magnetic disc, or any other tangible medium, or as a digital download (and can be originally stored in a compressed or installable format that needs installation, decompression, or decryption prior to execution). Such software code may be stored, partially or fully, on a storage device of the executing computing device, for execution by the computing device. Software instructions may be embedded in firmware, such as an EPROM. It will be further appreciated that hardware modules (or units or blocks) may be included in connected logic components, such as gates and flip-flops, and/or can be included in programmable units, such as programmable gate arrays or processors. The modules (or units or blocks) or computing device functionality described herein may be implemented as software modules (or units or blocks), but may be represented in hardware or firmware. In general, the modules (or units or blocks) described herein refer to logical modules (or units or blocks) that may be combined with other modules (or units or blocks) or divided into sub-modules (or sub-units or sub-blocks) despite their physical organization or storage.

It will be understood that when a unit, engine, module, or block is referred to as being "on," "connected to," or "coupled to" another unit, engine, module, or block, it may be directly on, connected or coupled to, or communicate with the other unit, engine, module, or block, or an intervening unit, engine, module, or block may be present, unless the context clearly indicates otherwise.

The terminology used herein is for the purposes of describing particular examples and embodiments only and is not intended to be limiting. It will be further understood that the terms "include" and/or "comprise," when used in this disclosure, specify the presence of integers, devices, behaviors, stated features, steps, elements, operations, and/or components, but do not exclude the presence or addition of one or more other integers, devices, behaviors, features, steps, elements, operations, components, and/or groups thereof.

An aspect of the present disclosure relates to a system and method for data storage and/or computing. The system may include one or more storage modules and one or more computing modules. The system may obtain data to be processed and determine a required storage bandwidth based on the data to be processed. The system may also determine a distribution mode of a current computing bandwidth of the one or more computing modules based on a current storage bandwidth of the one or more storage modules and the required storage bandwidth.

According to some embodiments of the present disclosure, the system may monitor the current storage bandwidth of the one or more storage modules and the data to be processed in real-time. The system may dynamically allocate the computing bandwidth of the one or more computing modules for optimizing the storage performance of the one or more storage modules. In such cases, the storage module(s) and the computing module(s) are implemented cooperatively, such that the storage module(s) can store more data (e.g., data to be stored and/or analysis result(s) of data to be analyzed) during a preset storage cycle in comparison of a situation that the storage module(s) and the computing module(s) are implemented separately and/or individually. In addition, the storage module(s) and the computing module(s) may be integrated into an integrated storage-computing device. The integrated storage-computing device may be communicatively connected to at least one processor (or controller) of the system, such that the storage module(s) and the computing module(s) can be controlled by the at least one processor (or controller) and implemented cooperatively for achieving the method described elsewhere in the present disclosure.

<FIG> a schematic diagram illustrating an exemplary data processing system according to some embodiments of the present disclosure. The data processing system <NUM> may be used as various systems (e.g., a communication system, a surveillance system, a monitoring system) and may be applied in various scenarios (e.g., traffic roads, residential buildings, office buildings, shopping malls, hospitals). For illustration purposes, the present disclosure is described with respect to a data processing system <NUM> applied in traffic monitoring. As illustrated in <FIG>, the data processing system <NUM> may include a server <NUM>, a network <NUM>, a capture device <NUM>, a terminal device <NUM>, and a storage device <NUM>.

The server <NUM> may be a single server or a server group. The server group may be centralized or distributed. For example, the server <NUM> may be a distributed system). In some embodiments, the server <NUM> may be local or remote. For example, the server <NUM> may access information and/or data stored in the capture device <NUM> via the network <NUM>. As another example, the server <NUM> may be directly connected to capture device <NUM> to access stored information and/or data. In some embodiments, the server <NUM> may be implemented on a cloud platform. Merely by way of example, the cloud platform may include a private cloud, a public cloud, a hybrid cloud, a community cloud, a distributed cloud, an inter-cloud, a multi-cloud, or the like, or any combination thereof. In some embodiments, the server <NUM> may be implemented on a computing device <NUM> including one or more components illustrated in <FIG> of the present disclosure.

In some embodiments, the server <NUM> may include a processing device <NUM>. The processing device <NUM> may process information and/or data relating to data storage and computing to perform one or more functions described in the present disclosure. In some embodiments, the processing device <NUM> may include one or more processing devices (e.g., single-core processing device(s) or multi-core processor(s)). Merely by way of example, the processing device <NUM> may include a central processing unit (CPU), an application-specific integrated circuit (ASIC), an application-specific instruction-set processor (ASIP), a graphics processing unit (GPU), a physics processing unit (PPU), a digital signal processor (DSP), a field programmable gate array (FPGA), a programmable logic device (PLD), a controller, a microcontroller unit, a reduced instruction-set computer (RISC), a microprocessor, or the like, or any combination thereof.

In some embodiments, the processing device <NUM> may include one or more storage modules, one or more computing modules, and at least one processor. In some embodiments, the at least one processor may execute instructions to cause the processing device <NUM> to perform operations described in the present disclosure. For example, the processing device <NUM> may obtain data to be processed. The processing device <NUM> may determine a required storage bandwidth based on the data to be processed. The processing device <NUM> may also determine a distribution mode of a current computing bandwidth of the one or more computing modules based on a current storage bandwidth of the one or more storage modules and the required storage bandwidth. Further, the processing device <NUM> may perform the storage and computing of the data to be processed according to the distribution mode of the current computing bandwidth.

In some embodiments, the one or more computing modules and/or the one or more storage modules may be integrated into one or more integrated storage-computing devices. For example, an integrated storage-computing device may include a storage module and a computing module. As another example, an integrated storage-computing device may include a storage module and two computing modules.

In some embodiments, the integrated storage-computing device may be part of the processing device <NUM>. In some embodiments, the integrated storage-computing device may be a device independent from the processing device <NUM>. The processing device <NUM> may be communicatively connected to the integrated storage-computing device to perform the storage function and the computing function cooperatively. For example, the integrated storage-computing device may be an external device of the processing device <NUM> (e.g., may be inserted into the processing device <NUM> as shown in <FIG> and <FIG>). As another example, the integrated storage-computing device may be remote from the processed device <NUM>. More descriptions regarding the connection mode between the processing device <NUM> and the integrated storage-computing device may be found elsewhere in the present disclosure (e.g., <FIG> and <FIG> and the descriptions thereof).

In some embodiment, the sever <NUM> may be unnecessary and all or part of the functions of the server <NUM> may be implemented by other components (e.g., the capture device <NUM>, the terminal device <NUM>) of the data processing system <NUM>. For example, the processing device <NUM> may be integrated into the capture device <NUM> or the terminal device <NUM> and the functions of the processing device <NUM> may be implemented by the capture device <NUM> or the terminal device <NUM>.

The network <NUM> may facilitate exchange of information and/or data for the data processing system <NUM>. In some embodiments, one or more components (e.g., the server <NUM>, the capture device <NUM>, the terminal device <NUM>, the storage device <NUM>) of the data processing system <NUM> may transmit information and/or data to other component(s) of the data processing system <NUM> via the network <NUM>. For example, the server <NUM> may obtain data to be processed from the capture device <NUM> and/or the storage device <NUM> via the network <NUM>. As another example, the server <NUM> may transmit the processed data (e.g., an analysis result of the data to be processed) to the terminal device <NUM> for display via the network <NUM>. In some embodiments, the network <NUM> may be any type of wired or wireless network, or combination thereof. Merely by way of example, the network <NUM> may include a cable network (e.g., a coaxial cable network), a wireline network, an optical fiber network, a telecommunications network, an intranet, an Internet, a local area network (LAN), a wide area network (WAN), a wireless local area network (WLAN), a metropolitan area network (MAN), a public telephone switched network (PSTN), a Bluetooth™ network, a ZigBee™ network, a near field communication (NFC) network, or the like, or any combination thereof.

The capture device <NUM> may be configured to acquire image data and/or video streaming data to be processed (e.g., to be stored and/or analyzed). In some embodiments, the capture device <NUM> may include a camera <NUM>-<NUM>, a video recorder <NUM>-<NUM>, an image sensor <NUM>-<NUM>, etc. The camera <NUM>-<NUM> may include a gun camera, a dome camera, an integrated camera, a monocular camera, a binocular camera, a multi-view camera, or the like, or any combination thereof. The video recorder <NUM>-<NUM> may include a PC Digital Video Recorder (DVR), an embedded DVR, or the like, or any combination thereof. The image sensor <NUM>-<NUM> may include a Charge Coupled Device (CCD), a Complementary Metal Oxide Semiconductor (CMOS), or the like, or any combination thereof. In some embodiments, the capture device <NUM> may include a plurality of components each of which can acquire image(s) or video(s). For example, the capture device <NUM> may include a plurality of sub-cameras that can capture images or videos simultaneously. In some embodiments, the capture device <NUM> may transmit the acquired image data or video streaming data to one or more components (e.g., the server <NUM>, the terminal device <NUM>, the storage device <NUM>) of the data processing system <NUM> via the network <NUM>.

The terminal device <NUM> may be configured to receive information and/or data from the server <NUM>, the capture device <NUM>, and/or the storage device <NUM> via the network <NUM>. For example, the terminal device <NUM> may receive processed data (e.g., an analysis result of the data to be processed) from the server <NUM>. In some embodiments, the terminal device <NUM> may process information and/or data received from the server <NUM>, the capture device <NUM>, and/or the storage device <NUM> via the network <NUM>. For example, the terminal device <NUM> may decode the videos received from the server <NUM> for display. In some embodiments, the terminal device <NUM> may provide a user interface via which a user may view information and/or input data and/or instructions to the data processing system <NUM>. For example, the user may view the decoded videos via the user interface. As another example, the user may input an instruction associated with a required storage cycle of the one or more storage modules via the user interface. In some embodiments, the terminal device <NUM> may include a mobile phone <NUM>-<NUM>, a computer <NUM>-<NUM>, a wearable device <NUM>-<NUM>, or the like, or any combination thereof. In some embodiments, the terminal device <NUM> may include a display that can display information in a human-readable form, such as text, image, audio, video, graph, animation, or the like, or any combination thereof. The display of the terminal device <NUM> may include a cathode ray tube (CRT) display, a liquid crystal display (LCD), a light emitting diode (LED) display, a plasma display panel (PDP), a three dimensional (3D) display, or the like, or a combination thereof. In some embodiments, the terminal device <NUM> may be connected to one or more components (e.g., the server <NUM>, the capture device <NUM>, the storage device <NUM>) of the data processing system <NUM> via the network <NUM>.

The storage device <NUM> may be configured to store data and/or instructions. The data and/or instructions may be obtained from, for example, the server <NUM>, the capture device <NUM>, the terminal device <NUM>, and/or any other component of the data processing system <NUM>. In some embodiments, the storage device <NUM> may store data and/or instructions that the server <NUM> may execute or use to perform exemplary methods described in the present disclosure. In some embodiments, the storage device <NUM> may include a mass storage, a removable storage, a volatile read-and-write memory, a read-only memory (ROM), or the like, or any combination thereof. Exemplary mass storage may include a magnetic disk, an optical disk, a solid-state drive, etc. Exemplary removable storage may include a flash drive, a floppy disk, an optical disk, a memory card, a zip disk, a magnetic tape, etc. Exemplary volatile read-and-write memory may include a random access memory (RAM). Exemplary RAM may include a dynamic RAM (DRAM), a double date rate synchronous dynamic RAM (DDR SDRAM), a static RAM (SRAM), a thyristor RAM (T-RAM), and a zero-capacitor RAM (Z-RAM), etc. Exemplary ROM may include a mask ROM (MROM), a programmable ROM (PROM), an erasable programmable ROM (EPROM), an electrically erasable programmable ROM (EEPROM), a compact disk ROM (CD-ROM), and a digital versatile disk ROM, etc. In some embodiments, the storage device <NUM> may be implemented on a cloud platform. Merely by way of example, the cloud platform may include a private cloud, a public cloud, a hybrid cloud, a community cloud, a distributed cloud, an inter-cloud, a multi-cloud, or the like, or any combination thereof.

In some embodiments, the storage device <NUM> may be connected to the network <NUM> to communicate with one or more components (e.g., the server <NUM>, the capture device <NUM>, the terminal device <NUM>) of the data processing system <NUM>. One or more components of the data processing system <NUM> may access the data or instructions stored in the storage device <NUM> via the network <NUM>. In some embodiments, the storage device <NUM> may be directly connected to or communicate with one or more components (e.g., the server <NUM>, the capture device <NUM>, the terminal device <NUM>) of the data processing system <NUM>. In some embodiments, the storage device <NUM> may be part of other components of the data processing system <NUM>, such as the server <NUM>, the capture device <NUM>, or the terminal device <NUM>.

It should be noted that the above description is merely provided for the purposes of illustration, and not intended to limit the scope of the present disclosure. For persons having ordinary skills in the art, multiple variations and modifications may be made under the teachings of the present disclosure. However, those variations and modifications do not depart from the scope of the present disclosure. In some embodiments, one or more components of the data processing system <NUM> may be integrated into one component or be omitted. For example, the capture device <NUM> may be part of the terminal device <NUM>.

<FIG> is a schematic diagram illustrating exemplary hardware and/or software components of an exemplary computing device according to some embodiments of the present disclosure. In some embodiments, the server <NUM> may be implemented on the computing device <NUM>. For example, the processing device of the server <NUM> may be implemented on the computing device <NUM> and configured to perform functions of the processing device disclosed in this disclosure.

The computing device <NUM> may be used to implement any component of the data processing system <NUM> as described herein. For example, the processing device of the data processing system <NUM> may be implemented on the computing device <NUM>, via its hardware, software program, firmware, or a combination thereof. Although only one such computer is shown, for convenience, the computer functions relating to image processing as described herein may be implemented in a distributed fashion on a number of similar platforms to distribute the processing load.

The computing device <NUM>, for example, may include COM ports <NUM> connected to and from a network connected thereto to facilitate data communications. The computing device <NUM> may also include a processor (e.g., a processor <NUM>), in the form of one or more processors (e.g., logic circuits), for executing program instructions. For example, the processor <NUM> may include interface circuits and processing circuits therein. The interface circuits may be configured to receive electronic signals from a bus <NUM>, wherein the electronic signals encode structured data and/or instructions for the processing circuits to process. The processing circuits may conduct logic calculations, and then determine a conclusion, a result, and/or an instruction encoded as electronic signals. Then the interface circuits may send out the electronic signals from the processing circuits via the bus <NUM>.

The computing device <NUM> may further include program storage and data storage of different forms including, for example, a disk <NUM>, a read-only memory (ROM) <NUM>, or a random-access memory (RAM) <NUM>, for storing various data files to be processed and/or transmitted by the computing device <NUM>. The computing device <NUM> may also include program instructions stored in the ROM <NUM>, RAM <NUM>, and/or another type of non-transitory storage medium to be executed by the processor <NUM>. The methods and/or processes of the present disclosure may be implemented as the program instructions. The computing device <NUM> may also include an I/O component <NUM>, supporting input/output between the computing device <NUM> and other components. The computing device <NUM> may also receive programming and data via network communications.

Merely for illustration, only one processor is illustrated in <FIG>. Multiple processors <NUM> are also contemplated; thus, operations and/or method steps performed by one processor <NUM> as described in the present disclosure may also be jointly or separately performed by the multiple processors. For example, if in the present disclosure the processor <NUM> of the computing device <NUM> executes both step A and step B, it should be understood that step A and step B may also be performed by two different processors <NUM> jointly or separately in the computing device <NUM> (e.g., a first processor executes step A and a second processor executes step B, or the first and second processors jointly execute steps A and B).

<FIG> is a schematic diagram illustrating exemplary hardware and/or software components of an exemplary terminal device according to some embodiments of the present disclosure. In some embodiments, the processing device <NUM> or the terminal device <NUM> may be implemented on the terminal device 300A shown in <FIG>.

As illustrated in <FIG>, the terminal device 300A may include a communication platform <NUM>, a display <NUM>, a graphic processing unit (GPU) <NUM>, a central processing unit (CPU) <NUM>, an I/O <NUM>, a memory <NUM>, and a storage <NUM>. In some embodiments, any other suitable component, including but not limited to a system bus or a controller (not shown), may also be included in the terminal device 300A.

In some embodiments, an operating system <NUM> (e.g., iOS™, Android™, Windows Phone™) and one or more applications (Apps) <NUM> may be loaded into the memory <NUM> from the storage <NUM> in order to be executed by the CPU <NUM>. The applications <NUM> may include a browser or any other suitable mobile apps for receiving and rendering information relating to image processing or other information from the processing device. User interactions may be achieved via the I/O <NUM> and provided to the processing device and/or other components of the data processing system <NUM> via the network.

<FIG> is a schematic diagram illustrating exemplary hardware and/or software components of an exemplary terminal device according to some embodiments of the present disclosure. The terminal device 300B may include a mobile device. In some embodiments, the processing device <NUM> or the terminal device <NUM> may be implemented on the terminal device 300B shown in <FIG>.

As shown in <FIG>, the terminal device 300B may include a processor <NUM>, a storage device <NUM>, a transmission device <NUM>, and an I/O device <NUM>. The processor <NUM> may include a microprocessor unit (MCU), a programmable logic device such as an FPGA, etc. The processor <NUM> may be similar to the CPU <NUM>.

The storage device <NUM> may be configured to store computer programs, for example, computer programs corresponding to data storage and computing method of the present disclosure. The processor <NUM> may be configured to operate the computer programs stored in the storage device <NUM> for implementing various function applications and data processing to achieve the method of the present disclosure. The storage device <NUM> may be similar to the storage device <NUM> as described in <FIG>.

The transmission device <NUM> may receive or send data via a network (e.g., the network <NUM>). The transmission device <NUM> may include a network interface controller (NIC) which can connect to other network devices via a base station to communicate with the network. The transmission device <NUM> may include a radio frequency (RF) module which is used to communicate wirelessly with the network.

It should be noted that <FIG> is provided for illustration purposes and is not intended to be limiting. For example, one or more components may be added to the terminal device 300B or may be or omitted from the terminal device 300B. As another example, the terminal device 300B may include one or more additional components.

<FIG> is a schematic diagram illustrating an exemplary processing device according to some embodiments of the present disclosure. As shown in <FIG>, the processing device <NUM> may include a storage module <NUM>, a computing module <NUM>, and a processing module <NUM>.

The storage module <NUM> may include a hardware device that can store data and/or information to be stored. For example, the storage module <NUM> may include a mass storage, for example, a magnetic disk, an optical disk, a solid-state drive (e.g., a hard disk), or the like, or a combination thereof.

The computing module <NUM> may include a hardware device that can analyze and/or compress data/information to be processed. In some embodiments, the computing module <NUM> may be controlled by the processing module <NUM> and not interfere with the operating of the processing module <NUM>. In some embodiments, the computing module <NUM> may include a processor or controller. For example, the computing module <NUM> may include a smart card embedded with a microchip.

In some embodiments, as described in connection with <FIG>, the storage module <NUM> and the computing module <NUM> may be external devices of the processing device <NUM>. For example, the storage module <NUM> and the computing module <NUM> may be integrated into an integrated storage-computing device. The processing device <NUM> may be connected to the integrated storage-computing device for obtaining the storage resource and the computing resource from the integrated storage-computing device. More description regarding the integrated storage-computing device may be found elsewhere in the present disclosure (e.g., <FIG> and the description thereof).

The processing module <NUM> may include an obtaining unit <NUM>, a determination unit <NUM>, and an adjustment unit <NUM>.

The obtaining unit 431may be configured to obtain data/information related to data storage and/or computing. For example, the obtaining unit <NUM> may obtain data to be processed from one or more components (e.g., the capture device <NUM>, the storage device <NUM>, the terminal device <NUM>, an external storage device) associated with the data processing system <NUM>. The data to be processed may include real-time data (e.g., real-time videos and/or real-time images) to be stored and/or analyzed, cached data to be analyzed, etc.. More descriptions regarding the data to be processed may be found elsewhere in the present disclosure (e.g., operation <NUM> and the description thereof).

The determination unit <NUM> may be configured to determine a required storage bandwidth and/or a required computing bandwidth. For example, the determination unit <NUM> may determine the required storage bandwidth based on the data to be processed. The required storage bandwidth includes a first storage bandwidth that the data to be processed would occupy and/or a second storage bandwidth that an analysis result of the data to be processed would occupy. The determination unit <NUM> may determine the required storage bandwidth based on at least one of a parameter associated with a capture device (e.g., the captured device <NUM>) used to capture the data to be processed or historical data within a predetermined time period. More descriptions regarding the determination of the required storage bandwidth may be found elsewhere in the present disclosure (e.g., operation <NUM> and the description thereof). As another example, the determination unit <NUM> may determine the required computing bandwidth based on the data to be processed, which is similar to the determination of the required storage bandwidth.

The adjustment unit <NUM> may be configured to determination a distribution mode of a current computing bandwidth of one or more computing modules. For example, the adjustment unit <NUM> may determine whether the required storage bandwidth is larger than a current bandwidth of the one or more storage modules. The adjustment unit <NUM> may determine the distribution mode of the current computing bandwidth based on the result. More descriptions regarding the determination of the distribution mode of the current computing bandwidth can be found elsewhere in the present disclosure (e.g., operation <NUM> in <FIG> and <FIG> and the descriptions thereof).

The modules in the processing device <NUM> may be connected to or communicated with each other via a wired connection or a wireless connection. The wired connection may include a metal cable, an optical cable, a hybrid cable, or the like, or any combination thereof. The wireless connection may include a Local Area Network (LAN), a Wide Area Network (WAN), a Bluetooth™ a ZigBee™ a Near Field Communication (NFC), or the like, or any combination thereof.

It should be noted that the above descriptions of the processing device are merely provided for the purposes of illustration, and not intended to limit the scope of the present disclosure. For persons having ordinary skills in the art, various modifications and changes in the forms and details of the application of the above method and system may occur without departing from the principles of the present disclosure. However, those variations and modifications also fall within the scope of the present disclosure. In some embodiments, two or more of the modules may be combined into a single module, and any one of the modules may be divided into two or more units. For example, the processing module <NUM> and the computing module <NUM> may be integrated into a single module. As another example, the obtaining unit <NUM> may include a sub-unit for obtaining the real-time data to be processed and a sub-unit for obtaining the cached data to be processed. As another example, the determination unit <NUM> may be divided into a plurality of sub-units each of which may implement a portion of functions of the determination unit <NUM>. In some embodiments, the processing device <NUM> may include one or more additional modules. For example, the processing device <NUM> may include a communication module to send the analysis result of the data to be processed to one or more components (e.g., the terminal device <NUM>) of the data processing system <NUM>. As another example, the processing device <NUM> may include an analyzing unit to analyze the data to be processed according to the determined distribution mode of the current computing bandwidth.

<FIG> is a flowchart illustrating an exemplary process for determining a distribution mode of a current computing bandwidth of computing modules according to some embodiments of the present disclosure. In some embodiments, one or more operations in the process <NUM> may be implemented in the data processing system <NUM> illustrated in <FIG>. For example, one or more operations in the process <NUM> may be stored in a storage device (e.g., the storage device <NUM>, the ROM <NUM>, the RAM <NUM>, the storage <NUM>, and/or the storage <NUM>) as a form of instructions, and invoked and/or executed by a processing device (e.g., the processor <NUM>, the CPU <NUM>, the processor <NUM>, and/or one or more modules of the processing device <NUM> illustrated <FIG>) The operations of the illustrated process presented below are intended to be illustrative. In some embodiments, the process may be accomplished with one or more additional operations not described, and/or without one or more of the operations discussed. Additionally, the order in which the operations of the process <NUM> as illustrated in <FIG> and described below is not intended to be limiting.

In <NUM>, the processing device <NUM> (e.g., the obtaining unit <NUM>) may obtain data to be processed.

In some embodiments, the data to be processed may include image data or video data captured by the capture device <NUM>. Take the traffic monitoring scenario as an example, the data to be processed may include real-time data (e.g., real-time video data) at a traffic intersection captured by the capture device <NUM>. Since the traffic condition changes with time, the real-time data changes with time. For example, an amount of the data to be processed is relatively large at traffic peak periods, whereas the amount of the data to be processed is relatively small at traffic valley periods.

In some embodiments, the data to be processed may also include cached data (e.g., cached image data or cached video data) pre-cached in a storage device (e.g., the storage device <NUM>, the one or more storage modules, the terminal device <NUM>, an external storage device) associated with the data processing system <NUM>.

In some embodiments, the data to be processed needs to be stored and/or analyzed. For example, the real-time data at a traffic intersection may need to be stored and at least a portion of the real-time data may need to be analyzed (e.g., traffic objects need to be extracted in the rea-time video data). As another example, a portion of the real-time data may need to be stored and the other portion of the real-time data may need to be analyzed. As a further example, the cached data may need to be analyzed.

In <NUM>, the processing device <NUM> (e.g., the determination unit <NUM>) may determine a required storage bandwidth based on the data to be processed.

In some embodiments, the required storage bandwidth may include a first storage bandwidth that the data to be processed would occupy and/or a second storage bandwidth that an analysis result of the data to be processed would occupy. In some embodiments, the first storage bandwidth that the data to be processed would occupy may refer to a storage bandwidth that the real-time data would occupy (for the cached data, since it is already cached, no storage bandwidth is currently need).

In some embodiments, the processing device <NUM> may determine the required storage bandwidth based on at least one of a parameter associated with a capture device (e.g., the captured device <NUM>) used to capture the data to be processed or historical data within a predetermined time period.

For example, for the real-time data to be stored, the first storage bandwidth that the real-time data would occupy may be associated with a parameter associated with a capture device used to capture the real-time data. The parameter associated with the capture device may be an intrinsic parameter (e.g., a video compression signal-to-noise ratio, a video coding resolution, a count of video channels) of the capture device. Accordingly, the first storage bandwidth that the real-time data would occupy would not change with manual settings.

As another example, for the real-time data to be analyzed or the cached data to be analyzed, the processing device <NUM> may estimate the second storage bandwidth that an analysis result of the real-time data or the cached data would occupy based on the historical data within the predetermined time period.

In some embodiments, the predetermined time period may be a recent time period (e.g., <NUM> minute, <NUM> minutes, <NUM> minutes, <NUM> minutes) adjacent to and before a current time point. In some embodiments, as described above, since the real-time data changes with time, the predetermined time period may be a historical time period including a historical time point corresponding to the current time point. For example, it is assumed that the current time point is <NUM>:<NUM> am, the predetermined time period may be a historical time period (e.g., <NUM>:<NUM> am - <NUM>:<NUM> am, <NUM>:<NUM> am - <NUM>:<NUM> am) including <NUM>:<NUM> am. In some embodiments, a time length of the predetermined time period may be a default setting of the data processing system <NUM> or may be adjustable according to different situations.

The processing device <NUM> may determine multiple historical storage bandwidths that historical analysis results occupied during the predetermined time period. In some embodiments, the processing device <NUM> may designate a maximum one (or a weighted value or an average value) of the multiple historical storage bandwidths as the second required storage bandwidth. In some embodiments, the processing device <NUM> may determine the second required storage bandwidth based on the multiple historical bandwidths according to an artificial intelligence technology, a machine learning model, a statistical analysis, etc..

In some embodiments, the processing device <NUM> may determine the required storage bandwidth based on an amount of the data to be processed, a data parameter (e.g., a definition, a contrast, a resolution, etc. of the image data or the video data) of the data to be processed, etc..

In <NUM>, the processing device <NUM> (e.g., the determination unit <NUM> or the adjustment unit <NUM>) may determine a distribution mode of a current computing bandwidth of one or more computing modules (e.g., the computing module <NUM>) based on a current storage bandwidth of one or more storage modules (e.g., the storage module <NUM>) and the required storage bandwidth.

In the invention, the current computing bandwidth of the one or more computing modules refers to a currently available computing bandwidth of the one or more computing modules; similarly, the current storage bandwidth of the one or more storage modules refers to a currently available storage bandwidth of the one or more storage modules.

In the invention, the processing device <NUM> determines whether the required storage bandwidth is larger than the current storage bandwidth. The processing device <NUM> may determine the distribution mode of the current computing bandwidth based on the determination result. It is assumed that the required storage bandwidth is larger than the current storage bandwidth, that is, the current storage bandwidth can't meet the storage requirements, the processing device <NUM> allocates a portion of the current computing bandwidth to be used to compress the data to be processed. More descriptions regarding the distribution mode of the current computing bandwidth of the one or more computing modules can be found elsewhere in the present disclosure (e.g., <FIG> and the description thereof).

In some embodiments, the processing device <NUM> may predict a future data condition and determine a distribution mode of the current computing bandwidth in advance. For example, the processing device <NUM> may predict (e.g., based on historical data, using a machine learning model) a required storage bandwidth at a future time point or within a future time period and determine a distribution strategy of the current computing bandwidth in advance, for example, a portion is allocated for compression, the other portion is used for computing, etc..

According to some embodiments of the present disclosure, the required computing bandwidth associated with the data to be processed is estimated, and the required storage bandwidth and the current storage bandwidth are compared to determine a distribution mode of a current computing bandwidth, such that the computing service and the storage service can be performed cooperatively, thereby improving storage performance and computing efficiency.

It should be noted that the above description regarding the process <NUM> is merely provided for the purposes of illustration, and not intended to limit the scope of the present disclosure. For persons having ordinary skills in the art, multiple variations and modifications may be made under the teachings of the present disclosure. However, those variations and modifications do not depart from the scope of the present disclosure. In some embodiments, one or more additional operations may be added in the process <NUM>, and/or one or more operations of the process <NUM> described above may be omitted. For example, an additional operation may be added before operation <NUM> for determining whether a current storage capacity (e.g., an available storage space) of the one or more storage modules is larger than a preset storage capacity. In response to a determination that the current storage capacity is larger than the preset storage capacity, the process <NUM> may proceed to operation <NUM>. In response to a determination that the current storage capacity is less than or equal to the present storage capacity, the processing device <NUM> may delete a portion of the data stored in the one or more storage modules to release some storage space of the one or more storage modules.

<FIG> is a flowchart illustrating an exemplary process for determining a distribution mode of a current computing bandwidth according to some embodiments of the present disclosure. In some embodiments, one or more operations in the process <NUM> may be implemented in the data processing system <NUM> illustrated in <FIG>. For example, one or more operations in the process <NUM> may be stored in a storage device (e.g., the storage device <NUM>, the ROM <NUM>, the RAM <NUM>, the storage <NUM>, and/or the storage <NUM>) as a form of instructions, and invoked and/or executed by a processing device (e.g., the processor <NUM>, the CPU <NUM>, the processor <NUM>, and/or one or more modules illustrated <FIG>). The operations of the illustrated process <NUM> presented below are intended to be illustrative. In some embodiments, the process <NUM> may be accomplished with one or more additional operations not described, and/or without one or more of the operations discussed. Additionally, the order in which the operations of the process <NUM> as illustrated in <FIG> and described below is not intended to be limiting. In some embodiments, operation <NUM> in <FIG> may be achieved by the process <NUM>.

In <NUM>, the processing device <NUM> (e.g., the adjustment unit <NUM>) may determine whether the required storage bandwidth is larger than the current storage bandwidth.

In response to a determination that the required storage bandwidth is less than or equal to the current storage bandwidth, in <NUM>, the processing device <NUM> (e.g., the adjustment unit <NUM>) may keep the distribution mode of the current computing bandwidth of the one or more computing modules unchanged. That is, when the current storage bandwidth can meet storage requirements, there is no need to adjust the distribution mode of the current computing bandwidth of the one or more computing modules.

In some embodiments, in response to a determination that the required storage bandwidth is larger than the current storage bandwidth, in <NUM>, the processing device <NUM> (e.g., the adjustment unit <NUM>) may allocate a portion of the current computing bandwidth to be used to compress the data to be processed. That is, when the current storage bandwidth can't meet storage requirements, the processing device <NUM> may allocate a portion of the current computing bandwidth for compression to improve storage function.

In some embodiments, the portion of the current computing bandwidth allocated to be used to compress the data to be processed may be determined based on the required storage bandwidth and the current storage bandwidth, for example, a different between the required storage bandwidth and the current storage bandwidth. For example, it is assumed that the required storage bandwidth is <NUM> MB/s (e.g., the first storage bandwidth is <NUM> MB/s and the second storage bandwidth is <NUM> MB/s) and the current storage bandwidth is <NUM> MB/s, the processing device <NUM> may allocate a portion (e.g., <NUM> MB/s) of the current computing bandwidth to be used to compress the data to be processed to improve storage function, accordingly, an updated required storage bandwidth becomes <NUM> MB/s (e.g., the first storage bandwidth becomes <NUM> MB/s and the second storage bandwidth is reduced to <NUM> MB/s (since <NUM> MB/s of the current computing bandwidth is allocated for compression, corresponding computing is stopped)). In this situation, the original data to be processed can be completely stored and an analysis result of the data can be stored as much as possible.

In some embodiments, in response to a determination that the required storage bandwidth is larger than the current storage bandwidth, in <NUM>, the processing device <NUM> (e.g., the adjustment unit <NUM>) may stop a portion of the current computing bandwidth, such that an updated required storage bandwidth is no larger than the current storage bandwidth.

For example, as described above, it is assumed that the required storage bandwidth is <NUM> MB/s (e.g., the first storage bandwidth is <NUM> MB/s and the second storage bandwidth is <NUM> MB/s) and the current storage bandwidth is <NUM> MB/s, the processing device <NUM> may stop a portion (e.g., <NUM> MB/s) of the current computing bandwidth, accordingly, an updated required storage bandwidth becomes <NUM> MB/s (e.g., the first storage bandwidth is still <NUM> MB/s and the second storage bandwidth is reduced to <NUM> MB/s (since <NUM> MB/s of the current computing bandwidth is stopped)) which is equal to the current storage bandwidth.

In the invention, in response to a determination that the required storage bandwidth is less than or equal to the current storage bandwidth, in <NUM>, the processing device <NUM> (e.g., the determination unit <NUM>) determines a required computing bandwidth based on the data to be processed.

As described in connection with operation <NUM> and operation <NUM>, the required computing bandwidth refers to a computing bandwidth that the portion of the real-time data to be analyzed would occupy or a computing bandwidth that the cached data to be analyzed would occupy. In some embodiments, the processing device <NUM> may determine the required computing bandwidth based on historical data within a predetermined time period, which is similar to the determination of the required storage bandwidth as described in <NUM> and is not repeated here.

In <NUM>, the processing device <NUM> (e.g., the adjustment unit <NUM>) may determine whether the current computing bandwidth is greater than the required computing bandwidth.

In response to a determination that the current computing bandwidth is greater than the required computing bandwidth, in <NUM>, the processing device <NUM> (e.g., the adjustment unit <NUM>) may allocate a portion of the current computing bandwidth to be used to compress the data to be processed. That is, when the current computing bandwidth can meet computing requirements, the processing device <NUM> can allocate a portion of the current computing bandwidth for compression, which can improve the resource utilization.

In response to a determination that the current computing bandwidth is less than or equal to the required computing bandwidth, in <NUM>, the processing device <NUM> (e.g., the adjustment unit <NUM>) may allocate a computing bandwidth that is previously allocated to be used to compress the data to be processed back to the current computing bandwidth. That is, when the current computing bandwidth can't meet computing requirements, the processing device <NUM> may allocate at least a part of a computing bandwidth that is previously allocated for compression back for computing.

In some embodiments, the processing device <NUM> may comprehensively consider the required computing bandwidth and the required storage bandwidth to allocate the computing bandwidth portion that is previously allocated for compression back for computing.

In some embodiments, the processing device <NUM> may first ensure the storage requirements and allocate the remaining storage bandwidth (which is previously allocated from the computing bandwidth) back for computing. For example, it is assumed that the required storage bandwidth is <NUM> MB/s (e.g., the first storage bandwidth is <NUM> MB/s and the second storage bandwidth is <NUM> MB/s) and the current storage bandwidth is <NUM> MB/s (including remaining storage bandwidth <NUM> MB/s previously allocated from the computing bandwidth), while the required computing bandwidth is <NUM> MB/s and the current computing bandwidth to be used is <NUM> MB/s, the processing device <NUM> may allocate a computing bandwidth that is previously allocated to be used to compress the data to be processed (i.e., the remaining storage bandwidth <NUM> MB/s) back to the current computing bandwidth. Accordingly, an updated current computing bandwidth becomes <NUM> MB/s. In this situation, the original data to be processed can be completely stored and an analysis result of the data can be stored as much as possible.

In the invention, it is assumed that the required computing bandwidth includes a computing bandwidth that the portion of the real-time data to be analyzed would occupy and a computing bandwidth that the cached data to be analyzed would occupy, the processing device <NUM> may prioritize the computing (or analyzing) of the real-time data, that is, the priority of the computing of the real-time is higher than that of the cached data. For example, it is assumed that the required storage bandwidth is <NUM> MB/s (e.g., the first storage bandwidth is <NUM> MB/s and the second storage bandwidth is <NUM> MB/s that includes a storage bandwidth <NUM> MB/s occupied by the real-time data to be analyzed and a storage bandwidth <NUM> MB/s occupied by the cached data to be analyzed) and the current storage bandwidth is <NUM> MB/s, while the required computing bandwidth is <NUM> MB/s (e.g., a computing bandwidth <NUM> MB/s required by the real-time data to be analyzed, and <NUM> MB/s required by the cached data to be analyzed) and the current computing bandwidth to be used is <NUM> MB/s, the processing device <NUM> allocates the current computing bandwidth (i.e., <NUM> MB/s) to be used to analyze the real-time data to be analyzed. In this situation, the original data to be processed can be completely stored and an analysis result of the real-time data to be analyzed can be stored as much as possible.

In some embodiments, there may be different user needs or priorities under different situations. For example, for the real-time data (e.g., real-time video data), a priority for storing the data itself may be higher than a priority for storing an analysis result of the data. As another example, for the real-time data and the cached data, a priority for storing an analysis result of the real-time data may be higher than a priority for storing an analysis result of the cached data. As a further example, for the real-time data and the cached data, a priority for analyzing the real-time data may be higher than a priority for analyzing the cached data. As still a further example, a user may wish to store data in a definition as high as possible; whereas, another user may wish to store data as much as possible. Accordingly, there may be different strategies applicable for different situations for determining the distribution mode of the current computing bandwidth.

It should be noted that the above description regarding the process <NUM> is merely provided for the purposes of illustration, and not intended to limit the scope of the present disclosure. For persons having ordinary skills in the art, multiple variations and modifications may be made under the teachings of the present disclosure. However, those variations and modifications do not depart from the scope of the present disclosure. For example, one or more additional operations may be added in the process <NUM>, and/or one or more operations of the process <NUM> described above may be omitted.

<FIG> is a schematic diagram illustrating an exemplary structure of a processing device or a processing module thereof according to some embodiments of the present disclosure. As illustrated in <FIG>, the processing device <NUM> or the processing module <NUM> may include one or more hard disk slots <NUM> into which an integrated storage-computing device or storage module(s) (e.g., the storage module <NUM>) and/or computing module(s) (e.g., the storage module <NUM>) can be inserted through interface(s).

<FIG> is a schematic diagram illustrating an exemplary structure of an integrated storage-computing device according to some embodiments of the present disclosure. The integrated storage-computing device may be configured to provide both storage and computing functions. As described elsewhere in the present disclosure, the integrated storage-computing device may include one or more storage modules and one or more computing modules.

As shown in <FIG>, a type of the integrated storage-computing device <NUM> may be a hard disk type, which is provided for illustration purposes and not intended to be limiting. The integrated storage-computing device <NUM> may include a device box <NUM>, a storage module (e.g., a storage disk <NUM>), and a computing module (e.g., a computing card <NUM>. The storage disk <NUM> and the computing card <NUM> may be disposed in the device box <NUM>. The device box <NUM> may be set to be closed, such that the storage disk <NUM> and the computing card <NUM> can be protected from damage.

In some embodiments, the integrated storage-computing device <NUM> may include a device interface <NUM> disposed on an end of the device box <NUM>. The device interface <NUM> may be configured for data communication. For example, the device interface <NUM> may include a first interface channel <NUM> and a second interface channel <NUM> which are arranged in parallel. The first interface channel <NUM> may include one or more serial advanced technology attachment (SATA) cables or serial attached small computer system interface (SAS) cables. The first interface channel <NUM> may be connected to the storage disk <NUM> by the SATA cable(s) or SAS cable(s). The second interface channel <NUM> may include one or more peripheral component interconnect express (PCIE) cables or network cables. The second interface channel <NUM> may be connected to the computing card <NUM> by the PCIE cable(s) or network cable(s).

As described in connection with <FIG>, the integrated storage-computing device <NUM> can be connected to the processing device <NUM> or the processing module <NUM> by inserting the device interface <NUM> into the hard disk slot <NUM>.

<FIG> are schematic diagrams illustrating an exemplary connection between a processing device or a processing module thereof and an integrated storage-computing device according to some embodiments of the present disclosure.

As shown in <FIG>, the integrated storage-computing device <NUM> may include one or more storage modules (not shown), one or more computing modules (not shown), a first interface channel <NUM>, and a second interface channel <NUM>. The processing device <NUM> (or the processing module <NUM>) may include a first processor (or controller) <NUM>, a first connecting component (e.g., a first expansion module) <NUM>, a second processor (or controller) <NUM>, and a second connecting component (e.g., a second expansion module) <NUM>.

As illustrated, the first interface channel <NUM> is connected to the first connecting component <NUM> and the second interface channel <NUM> is connected to the second connecting component. As described in connection with <FIG>, the first interface channel <NUM> may include one or more serial advanced technology attachment (SATA) cables or serial attached small computer system interface (SAS) cables; the second interface channel <NUM> may include one or more peripheral component interconnect express (PCIE) cables or network cables. Accordingly, the first connecting component <NUM> may include a SAS expansion module, a SATA expansion module, etc. The second connecting component <NUM> may include a PCIE expansion module.

In some embodiments, the SATA expansion module has a super error correction ability of automatically correcting data reading error(s) during data reading, which greatly improves the reliability of data transmission. The SAS expansion module integrates the advantages of the existing parallel SCSI and serial connection technology and takes serial communication as a protocol infrastructure, uses a SCSI-<NUM> expansion instruction set, and is compatible with a SATA device. The SAS expansion module may be a multi-level storage device connection protocol stack. The SAS expansion module may have a high data transfer rate.

In some embodiments, the PCIE expansion module may use a point-to-point interconnection technology to allocate a shared channel bandwidth for each device, which ensures bandwidth resources of multiple devices and greatly improves data transmission rate. In addition, the PCIE expansion module may adopt a two-channel transmission mode similar to full-duplex communication technology. In terms of speed, the PCIE expansion module may provide a transfer rate of <NUM> gigabytes/second (GB/s) per channel.

As illustrated in <FIG>, the storage module(s) of the integrated storage-computing device <NUM> may be connected to the first interface channel <NUM>; the computing module(s) of the integrated storage-computing device <NUM> may be connected to the second interface channel <NUM>. The first interface channel <NUM> may be connected to the first connecting component <NUM> and the second interface channel <NUM> may be connected to the second connecting component <NUM>. The first connecting component <NUM> may be connected to the first processor <NUM> and the second connecting component <NUM> may be connected to the second processor <NUM>. Accordingly, the storage module(s) of the integrated storage-computing device <NUM> can be connected to the first processor <NUM> via the first interface channel <NUM> and the first connecting component <NUM>; the computing module(s) of the integrated storage-computing device <NUM> can be connected to the second processor <NUM> via the second interface channel <NUM> and the second connecting component <NUM>.

As illustrated in <FIG>, the connecting manner between the processing device <NUM> (or the processing module <NUM>) and the integrated storage-computing device <NUM> is similar with that illustrated in <FIG>, a difference is that the first processor <NUM> may be connected to the second processor <NUM>. For example, the first processor <NUM> may be connected to the second processor <NUM> via a network (e.g., an ethernet, an optical fiber) or a PCIE bus. Accordingly, the first processor <NUM> may send data to be stored to the second processor <NUM> for storage; the second processor <NUM> may send data to be analyzed to the first processor <NUM> for computing. For example, the first processor <NUM> may obtain an analysis result from the computing module(s) of the integrated storage-computing device <NUM> and send the analysis result to the second processor <NUM>. The second processor <NUM> may send the analysis result to the storage module(s) of the integrated storage-computing device <NUM> for storage. As another example, the second processor <NUM> may obtain data to be analyzed from the storage module(s) of the integrated storage-computing device <NUM> and send the data to be analyzed to the first processor <NUM>. The first processor <NUM> may send the data to be analyzed to the computing module(s) of the integrated storage-computing device <NUM> for computing. As still another example, the second processor <NUM> may obtain the storage resource (e.g., the data stored in the storage module(s)) of the integrated storage-computing device <NUM> and send the storage resource to the first processor <NUM>. The first processor <NUM> may obtain the computing resource of the integrated storage-computing device <NUM> for processing the storage resource and send the processed data to the second processor <NUM>. Then the second processor <NUM> may send the processed data to the integrated storage-computing device <NUM>.

Accordingly, the first processor <NUM> and the second processor <NUM> can share the storage resource and the computing resource of the integrated storage-computing device <NUM>, thereby improving the processing efficiency of the processing device <NUM> or the processing module <NUM>.

In some embodiments, to ensure data reliability, the processing device <NUM> or the processing module <NUM> may be configured with a double-control function. That is, a processor of the processing device <NUM> or the processing module <NUM> can control both the storage module(s) and the computing module(s) of the integrated storage-computing device <NUM>. As shown in <FIG>, the first connecting component <NUM> may be connected to the second processor <NUM> the second connecting component <NUM> may be connected to the first processor <NUM>. Accordingly, when the second processor <NUM> is in an abnormal state, the first processor <NUM> can take over the second connecting component <NUM> and obtain the storage resource from the integrated storage-computing device <NUM> via the second connecting component <NUM> for performing storage function. When the first processor <NUM> is in an abnormal state, the second processor <NUM> can take over the first connecting component <NUM> and obtain the computing resource from the integrated storage-computing device <NUM> via the first connecting component <NUM> for performing the computing function.

In some embodiments, the first processor <NUM> may send a first heartbeat message to the second processor <NUM>. If the first processor <NUM> does not receive a response of the first heartbeat message from the second processor <NUM> in a first preset time period, the second processor <NUM> may be determined to be in an abnormal state. If the first processor <NUM> receives a response of the first heartbeat message from the second processor <NUM> in the first preset time period, the second processor <NUM> may be determined to be in a normal state. Alternatively, the second processor <NUM> may send a second heartbeat message to the first processor <NUM>. If the second processor <NUM> does not receive a response of the second heartbeat message from the first processor <NUM> in a second preset time period, the first processor <NUM> may be determined to be in an abnormal state. If the second processor <NUM> receives a response of the second heartbeat message from the first processor <NUM> in the second preset time period, the first processor <NUM> may be determined to be in a normal state. The first preset time period or the second preset time period may be a default setting of the data processing system <NUM> or adjustable according to different scenarios.

In some embodiments, when the first processor 931and the second processor <NUM> are both in a normal state, the first processor <NUM> may exclusively access the computing resource of the integrated storage-computing device <NUM>; the second processor <NUM> may exclusively access the storage resource of the integrated storage-computing device <NUM>. When the first processor <NUM> detects that the second processor <NUM> is in an abnormal state, the first processor <NUM> may access the storage resource of the integrated storage-computing device <NUM> and obtain the storage resource or the computing resource of the integrated storage-computing device <NUM> for performing the storage function or the computing function. Similarly, when the second processor <NUM> detects that the first processor <NUM> is in an abnormal state, the second processor <NUM> may access the computing resource of the integrated storage-computing device <NUM> and obtain the storage resource or the computing resource of the integrated storage-computing device <NUM> for performing the storage function or the computing function.

In some embodiments, the first processor <NUM> or the second processor <NUM> may recover from the abnormal state to the normal state at any time. In such cases, in order to improve processing efficiency of the processing device <NUM> or the processing module <NUM>, the recovered processor may recover to access its corresponding resource from the integrated storage-computing device <NUM> for performing its corresponding function. For example, when the second processor <NUM> recovers to the normal state, the connection between the first processor <NUM> and the second connecting component <NUM> may be disconnected, the second processor <NUM> may be connected to the second connecting component <NUM> and obtain the storage resource of the integrated storage-computing device <NUM> via the second connecting component <NUM> for performing the storage function. As another example, when the first processor <NUM> recovers to the normal state, the connection between the second processor <NUM> and the first connecting component <NUM> may be disconnected, the first processor <NUM> may be connected to the first connecting component <NUM> and obtain the computing resource of the integrated storage-computing device <NUM> via the first connecting component <NUM> for performing the computing function.

<FIG> is a schematic diagram illustrating an exemplary connection between a processing device or a processing module thereof and an integrated storage-computing device according to some embodiments of the present disclosure. As shown in <FIG>, the processing device <NUM> or the processing module <NUM> may include a processor <NUM>, a first connecting component (e.g., a SATA/SAS expansion chip) <NUM>, and a second connecting component (e.g., a PCIE expansion chip) <NUM>. The integrated storage-computing device <NUM> may include a storage module (e.g., a hard disk), a computing module (e.g., other PCIE device(s) such as an intelligent accelerator), and a SAS connector (including a first port <NUM> and a second port <NUM>). As described in connection with <FIG> or <FIG>, the first port <NUM> and the second port <NUM> may be similar to the first interface channel <NUM> (or <NUM>) and the second interface channel <NUM> (or <NUM>), respectively.

The SATA/SAS expansion chip <NUM> may be connected to the processor <NUM> via a SATA/SAS connection and connected to the port <NUM> via a SATA/SAS connection. The port <NUM> may be connected to the storage module of the integrated storage-computing device <NUM> via a SATA/SAS connection. The PCIE expansion chip <NUM> may be connected to the processor <NUM> via a PCIE connection and connected to the port <NUM> via a PCIE connection. The port <NUM> may be connected to the computing module of the integrated storage-computing device <NUM> via a PCIE connection. Accordingly, the processor <NUM> may obtain the storage resource of the integrated storage-computing device <NUM> via the SATA/SAS expansion chip <NUM>; the processor <NUM> may obtain the computing resource of the integrated storage-computing device <NUM> via the PCIE expansion chip <NUM>. In this way, the processing device <NUM> or the processing module <NUM> can perform the storage function and the computing function simultaneously.

<FIG> is a flowchart of an exemplary process for data storage according to some embodiments of the present disclosure. In some embodiments, one or more operations in the process <NUM> may be implemented in the data processing system <NUM> (e.g., the server <NUM> (e.g., the processing device <NUM>) of the data processing system <NUM>) illustrated in <FIG>. For example, one or more operations in the process <NUM> may be stored in a storage device (e.g., the storage device <NUM>, the ROM <NUM>, the RAM <NUM>, the storage <NUM>, and/or the storage <NUM>) as a form of instructions, and invoked and/or executed by a processing device (e.g., the processor <NUM>, the CPU <NUM>, and/or one or more modules of the processing device <NUM> illustrated <FIG>) The operations of the illustrated process presented below are intended to be illustrative. In some embodiments, the process may be accomplished with one or more additional operations not described, and/or without one or more of the operations discussed. Additionally, the order in which the operations of the process <NUM> as illustrated in <FIG> and described below is not intended to be limiting.

In <NUM>, the processing device <NUM> may determine a current storage bandwidth of N storage module(s) and a current computing bandwidth of M computing module(s) based on data to be processed. The N storage module(s) may be configured to store the data to be processed. The M computing module(s) may be configured to process (e.g., compress and/or analyze) the data to be processed. Both N and M may be natural numbers that are greater than or equal to <NUM>. The N storage module(s) and the M computing module(s) may be disposed in a same device (e.g., the integrated storage-computing device <NUM>).

In <NUM>, the processing device <NUM> may adjust a count of the M computing module(s) based on the current storage bandwidth and the current computing bandwidth, such that K computing module(s) of the M computing module(s) may be used to process the data to be processed to obtain target data. K may be a natural number that is less than or equal to M.

In <NUM>, the processing device <NUM> may store the target data in the N storage module(s).

In some embodiments, the operations of the process <NUM> may be implemented by a terminal device (e.g., a capture device), or the like.

In some embodiments, a computing module herein may include but not limited to a smart card disposed in the terminal device. A storage module may include but not limited to a storage hard disk disposed in the terminal device. For example, there may be <NUM> storage hard disks and <NUM> smart cards that are disposed in the terminal device. As shown in <FIG>, a storage hard disk or a smart card of a hard disk type may be connected to the hard disk slot <NUM>. The storage hard disk and the smart card may be interchangeable and compatible. The hard disk may exist as a storage pool, and the smart card may exist as a smart pool.

In some embodiments, the data to be processed may include but not limited to video data acquired by a capture device, for example, image data of vehicles acquired in a violation monitoring scenario. In this scenario, there may be a large amount of image data of vehicles, and a portion of the computing module(s) may be used to assist the storage module for storage. For example, the portion of the computing module(s) may be used to compress the acquired image data, and then store the compressed image data in the storage module(s). That is, the memory of the storage module(s) may be reduced, thereby extending the storage cycle of the storage module(s).

According to the above operations of the process <NUM>, the storage service and the computing service may be performed simultaneously and cooperatively, thereby achieving the effect of improving the storage performance.

In some embodiments, the determining a current storage bandwidth of N storage module(s) and a current computing bandwidth of M computing module(s) based on data to be processed may include:.

In some embodiments, the adjusting a count of the M computing module(s) based on the current storage bandwidth and the current computing bandwidth, such that K computing module(s) of the M computing module(s) is used to process the data to be processed to obtain target data may include:.

S5, in response to a determination that the current storage bandwidth does not satisfy the required storage bandwidth of the data to be processed, and the computing bandwidth of the M computing module(s) is greater than a required computing bandwidth of the data to be processed, designating computing module(s) corresponding to the K analysis channels as device(s) for processing the data to be processed to obtain the target data.

In some embodiments, the processing device <NUM> (e.g., a CPU) may determine the required computing bandwidth of the data to be processed. If the current computing bandwidth is excess (e.g., the current computing bandwidth being larger than the required computing bandwidth), excess computing module(s) may be configured to perform intelligent compression, improving the storage performance of the storage module(s).

In some embodiments, the analyzing the data to be processed by the K analysis channels to obtain the target data may include:
S6, determining computing module(s) corresponding to the K analysis channels as the device(s) for processing the data to be processed, and using the computing module(s) to compress the data to be processed to obtain the target data.

In some embodiments, the computing module(s) corresponding to the K analysis channels may be used to assist the storage module(s) for data storage to improve the storage performance of the storage module(s).

In some embodiments, the storing the target data in the N storage module(s) may include:
S7, storing the target data in the N storage module(s) in accordance with a preset cycle (e.g., a preset storage cycle).

In some embodiments, the storing of the target data by the storage module may be within the preset cycle, for example, storing video data within one-week.

It should be noted that the description of stages of data storage is merely provided for the purposes of illustration, and not intended to limit the scope of the present disclosure. For persons having ordinary skills in the art, multiple variations and modifications may be made under the teachings of the present disclosure. However, those variations and modifications do not depart from the scope of the present disclosure.

Therefore, it is emphasized and should be appreciated that two or more references to "an embodiment," "one embodiment," or "an alternative embodiment" in various portions of this specification are not necessarily all referring to the same embodiment.

Accordingly, aspects of the present disclosure may be implemented entirely hardware, entirely software (including firmware, resident software, micro-code, etc.) or combining software and hardware implementation that may all generally be referred to herein as a "block," "module," "engine," "unit," "component," or "system. " Furthermore, aspects of the present disclosure may take the form of a computer program product embodied in one or more computer-readable media having computer-readable program code embodied thereon.

A computer-readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. A computer-readable signal medium may be any computer-readable medium that is not a computer-readable storage medium and that may communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device. Program code embodied on a computer-readable signal medium may be transmitted using any appropriate medium, including wireless, wireline, optical fiber cable, RF, or the like, or any suitable combination of the foregoing.

Computer program code for carrying out operations for aspects of the present disclosure may be written in any combination of one or more programming languages, including an object-oriented programming language such as Java, Scala, Smalltalk, Eiffel, JADE, Emerald, C++, C#, VB. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider) or in a cloud computing environment or offered as a service such as a software as a service (SaaS).

Furthermore, the recited order of processing elements or sequences, or the use of numbers, letters, or other designations therefore, is not intended to limit the claimed processes and methods to any order except as may be specified in the claims. Although the above disclosure discusses through various examples what is currently considered to be a variety of useful embodiments of the disclosure, it is to be understood that such detail is solely for that purpose, and that the appended claims are not limited to the disclosed embodiments, but, on the contrary, are intended to cover modifications and equivalent arrangements that are within the scope of the disclosed embodiments. For example, although the implementation of various components described above may be embodied in a hardware device, it may also be implemented as a software-only solution-e.g., an installation on an existing server or mobile device.

Claim 1:
A system, comprising:
one or more storage modules (<NUM>);
one or more computing modules (<NUM>); and
a processing module (<NUM>) including
an obtaining unit (<NUM>) configured to obtain data to be processed;
a determination unit (<NUM>) configured to determine a required storage bandwidth based on the data to be processed, wherein the required storage bandwidth includes a first storage bandwidth that the data would occupy and/or a second storage bandwidth that an analysis result of the data would occupy; and
an adjustment unit (<NUM>) configured to determine a distribution mode of a current computing bandwidth of the one or more computing modules based on a current storage bandwidth of the one or more storage modules and the required storage bandwidth, wherein the current computing bandwidth of the one or more computing modules refers to a currently available computing bandwidth of the one or more computing modules;
characterised in that the adjustment unit (<NUM>) is further configured to:
in response to a determination that the required storage bandwidth is larger than the current storage bandwidth, allocate a portion of the current computing bandwidth to be used to compress the data to be processed;
in response to a determination that the required storage bandwidth is less than or equal to the current storage bandwidth, determine a required computing bandwidth; and
if the required computing bandwidth includes a computing bandwidth that a portion of real-time data to be analyzed would occupy and a computing bandwidth that cached data to be analyzed would occupy, allocate the current computing bandwidth to be used to analyze the real-time data to be analyzed.