When you develop applications that need to upload data to or download data from Object Storage Service (OSS), you can refer to the best practices described in this topic to optimize the performance of your applications.
OSS can handle thousands of requests sent from your application each second when the application upload data to or download data from OSS. OSS sorts objects by their names in alphabetical order and stores objects by partitions. Partitions are split based on the size of objects stored in OSS and the QPS of requests sent to access the objects. OSS allows your application to send at least 3,500 PUT/COPY/POST/DELETE requests and 5,500 GET/HEAD requests per second to access a partition. For example, you can configure 10 prefixes for objects that you want to upload to a bucket to store the objects in 10 different partitions. This way, your application can send 35,000 PUT requests per second to write data to the bucket.
Some data lake applications that use OSS as data sources may need to scan millions or billions of objects and query petabytes of data in OSS. These applications can fully use the bandwidth of each ECS instance, which can be up to 100 Gbit/s, to access OSS. OSS is a distributed storage service that supports parallel access. Therefore, you can aggregate the bandwidth of multiple ECS instances used by an application to provide a throughput of terabits per second to access OSS.
You can use OSS to store small files for latency-sensitive applications, such as social media and messaging applications. This way, the applications can access the small files with a latency of 100 to 200 milliseconds.
You can also use other features provided by OSS to improve the performance of applications that use different architectures. For example, you can use Alibaba Cloud Content Delivery Network (CDN) to cache objects stored in OSS. When a large number of users in the same region download a static object in your bucket at the same time, they can obtain a cached version of the object from the nearest edge node to improve the download speed. If you want to transfer data between the client and OSS over a long distance, you can use the transfer acceleration feature provided by OSS. Transfer acceleration provides an end-to-end acceleration solution by combining intelligent scheduling, protocol stack tuning, optimal route selection, and transmission algorithm optimization with OSS server-side configurations.