我们如何减少产品配置管理SDK的初始化时间
GrabX serves as Grab’s central platform for product configuration management. GrabX client services read product configurations through an SDK. This SDK reads the configurations in a way that’s eventually consistent, meaning it takes about a minute for any configuration updates to reach the client SDKs.
GrabX是Grab的产品配置管理中心平台。GrabX客户端服务通过SDK读取产品配置。这个SDK以最终一致的方式读取配置,这意味着任何配置更新大约需要一分钟才能到达客户端SDK。
However, some GrabX SDK clients, particularly those that need to read larger configuration data (~400 MB), reported that the SDK takes an extended amount of time to initialise, approximately four minutes. This blog post details how we analysed and addressed this issue.
然而,一些GrabX SDK客户端,特别是那些需要读取较大配置数据(约400 MB)的客户端,报告说SDK需要较长时间来初始化,大约四分钟。这篇博客文章详细介绍了我们如何分析和解决这个问题。
SDK Observations
SDK 观察
GrabX clients have observed that the GrabX SDK requires several minutes to initialise. This results in what is known as ‘cold starts’, where the SDK takes an extended time to begin supporting the reading of configurations at startup. This challenge highlights the importance of efficient SDK start-up management, especially when a service handling a high volume of incoming traffic initiates new SDK instances to manage the load better. However, due to the extended SDK initialisation time, these instances continue to experience stress, potentially leading to service throttling.
GrabX客户端观察到GrabX SDK需要几分钟时间来初始化。这导致了所谓的“冷启动”,即SDK在启动时需要较长时间才能开始支持配置读取。这个挑战突显了高效SDK启动管理的重要性,特别是当一个处理大量传入流量的服务启动新的SDK实例以更好地管理负载时。然而,由于SDK初始化时间过长,这些实例继续承受压力,可能导致服务限流。
SDK Initialisation Workflow
SDK初始化工作流程
The SDK initialisation flow described below is based on the improvements we proposed to the SDK design in our previous post. In that post, we suggested enhancing the SDK design by:
下面描述的 SDK 初始化流程基于我们在之前的文章中提出的 SDK 设计改进。在那篇文章中,我们建议通过以下方式增强 SDK 设计:
A. Implementing service-based data partitioning and storage in the AWS S3 bucket B. Allowing service-based subscription of data for the SDK
A. 在AWS S3存储桶中实施基于服务的数据分区和存储 B. 允许SDK基于服务的数据订阅
The following diagram provides a high-level ove...