Software package processing methods, apparatuses, electronic devices, computer-readable storage media, and computer program products

By automatically obtaining package identifiers and transmission speeds, the system resolves issues related to human error and service impact during package version updates and node expansion, achieving efficient package management and rapid expansion.

CN122308860APending Publication Date: 2026-06-30SHENZHEN TENCENT NETWORK INFORMATION TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
SHENZHEN TENCENT NETWORK INFORMATION TECH CO LTD
Filing Date
2024-12-31
Publication Date
2026-06-30

AI Technical Summary

Technical Problem

In existing technologies, software package version updates require manual specification and download by operations and maintenance personnel, which poses a risk of human error. Furthermore, node expansion affects existing network services and cannot meet emergency expansion needs.

Method used

By automatically obtaining the package identifier and transfer speed, the system enables automated updates and downloads of packages, and dynamically adjusts the transfer speed to optimize acquisition efficiency.

Benefits of technology

It improves the automation of software package acquisition, reduces human error, ensures that the node expansion process does not affect the existing network service, and meets the needs of emergency expansion.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122308860A_ABST
    Figure CN122308860A_ABST
Patent Text Reader

Abstract

This application provides a software package processing method, apparatus, electronic device, computer-readable storage medium, and computer program product. The method includes: acquiring a plurality of software package identifiers, wherein the software package identifier is an identifier that is synchronously updated for the software package when the software package is uploaded to a storage service; in response to not detecting a target software package associated with a target software package identifier locally, acquiring operation parameters, wherein the target software package identifier is any software package identifier among the plurality of software package identifiers; when the operation parameters indicate that a target operation is currently being performed, acquiring a first transmission speed for the target software package under the target operation; and acquiring the target software package from the storage service according to the first transmission speed. This application enables automatic acquisition of software packages when software packages are updated, and improves the efficiency of software package acquisition.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to network communication technology, and more particularly to a software package processing method, apparatus, electronic device, computer-readable storage medium, and computer program product. Background Technology

[0002] With the development of application technologies, server versions are updated frequently, multiple versions of software packages coexist, and support for hot updates is required. Therefore, the management and distribution of different versions of application software packages has become a crucial part of the application development and deployment process.

[0003] In most related technologies, when a version is updated, the operations and maintenance personnel manually specify the new version of the software package and download the new version of the software package using a fixed transmission strategy, which is costly and inefficient. Summary of the Invention

[0004] This application provides a software package processing method, apparatus, electronic device, computer-readable storage medium, and computer program product, which can automatically obtain software packages when they are updated and improve the efficiency of software package acquisition.

[0005] The technical solution of this application embodiment is implemented as follows:

[0006] This application provides a software package processing method, the method comprising:

[0007] Obtain multiple package identifiers, wherein the package identifier is the identifier that is synchronously updated for the package when the package is uploaded in the storage service;

[0008] In response to the absence of a target package associated with a target package identifier in the local detection, operation parameters are obtained, wherein the target package identifier is any one of the plurality of package identifiers;

[0009] When the operation parameter represents the target operation currently being performed, obtain the first transmission speed for the target software package under the target operation;

[0010] The target software package is retrieved from the storage service at the first transmission speed.

[0011] This application provides a software package processing apparatus, including:

[0012] The identifier acquisition module is used to acquire multiple software package identifiers, wherein the software package identifier is the identifier that is synchronously updated for the software package when the software package is uploaded in the storage service;

[0013] The parameter acquisition module is used to acquire operation parameters in response to the fact that no target package associated with the target package identifier is detected locally, wherein the target package identifier is any one of the plurality of package identifiers;

[0014] A speed determination module is used to obtain a first transmission speed for the target software package under the target operation when the operation parameter represents the target operation currently being performed.

[0015] A transmission module is configured to retrieve the target software package from the storage service at the first transmission speed.

[0016] This application provides an electronic device, the electronic device comprising:

[0017] Memory is used to store executable instructions or computer programs.

[0018] The processor, when executing computer-executable instructions or computer programs stored in the memory, implements the software package processing method provided in the embodiments of this application.

[0019] This application provides a computer-readable storage medium storing a computer program or computer-executable instructions for implementing the software package processing method provided in this application when executed by a processor.

[0020] This application provides a computer program product, including a computer program or computer executable instructions. When the computer program or computer executable instructions are executed by a processor, they implement the software package processing method provided in this application.

[0021] The embodiments of this application have the following beneficial effects:

[0022] When the target package associated with the target package identifier cannot be detected locally, the target package is retrieved from the storage service, enabling automatic retrieval of updated packages during package updates. Additionally, operation parameters are obtained. When the operation parameters indicate the currently executing target operation, the first transmission speed for the target package under the target operation is obtained, and the target package is retrieved according to the first transmission speed. This allows for dynamic adjustment of the transmission speed based on different operation parameters, ensuring that the target package is retrieved at the optimal transmission speed under various operations, thereby improving package retrieval efficiency. Attached Figure Description

[0023] Figure 1 This is a schematic diagram of the software package processing system provided in the embodiments of this application;

[0024] Figure 2 This is a schematic diagram of the structure of the electronic device provided in the embodiments of this application;

[0025] Figure 3 This is a flowchart illustrating the software package processing method provided in the embodiments of this application. Figure 1 ;

[0026] Figure 4 This is a schematic diagram of the software package upload principle provided in the embodiments of this application;

[0027] Figure 5 This is a schematic diagram of the principle of obtaining the software package identifier provided in the embodiments of this application;

[0028] Figure 6 This is a framework diagram of the node where the synchronization unit is located, as provided in the embodiments of this application;

[0029] Figure 7 This is a flowchart illustrating the software package processing method provided in the embodiments of this application. Figure 2 ;

[0030] Figure 8 This is a flowchart illustrating the software package processing method provided in the embodiments of this application. Figure 3 ;

[0031] Figure 9 This is a schematic diagram of the architecture of the version package distribution system provided in the embodiments of this application;

[0032] Figure 10 This is a schematic diagram of the version package retrieval process provided in this application embodiment;

[0033] Figure 11 This is a schematic diagram illustrating the principle of version distribution in a node expansion scenario provided in this application embodiment. Detailed Implementation

[0034] To make the objectives, technical solutions, and advantages of this application clearer, the application will be further described in detail below with reference to the accompanying drawings. The described embodiments should not be regarded as limitations on this application. All other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.

[0035] In the following description, references are made to “some embodiments,” which describe a subset of all possible embodiments. However, it is understood that “some embodiments” may be the same subset or different subsets of all possible embodiments and may be combined with each other without conflict.

[0036] In the following description, the terms "first, second, third" are used merely to distinguish similar objects and do not represent a specific ordering of objects. It is understood that "first, second, third" may be interchanged in a specific order or sequence where permitted, so that the embodiments of this application described herein can be implemented in an order other than that illustrated or described herein.

[0037] In this application embodiment, the terms "module" or "unit" refer to a computer program or part of a computer program that has a predetermined function and works with other related parts to achieve a predetermined goal, and can be implemented wholly or partially using software, hardware (such as processing circuitry or memory), or a combination thereof. Similarly, a processor (or multiple processors or memory) can be used to implement one or more modules or units. Furthermore, each module or unit can be part of an overall module or unit that includes the functionality of that module or unit.

[0038] Unless otherwise defined, all technical and scientific terms used in the embodiments of this application have the same meaning as commonly understood by one of ordinary skill in the art. The terminology used in the embodiments of this application is for the purpose of describing the embodiments of this application only and is not intended to limit this application.

[0039] In the implementation of this application, the collection and processing of relevant data should strictly comply with the requirements of relevant laws and regulations, obtain the informed consent or separate consent of the personal information subject, and carry out subsequent data use and processing within the scope of laws and regulations and the authorization of the personal information subject.

[0040] Before providing a further detailed description of the embodiments of this application, the nouns and terms involved in the embodiments of this application will be explained, and the nouns and terms involved in the embodiments of this application shall be interpreted as follows.

[0041] 1) Responding to: used to indicate the conditions or states on which the operation is performed depends. When the conditions or states on which it depends are met, one or more operations can be performed in real time or with a set delay. Unless otherwise specified, there is no restriction on the order in which the multiple operations are performed.

[0042] 2) Dedicated Server (DS): In the gaming field, such as in multiplayer online games, this is a computer used to run game battle scenes. It is responsible for handling key tasks such as real-time battle logic, player input, game status updates, and synchronization.

[0043] 3) Cluster (Kubernetes Cluster): It is a container orchestration platform used to automate the deployment, scaling and management of applications. It provides high availability and scalability by packaging applications and their dependencies into containers and scheduling and managing them on multiple nodes in the cluster.

[0044] 4) Game Battle Server Unit (DS Pod): This is a type of Pod in a Kubernetes cluster (the smallest deployable unit in a Kubernetes cluster) specifically designed to run the Game Battle Server (DS), providing a high-performance and stable multiplayer online gaming environment.

[0045] 5) DS-Sync Pod: This is a type of Pod in a Kubernetes cluster, and also a type of DaemonSet. It is used to pull and decompress version packages to synchronize and manage the state and data of the game battle servers (DS), ensuring data consistency and synchronization between the game battle servers. For example, the DS-Sync Pod is responsible for pulling the latest game version, resource files, or other necessary update files from remote storage (such as cloud storage services). DS-Sync Pods can be automatically deployed to each node in the cluster without manual intervention; DS-Sync Pods are also typically responsible for decompressing downloaded compressed files into a file system accessible to the game battle servers.

[0046] 6) Controller (DaemonSet): A controller object in a Kubernetes cluster that ensures a replica of the DS-Sync Pod runs on all nodes (or a selected set of nodes) in the cluster. Whenever a new node joins the cluster, the DaemonSet also creates a DS-Sync Pod on that node; and when a node is removed, the DS-Sync Pod running on that node is deleted accordingly.

[0047] 7) Bucket: A bucket is a container used to store data objects, typically used in cloud storage services. For example, a bucket is a logical storage unit in a cloud storage service used to organize and manage stored objects (such as files). Users can create multiple buckets and store and manage different types of data within them. Each bucket has a unique name and access control policy.

[0048] 8) Cloud storage service: This is a cloud-based storage solution that provides scalable and highly available data storage services. Users can access data stored in the cloud storage service via the network.

[0049] 9) Software Packages: Also known as version packages, these are installation or update packages corresponding to different versions of software. Each version package contains specific version software code, resource files, and configuration information, used to install or update the software on the user's device. Version packages are typically released by software developers to provide new features, fix known issues, or improve performance. Users can obtain the latest version of the software by downloading and installing the corresponding version package. For example, in the gaming industry, software packages are installation or update packages corresponding to different versions of a game, used to install or update the game running on the game's battle server.

[0050] In related technologies, when a game needs a version update, the packaged version file is uploaded to a File Transfer Protocol (FTP) server, and then a pull command is manually issued to each machine to pull the version file. When node expansion is required, in order to ensure that all supported versions can be synchronized to the expansion node, all version directories are synchronized from an active node to the expansion node. This solution requires first compressing the running directory on the source node, and then directly synchronizing the compressed package to the expansion node and decompressing it.

[0051] The above solution has the following problems: When updating the version, the distribution of the version package requires the intervention of operation and maintenance personnel to input parameters and execute the pull command, which poses a risk of human error such as mismatch or omission; when scaling up nodes, using nodes that are currently providing services on the existing network to compress the version directory will lead to an increase in disk input and output (IO), affecting the normal operation of services on that node; node scaling up is time-consuming, as the running directory needs to be compressed on the source node before it can be synchronized to the scaling node, which takes too long and cannot meet the needs of emergency scaling when there are insufficient resources on the existing network.

[0052] Based on the problems existing in related technologies, embodiments of this application provide a software package processing method, apparatus, electronic device, computer-readable storage medium, and computer program product, which can automatically obtain software packages when they are updated and improve the efficiency of software package acquisition. The following describes exemplary applications of the electronic device provided in this application embodiment. The electronic device provided in this application embodiment can be implemented as various types of terminals such as laptops, tablets, desktop computers, set-top boxes, smartphones, smart speakers, smartwatches, smart TVs, and vehicle terminals, or it can be implemented as a server. The following will describe exemplary applications when the device is implemented as a terminal or server.

[0053] See Figure 1 , Figure 1This is a schematic diagram of the architecture of the software package processing system provided in this application embodiment. The software package processing system 100 includes at least a terminal 400, a network 300, a server 200, and a storage service 500. The terminal 400 is connected to the server 200 and the storage service 500 through the network 300, which can be a wide area network, a local area network, or a combination of both.

[0054] See Figure 1 Users can perform interactive operations through terminal 400, such as uploading software packages. After receiving the user's interactive operation, the terminal can upload the software package to storage service 500 and synchronously update the package identifier. Server 200 obtains multiple package identifiers, where the package identifier is the synchronously updated identifier for the package when it is uploaded to the storage service. In response to not detecting the target package associated with the target package identifier locally, server 200 obtains operation parameters, where the target package identifier is any one of the multiple package identifiers. When the operation parameters indicate that a target operation is currently being performed, server 200 obtains a first transmission speed for the target package under the target operation. Server 200 retrieves the target package from storage service 500 according to the first transmission speed.

[0055] In the scenario of game updates, the software package processing system provided in this application embodiment is applied within a cluster. Server 200 is a synchronization unit in any node within the cluster. Each node deploys server 200, and each node also includes multiple game battle server units for running the game. When the game undergoes a version update, the developers upload the software package of the new version of the game to the storage service 500 through terminal 400. At the same time, the identifier of the software package of the new version of the game is stored in the version configuration list. Server 200 obtains multiple software package identifiers. In response to not detecting the target software package associated with the target software package identifier locally, server 200 obtains operation parameters. The target software package identifier is the identifier of the software package of the new version of the game, and the target software package is the software package of the new version of the game. When the operation parameters indicate that a target operation is currently being performed, server 200 obtains the first transmission speed for the software package of the new version of the game under the target operation. In this scenario, the target operation is a software package update operation. Server 200 obtains the first transmission speed for the software package of the new version of the game under the software package update operation. The new version of the game software package is obtained from the storage service 500 according to the first transmission speed. After obtaining the new version of the game software package, server 200 can distribute the new version of the game software package to multiple game battle server units within the node. The multiple game battle server units will then install the new version of the game software package to complete the game update.

[0056] In a cluster node expansion scenario, the software package processing system provided in this embodiment is applied within the cluster. The cluster begins node expansion, and server 200 is a synchronization unit among the newly added expansion nodes. The expansion nodes also include multiple game battle server units for running the game. The identifiers of software packages for each version of the game are stored in the version configuration list. Server 200 acquires multiple software package identifiers. In response to not detecting the software packages associated with each software package identifier locally, server 200 acquires operation parameters. When the operation parameters indicate that a target operation is currently being performed, server 200 acquires the first transmission speed for each software package of the game under the target operation. In this scenario, the target operation is a software package download operation, and server 200 acquires the first transmission speed for each software package of the game under the software package download operation. Server 200 acquires the corresponding software package from storage service 500 according to the first transmission speed of each software package. After acquiring each software package of the game, server 200 can distribute each software package to multiple game battle server units within the node. The multiple game battle server units install multiple software packages of the game to enable game operation.

[0057] See Figure 2 , Figure 2 This is a schematic diagram of the structure of the electronic device provided in the embodiments of this application. Figure 2 The illustrated electronic device includes at least one processor 410, a memory 450, at least one network interface 420, and a user interface 430. The various components of the electronic device are coupled together via a bus system 440. It is understood that the bus system 440 is used to implement communication between these components. In addition to a data bus, the bus system 440 also includes a power bus, a control bus, and a status signal bus. However, for clarity, in… Figure 2 The general labeled all buses as Bus System 440.

[0058] The processor 410 can be an integrated circuit chip with signal processing capabilities, such as a general-purpose processor, a digital signal processor (DSP), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. The general-purpose processor can be a microprocessor or any conventional processor, etc.

[0059] User interface 430 includes one or more output devices 431 that enable the presentation of media content, including one or more speakers and / or one or more visual displays. User interface 430 also includes one or more input devices 432, including user interface components that facilitate user input, such as a keyboard, mouse, microphone, touch screen display, camera, other input buttons and controls.

[0060] The memory 450 may be removable, non-removable, or a combination thereof. Exemplary hardware devices include solid-state storage, hard disk drives, optical disk drives, etc. The memory 450 may optionally include one or more storage devices physically located away from the processor 410.

[0061] The memory 450 may include volatile memory or non-volatile memory, or both. The non-volatile memory may be read-only memory (ROM), and the volatile memory may be random access memory (RAM). The memory 450 described in this application embodiment is intended to include any suitable type of memory.

[0062] In some embodiments, memory 450 is capable of storing data to support various operations, examples of which include programs, modules, and data structures or subsets or supersets thereof, as illustrated below.

[0063] Operating system 451 includes system programs for handling various basic system services and performing hardware-related tasks, such as the framework layer, core library layer, driver layer, etc., for implementing various basic business functions and handling hardware-based tasks;

[0064] The network communication module 452 is used to reach other electronic devices via one or more (wired or wireless) network interfaces 420, exemplary network interfaces 420 including: Bluetooth, WiFi, and Universal Serial Bus (USB), etc.

[0065] Presentation module 453 is configured to enable the presentation of information (e.g., a user interface for operating peripheral devices and displaying content and information) via one or more output devices 431 (e.g., a display screen, a speaker, etc.) associated with user interface 430;

[0066] The input processing module 454 is used to detect and translate one or more user inputs or interactions from one or more input devices 432.

[0067] In some embodiments, the software package processing apparatus provided in this application can be implemented in software. Figure 2A software package processing device 455 stored in memory 450 is shown. This device can be software in the form of programs and plug-ins, and includes the following software modules: an identification acquisition module 4551, a parameter acquisition module 4552, a speed determination module 4553, and a transmission module 4554. These modules are logically linked and can therefore be arbitrarily combined or further separated according to their implemented functions. The functions of each module will be described below.

[0068] In other embodiments, the software package processing apparatus provided in this application can be implemented in hardware. As an example, the apparatus provided in this application can be a processor in the form of a hardware decoding processor, which is programmed to execute the software package processing method provided in this application. For example, the processor in the form of a hardware decoding processor can be one or more application-specific integrated circuits (ASICs), digital signal processors (DSPs), programmable logic devices (PLDs), complex programmable logic devices (CPLDs), field-programmable gate arrays (FPGAs), or other electronic components.

[0069] The software package processing method provided in the embodiments of this application will now be described in detail with reference to the accompanying drawings. The electronic device implementing the software package processing method of the embodiments of this application may be a terminal, a server, or a combination of both. The executing entity of each step will not be described again below.

[0070] It should be noted that the package processing examples below are illustrated using game packages as an example. Those skilled in the art can apply the package processing method provided in the embodiments of this application to other scenarios that require the management and distribution of packages, such as software development and deployment scenarios, cloud service scenarios, and Internet of Things scenarios, based on their understanding of the following text.

[0071] See Figure 3 , Figure 3 This is a flowchart illustrating the software package processing method provided in the embodiments of this application. Figure 1 , will combine Figure 3 The steps shown are explained as follows: Figure 3 As shown, taking the server as the execution subject of the package processing method as an example, the method includes the following steps 101 to 104:

[0072] In step 101, multiple package identifiers are obtained.

[0073] The package identifier is the identifier that is updated synchronously when the package is uploaded to the storage service.

[0074] Here, a software package refers to different versions of the installation or update package of an application during development or deployment. It should be noted that multiple software packages may correspond to the same application. Storage services refer to cloud services or local storage systems that provide data storage and retrieval functions. Storage services are typically used to store various types of data, including files, images, videos, database records, etc. In this embodiment, the storage service is a cloud storage service that allows users to upload software packages to and download software packages from the storage service. When uploading a software package to the storage service, the user can obtain the package identifier and update it synchronously. The package identifier is a unique identifier automatically generated by the system or manually specified by the user when uploading the software package to the storage service. One software package corresponds to one package identifier. The package identifier may include version number, name, timestamp, and hash value. For example, a package identifier might be example-package-1.0.0-xxxx-abc123, where example-package is the package name, 1.0.0 is the version number, xxxx is the upload date, and abc123 is the hash value of the contents of the package. Each software package's package identifier can be stored in a version configuration list. When a new software package is uploaded, its package identifier is simultaneously added to the version configuration list. Multiple package identifiers can be retrieved from the version configuration list periodically, i.e., based on a preset cycle. This application does not limit the preset cycle; it can be set according to actual needs. For example, if the preset cycle is 30 seconds, then multiple package identifiers are retrieved every 30 seconds.

[0075] As an example, Figure 4 This is a schematic diagram illustrating the principle of software package uploading provided in this application embodiment. See also... Figure 4Users can package and build a compressed software package containing the script code, binary files, and dynamic library files for a new version of the game. Simultaneously, users obtain the package identifier of this package. Users upload the compressed package file to a cloud storage service via a build node and add the corresponding package identifier to the version configuration list. For example, uploading package A adds its package identifier to the version configuration list, and uploading package B adds its package identifier. This embodiment can be applied to Kubernetes clusters (K8s clusters), where the version configuration list is stored in a cluster-level resource (ConfigMap). The cluster-level resource (ConfigMap) can be accessed by any Pod on any node in the cluster. The cluster-level resource (ConfigMap) is stored in the distributed key-value store (etcd) of the Kubernetes cluster.

[0076] As an example, Figure 5 This is a schematic diagram illustrating the principle of obtaining the software package identifier according to an embodiment of this application. See also... Figure 5 In this embodiment, the server can be a DS-Sync Pod in a Kubernetes cluster. When a version configuration list is configured using a ConfigMap, the ConfigMap is mounted to the Sync Pod's container as a storage volume. When the version package configuration list changes, it is automatically updated to the Sync Pod's container in real time via hot updates. Therefore, when one or more package identifiers stored in the version package configuration list change, the Sync Pod will automatically retrieve all package identifiers from the version package configuration list. Alternatively, the Sync Pod can retrieve multiple package identifiers from the version configuration list based on a preset period. For example, if the preset period is 30 seconds, the Sync Pod will retrieve multiple package identifiers from the version configuration list every 30 seconds. When a package needs to be downloaded, the Sync Pod can also pull the compressed file of that package from a cloud storage service.

[0077] In some embodiments, after step 101, package detection is performed locally based on multiple package identifiers. This local package detection can be achieved as follows: First, a running directory is obtained locally, whereby the running directory records the identifiers corresponding to currently running packages; then, in response to the absence of a target package identifier in the running directory, the target package associated with the target package identifier is verified locally; finally, when the verification result indicates that the target package verification failed, it is determined that the target package associated with the target package identifier cannot be detected locally.

[0078] Here, the software package processing method provided in this application embodiment is applied to a synchronization unit in a cluster node. The node also includes at least one target device, on which the software package runs. "Local" refers to the local storage volume in the cluster, through which the synchronization unit and the target device share information such as running software packages. The local storage volume stores software package identifiers corresponding to one or more software packages running on the target device. For example, the target device can be a game server; when the target device runs a new version of the game, it stores the identifier of the software package for that new version in the running directory. Therefore, after the synchronization unit obtains the running directory, it can detect whether each software package identifier exists in the running directory. When the software package identifier is not detected in the running directory, it indicates that the target device needs to install the software package associated with that software package identifier. At this time, the software package associated with the software package identifier is verified locally, checking the integrity and security of the compressed file of the software package in the local storage volume. If the verification result indicates that the software package verification fails, it indicates that the software package needs to be retrieved again from the storage service. The software package is identified as the target software package, and the software package identifier corresponding to the software package is identified as the target software package identifier. It is determined that the target software package associated with the target software package identifier cannot be detected locally.

[0079] As an example, Figure 6 This is a framework diagram of the node where the synchronization unit provided in this embodiment of the application is located. See also... Figure 6 The Kubernetes cluster consists of multiple nodes, each deploying one synchronization unit and at least one game battle server unit (DS Pod). Each game battle server unit supports multiple players. Each node also includes a local storage volume (HostPath Volume) for the synchronization unit and the game battle server unit to share the software packages and runtime directories within the volume. The synchronization unit can obtain the runtime directory from the storage volume, which records the package identifiers of one or more software packages being run by the game battle server units. It's important to note that, under normal circumstances, each game battle server unit should be running the same software packages; therefore, the storage volume only stores one runtime directory.

[0080] For example, the synchronization unit obtains multiple package identifiers from the version configuration list, including package identifier a of package A, package identifier b of package B, and package identifier c of package C. The running directory obtained by the synchronization unit from the storage volume includes package identifier a of package A currently running in the game battle server unit, and package identifier b of package B. If package identifier c of package C is not detected in the running directory, the game battle server needs to install package C. At this point, package C needs to be verified on the local storage volume. If the verification result indicates that package C has failed verification, it means that there is no package C available for installation on the local storage volume, and package C needs to be obtained from the storage service.

[0081] This application embodiment obtains the identifier of the running software package from the local running directory, which can accurately understand the status of the software packages installed and running in the current environment, quickly determine the target software package that needs to be obtained from the storage service, and realize automatic software package updates.

[0082] In some embodiments, after obtaining the running directory from the local machine, the software package processing method provided in this application further includes the following steps: First, in response to detecting a target software package identifier in the running directory, software installation history data is obtained from the local machine; then, in response to not detecting the target software package identifier in the software installation history data, the target software package associated with the target software package identifier is verified locally; finally, when the verification result indicates that the target software package verification fails, it is determined that the target software package associated with the target software package identifier cannot be detected locally.

[0083] Here, for each package identifier, the system checks if the package identifier exists in the runtime directory. If the package identifier is detected in the runtime directory, software installation history data is retrieved locally. This software installation history data records the identifiers of packages already installed on the target device. The software installation history data may also include installation time, installation path, and uninstallation time. The system checks if the package identifier exists in the software installation history data. If the package identifier is not detected in the software installation history data, it indicates that the target device needs to install the package. At this point, the package associated with the package identifier is verified locally. If the verification result indicates that the package verification fails, it indicates that the package needs to be retrieved again from the storage service. This package is identified as the target package, and the corresponding package identifier is identified as the target package identifier. It is determined that the target package associated with the target package identifier cannot be detected locally.

[0084] For example, the synchronization unit obtains multiple package identifiers from the version configuration list, including package identifier a of package A, package identifier b of package B, and package identifier c of package C. The running directory obtained by the synchronization unit from the storage volume includes package identifier a of package A currently running in the game battle server unit, and package identifier b of package B. If package identifier c of package C is not detected in the running directory, the game battle server needs to install package C. For packages A and B, the synchronization unit obtains software installation history data from the local storage volume, assuming the software installation history data includes package identifier a of package A, the installation time of package A, and the installation path. Therefore, the game battle server has already installed and is running package A, and needs to install packages B and C. At this point, packages B and C need to be verified on the local storage volume. If the verification result for package C indicates that package C failed, it means that there is no package C available for installation on the local storage volume, and package C needs to be obtained from the storage service. If the verification result for package B indicates that package B failed, it means that there is no package B available for installation on the local storage volume, and package B needs to be obtained from the storage service.

[0085] This application embodiment detects software packages by combining historical installation data and running directories, which can accurately understand the status of installed and running software packages in the current environment, avoid misjudgment, and quickly determine the target software packages that need to be obtained from the storage service, thereby achieving automatic software package updates.

[0086] In some embodiments, verifying the target package associated with the target package identifier locally can be achieved in the following ways: in response to the absence of a compressed file of the target package locally, or the absence of a verification file for the target package locally, a verification result indicating that the target package verification has failed is determined; or, in response to the presence of both a compressed file of the target package locally and a verification file for the target package locally, a first verification value of the compressed file is determined, and a second verification value is determined from the verification file; when the first verification value and the second verification value are different, a verification result indicating that the target package verification has failed is determined.

[0087] Here, a checksum file is a file used to verify the integrity and security of a compressed file containing a software package. It may include one or more hash values ​​(also called checksums), which are calculated on the compressed file using a specific hash algorithm (such as the MD5 message digest algorithm). A checksum file ensures that a compressed file has not been tampered with or corrupted during transmission, storage, and use. The checksum file is obtained by processing the compressed file using a hash algorithm during the process of a user packaging and building a software package and uploading it to a storage service.

[0088] If the target package identifier cannot be detected in the running directory or in the software installation history data, the target package associated with the target package identifier needs to be verified locally. Verification refers to verifying the integrity and security of the target package stored locally. The verification process is as follows: When uploading a package, the user needs to compress the package to obtain a compressed file before uploading it to the storage service. When retrieving the package from the storage service, the user also obtains the compressed file and verification file of the package, and then decompresses it to obtain the package. Therefore, the first step is to check whether the compressed file or verification file of the target package is stored locally.

[0089] When the compressed file or checksum of the target software package is not detected locally, a checksum indicating a failure to verify the target software package is obtained. The target software package is not present in the local storage volume and needs to be retrieved from the storage service. Conversely, when the compressed file and checksum of the target software package are detected locally, the integrity and security of the compressed file can be verified based on the checksum. If the verification passes, a checksum indicating a successful verification of the target software package is obtained, and the target software package is present in the local storage volume and can be installed. The synchronization unit can directly decompress the compressed file of the target software package to obtain the target software package and distribute it to the target device so that the target device can install and run the target software package. When the integrity and security verification of the compressed file of the target software package fails, the target software package in the local storage volume may have been damaged or tampered with during transmission and cannot be used for installation, resulting in a checksum indicating a failure to verify the target software package. In this case, the target software package also needs to be retrieved from the storage service.

[0090] Verifying the integrity and security of a compressed file using a verification file can be achieved as follows: Determine the hash value of the compressed file based on a hash algorithm (e.g., MD5), and use this hash value as the first verification value. Read the second verification value from the verification file. If the first and second verification values ​​differ, a verification result indicating a failed verification of the target software package is determined, and the target software package needs to be retrieved from the storage service. Alternatively, if the first and second verification values ​​are the same, the integrity and security of the compressed file are verified, and a verification result indicating a successful verification of the target software package is determined. In this case, the target software package exists on the local storage volume and can be installed; it is not necessary to retrieve the target software package from the storage service. The next software package identifier is then retrieved from multiple software package identifiers, and the above detection and verification process is repeated.

[0091] For example, assuming the target software package's compressed file is example.tar.gz and the checksum file is example.tar.gz.md5, the system checks if the compressed file example.tar.gz and the checksum file example.tar.gz.md5 exist on the local storage volume. If neither is detected, the checksum is deemed to have failed. If both are detected, the first checksum of example.tar.gz can be automatically calculated using the compression tool, or calculated using a hash algorithm. A second checksum is then read from the checksum file example.tar.gz.md5, and the first and second checksums are compared. If the first checksum equals the second checksum, the checksum is successful; otherwise, the checksum fails.

[0092] This application's embodiments ensure that the software package has not been tampered with or damaged during transmission and storage by calculating and comparing the checksum values ​​of the compressed file and the checksum file. If the hash value of the compressed file does not match the hash value in the checksum file, a file integrity problem can be immediately identified, enabling automatic verification of file integrity and authenticity, reducing manual intervention, and improving the automation level of application installation and update processes.

[0093] In step 102, in response to the fact that the target package associated with the target package identifier cannot be detected locally, operation parameters are obtained.

[0094] The target package identifier can be any package identifier from a plurality of package identifiers.

[0095] Here, operation parameters are parameters used to characterize the target operation currently being performed. Target operations can include package update operations and package download operations, etc. For an application, a package update operation refers to the operation where, if the application's package already exists locally, the user uploads a new package of that application to the storage service and retrieves the new package from the storage service. A package download operation refers to the operation where, if the server is newly added and has not yet downloaded or installed any packages for that application, all packages need to be downloaded from the storage service.

[0096] In step 103, when the operation parameters represent the target operation currently being performed, the first transmission speed for the target software package under the target operation is obtained.

[0097] Here, the transmission speed of the target software package can be dynamically adjusted based on the type of the currently executing target operation. For example, when the operation parameters indicate that the currently executing target operation is a software package update operation, since the server already has a running software package, and the running software package consumes some network and computing resources, the transmission speed of the target software package needs to be limited. When the operation parameters indicate that the currently executing target operation is a software package update operation, the server is a newly added server, and there is no need to limit the transmission speed of the target software package.

[0098] For example, in a clustered game update scenario, each node in the cluster includes multiple game battle server units. When multiple game battle server units within a node are running a game, meaning the local storage volume already contains the software package for the running game, the current target operation is a software package update operation. At this time, multiple game battle servers need to consume the node's network and computing resources to transmit data to external devices to support game operation. When the synchronization unit within the node obtains the target software package, it needs to consider the factors affecting game operation; therefore, under the software package update operation, the transmission speed of the target software package is limited based on a speed threshold.

[0099] In cluster node expansion scenarios, the expansion node, i.e., the newly added node, automatically deploys a synchronization unit. The synchronization unit is a new server. Multiple game battle servers within the expansion node are not yet started, and no software packages exist on the current local storage volume. The current target operation is a software package download. First, the synchronization unit is started, and it retrieves all software packages from the storage service at once. Since multiple game battle servers are not yet started, the process of retrieving all software packages does not need to consider factors affecting game operation. Therefore, there is no limit to the transmission speed of the target software packages during the download operation, thus improving the speed of node expansion.

[0100] In some embodiments, when the target operation is a package update operation, see [link to documentation]. Figure 7 In step 103, the first transmission speed for the target software package under the target operation can be obtained through the following steps 1031A to 1032A, which are explained in detail below.

[0101] In step 1031A, a first speed threshold associated with the package update operation is determined.

[0102] Here, the first speed threshold is a preset upper limit for transmission speed. This threshold can be set based on network conditions, hardware performance, and user needs. When the target operation is a software package update, since the server already has a running software package, which consumes some network and computing resources, the first transmission speed of the target software package needs to be limited based on the first speed threshold. That is, the first transmission speed of the target software package cannot exceed the first speed threshold. The first speed threshold can be determined based on the historical transmission speeds of multiple software packages under the software package update operation and the current network conditions. The first speed threshold can also be a static threshold manually set by the user, such as 1 MB / s. Alternatively, the first speed threshold can be a dynamic threshold that adjusts dynamically according to the current network conditions and local workload, for example, lowering the first speed threshold when the network is busy and raising it when the network is idle.

[0103] In this embodiment of the application, the determination of the first speed threshold associated with the software package update operation can be achieved in the following way: First, obtain the preset speed threshold set for the software package update operation and obtain the workload of multiple software packages running locally; then, based on the workload, adjust the preset speed threshold to obtain the adjusted preset speed threshold, wherein the adjusted preset speed threshold is negatively correlated with the workload; finally, determine the adjusted preset speed threshold as the first speed threshold.

[0104] Here, the preset speed threshold set for software package update operations is a pre-defined static threshold, which can be read from system configuration files, databases, or user settings. For example, the user can manually set the preset speed threshold to 1MB / s. The workload of running multiple software packages locally refers to the usage of network resources (such as network bandwidth) and computing resources (such as Central Processing Unit (CPU) and memory) within the node by all software packages running on multiple target devices within the current node. Workload includes, but is not limited to, CPU utilization, memory utilization, network bandwidth utilization, and disk I / O utilization. The preset speed threshold is adjusted based on the workload; the larger the workload, the lower the adjusted preset speed threshold; the smaller the workload, the higher the adjusted preset speed threshold.

[0105] This application does not limit the method for adjusting a preset speed threshold based on workload. For example, a linear function can be used to adjust the preset speed threshold. Assume the preset speed threshold is V0, the current workload is W, and the maximum workload is W. max The adjustment factor is then determined based on the current workload and the maximum workload. The adjustment factor is 1 - W / W. maxThe product of the preset speed threshold and the adjustment coefficient is determined as the first speed threshold. Assuming the preset speed threshold V0 = 1 MB / s, the current workload W = 70%, and the maximum workload W... max =100%, then the first speed threshold V = V0 × (1 - W / W) max = 0.3 MB / s. Alternatively, a non-linear function can be used to adjust the preset speed threshold. For example, an exponential decay function can be used to calculate the preset speed threshold based on the workload and the preset speed threshold.

[0106] This application embodiment obtains a preset speed threshold and the workload of running multiple software packages locally, and adjusts the preset speed threshold based on the workload. This can dynamically determine the first speed threshold for software package update operations, thereby improving transmission efficiency and resource utilization.

[0107] In some embodiments, adjusting a preset speed threshold based on workload to obtain an adjusted preset speed threshold can be achieved in the following way: First, a neural network model is invoked based on workload to predict the change in speed threshold and obtain a predicted value of the change; then, the preset speed threshold is adjusted based on the predicted value to obtain the adjusted preset speed threshold.

[0108] Here, as an example, an initial neural network model is trained to obtain a trained neural network model. The workload is input into the trained neural network model to obtain the predicted value of the change in the neural network model's output. Based on the predicted value, a preset speed threshold is adjusted to obtain the adjusted preset speed threshold. The neural network model can be a multilayer perceptron model, a convolutional neural network model, a recurrent neural network model, etc., and is not limited here. The acquired workload (such as CPU utilization, memory utilization, etc.) is used as the input to the neural network model. The trained neural network model is used for prediction processing to obtain the predicted value ΔV of the change in the speed threshold. The preset speed threshold V0 is then added to or subtracted from the predicted value ΔV to obtain the adjusted preset speed threshold.

[0109] For example, the obtained workload includes CPU utilization: 70%, memory utilization: 60%, network bandwidth utilization: 50%, and disk I / O utilization: 40%. CPU utilization, memory utilization, network bandwidth utilization, and disk I / O utilization are used as inputs to a trained neural network model. The trained neural network model is used for prediction processing, resulting in a predicted value ΔV of -0.2 MB / s for the change in the speed threshold. The adjusted preset speed threshold V = V0 + ΔV = 1 MB / s - 0.2 MB / s = 0.8 MB / s is calculated.

[0110] In some embodiments, training an initial neural network model to obtain a trained neural network model can be achieved in the following ways: constructing training samples; calling the initial neural network model to predict the change in the speed threshold based on the workload in the training samples, obtaining the predicted value of the change output by the initial neural network model; constructing a loss function based on the predicted value of the change output by the initial neural network model and the change labels in the training samples; and performing backpropagation on the initial neural network model based on the loss function to obtain a trained neural network model.

[0111] As an example, training samples are constructed based on the workload and the change in the speed threshold corresponding to the workload. The training samples are input into the initial neural network model to obtain the predicted value of the change output by the initial neural network model. Based on the predicted value of the change output by the initial neural network model and the change labels in the training samples, a loss function is constructed. By minimizing the loss value of the loss function, the initial neural network model is backpropagated to obtain the trained neural network model. The loss function may include the mean squared error loss function, the squared loss function, the cross-entropy loss function, etc., which are not limited here.

[0112] In this embodiment, the change in the speed threshold is predicted by a neural network model, and the preset speed threshold can be adjusted according to the real-time workload. This allows for rapid adjustment of the first speed threshold based on the workload, reducing manual intervention and improving resource utilization and software package transmission efficiency.

[0113] In step 1032A, a first transmission speed is determined based on a first speed threshold.

[0114] Here, before the target software package transmission begins, an initial transmission speed can be determined based on current network conditions and other information. This initial transmission speed is compared to a first speed threshold. If the initial transmission speed is greater than or equal to the first speed threshold, the first speed threshold is determined as the first transmission speed. If the initial transmission speed is less than the first speed threshold, the initial transmission speed is determined as the first transmission speed. During the target software package transmission, the current transmission speed of the target software package can be acquired in real time, recording the amount of data transmitted per second. An average transmission speed over a period of time is calculated based on the amount of data transmitted per second to reduce the impact of instantaneous fluctuations. The average transmission speed is compared to the first speed threshold. If the average transmission speed is greater than or equal to the first speed threshold, the first speed threshold is determined as the first transmission speed. If the average transmission speed is less than the first speed threshold, the average transmission speed is determined as the first transmission speed.

[0115] In this embodiment of the application, determining the first transmission speed based on the first speed threshold can be achieved in the following way: First, obtain the local first network condition and the type of the target software package; then, determine the second transmission speed required for the software package of the transmission type under the first network condition; finally, when the second transmission speed is greater than the first speed threshold, determine the first speed threshold as the first transmission speed; or, when the second transmission speed is less than or equal to the first speed threshold, determine the second transmission speed as the first transmission speed.

[0116] Here, the first network condition includes at least information such as network bandwidth, network latency, and network packet loss rate. The type of the target software package characterizes the update content of the application update provided by the target software package. For example, the type of the target software package can include version updates, patch updates, etc. Taking a game application as an example, a version update means updating the game version, and a patch update means fixing some bugs in the game. Different types of target software packages can use different transmission speeds. For a target software package, after obtaining the type of the target software package, a second transmission speed required to transmit that type of software package under the first network condition is determined. The second transmission speed is compared with a first speed threshold. When the second transmission speed is greater than the first speed threshold, the first speed threshold is determined as the first transmission speed; or, when the second transmission speed is less than or equal to the first speed threshold, the second transmission speed is determined as the first transmission speed.

[0117] For example, the first local network condition is obtained as follows: network bandwidth 10MB, network latency 50ms, and network packet loss rate 1%. The target software package is determined to be a patch update type. Under the first network condition, the second transfer speed required for the software package of this type is determined to be 8.8MB / s. Assuming the first speed threshold is 6MB / s, the second transfer speed of 8.8MB / s is greater than the first speed threshold, so the first speed threshold of 6MB / s is determined as the first transfer speed. That is, the target software package is obtained from the storage service at a first transfer speed of 6MB / s.

[0118] This application embodiment obtains the local first network condition and the type of the target software package, determines the second transmission speed required for the software package of the transmission type under the current network condition, and determines the first transmission speed based on the first speed threshold and the second transmission speed. The transmission speed can be dynamically adjusted to ensure that the best transmission effect can be achieved under different network conditions.

[0119] In this embodiment, the first network condition includes network bandwidth, network latency, and network packet loss rate. Under the first network condition, the second transmission speed required for the data packet of the transmission type can be achieved as follows: First, a third transmission speed is determined based on the network bandwidth; then, the third transmission speed is adjusted based on the network latency and network packet loss rate to obtain the adjusted third transmission speed; finally, the second transmission speed is determined based on the type and the adjusted third transmission speed.

[0120] Here, network bandwidth refers to the maximum transmission rate of the current network, measured in MB / s or Mbps. Network latency is the transmission time of a data packet from the sender to the receiver, measured in milliseconds (ms). Network packet loss rate is the percentage of data packets lost during network transmission, measured as a percentage (%). The third transmission speed can be determined based on a preset ratio and network bandwidth in the first network condition. This application embodiment does not limit the specific value of the preset ratio and it can be set by the user. For example, if the current network bandwidth is 10 MB / s, and the preset ratio is set to 80%, the third transmission speed is set to 80% of the network bandwidth, i.e., 8 MB / s.

[0121] The third transmission speed is adjusted based on network latency and packet loss rate to obtain the adjusted third transmission speed. The adjusted third transmission speed is negatively correlated with both network latency and packet loss rate. A first adjustment factor corresponding to network latency is determined, and the third transmission speed is adjusted based on this factor. For example, network latency is divided into three ranges: low latency (<50ms): the third transmission speed can be appropriately increased, with a first adjustment factor of 1.1; medium latency (50ms-100ms): the third transmission speed remains unchanged, with a first adjustment factor of 1; high latency (>100ms): the third transmission speed needs to be appropriately reduced, with a first adjustment factor of 0.9. For instance, if the current network latency is 50ms, which is medium latency, and the third transmission speed is 8MB / s, the product of the third transmission speed and the first adjustment factor is determined as the adjusted third transmission speed, which remains unchanged at 8MB / s. A second adjustment factor corresponding to the network packet loss rate is determined, and the third transmission speed is adjusted based on this factor. For example, network packet loss rate is divided into the following three ranges: Low packet loss rate (<1%): the third transmission speed can be appropriately increased, and the second adjustment factor is 1.1; Medium packet loss rate (1%-5%): the third transmission speed remains unchanged, and the second adjustment factor is 1; High packet loss rate (>5%): the third transmission speed needs to be appropriately reduced, and the second adjustment factor is 0.9. The current network packet loss rate is 0.5%, which is considered low, and the third transmission speed can be appropriately increased. The product of the third transmission speed and the second adjustment factor is determined as the adjusted third transmission speed, which is 8.8 MB / s.

[0122] Different types of software packages may have different transmission speed requirements. After determining the adjusted third transmission speed, the second transmission speed is determined based on the type of software package and the adjusted third transmission speed.

[0123] This application embodiment obtains the local first network condition (including network bandwidth, network latency, and network packet loss rate), determines the third transmission speed based on the network bandwidth, then adjusts the third transmission speed according to the network latency and network packet loss rate, and finally determines the second transmission speed based on the software package type and the adjusted third transmission speed. The transmission speed can be dynamically adjusted to determine the optimal third transmission speed, ensuring the highest transmission efficiency under the current first network condition.

[0124] In this embodiment of the application, the second transmission speed is determined based on the type and the adjusted third transmission speed, which can be achieved in the following way: First, based on the type, a mapping table is queried, wherein the mapping table includes the correspondence between candidate types and candidate transmission speeds; then, when a candidate type corresponding to the type is found in the mapping table, the candidate transmission speed corresponding to the found candidate type is determined as the fourth transmission speed; finally, the minimum value between the fourth transmission speed and the adjusted third transmission speed is determined as the second transmission speed.

[0125] Here, the mapping table includes the correspondence between candidate types and candidate transfer speeds. Candidate types can include version updates, patch updates, system security updates, etc. The candidate transfer speed for each candidate type can be obtained based on user settings or determined based on the average historical transfer speed of the software package for that candidate type. For example, when the candidate type is a system security update, the software package is of high importance, and the set candidate transfer speed can be higher than the candidate transfer speeds corresponding to candidate types such as version updates and patch updates. The candidate transfer speed for system security updates is set to 10MB / s. When the candidate type is a patch update, the software package has a smaller data size, and the set candidate transfer speed can be higher than the candidate transfer speed corresponding to version updates but lower than the candidate transfer speed corresponding to system security updates. The candidate transfer speed for patch updates is set to 9MB / s. When the candidate type is a version update, the software package has a larger data size, and the set candidate transfer speed can be lower than the candidate transfer speeds corresponding to system security updates and patch updates. The candidate transfer speed for version updates is set to 8MB / s.

[0126] Based on the type of the current software package, the corresponding candidate transfer speed is retrieved from the mapping table. Example: Assuming the current software package type is a system security update, the corresponding candidate transfer speed retrieved from the mapping table is 10MB / s. This retrieved candidate transfer speed is designated as the fourth transfer speed. The minimum value between the fourth transfer speed and the adjusted third transfer speed is designated as the second transfer speed. For example, if the adjusted third transfer speed is 8.8MB / s, which is less than the fourth transfer speed of 10MB / s, then the adjusted third transfer speed is designated as the second transfer speed. The target software package is downloaded from the storage service according to the second transfer speed.

[0127] This application embodiment obtains the type of the software package, queries a mapping table to determine the fourth transmission speed, and determines the minimum value between the fourth transmission speed and the adjusted third transmission speed as the second transmission speed. The transmission speed can be dynamically adjusted based on the type to ensure that more important software packages are transmitted faster, thereby improving the efficiency of software package transmission and the stability of the application.

[0128] In some embodiments, see Figure 8 When the target operation is a software package download operation, the first transmission speed of the target software package under the target operation is obtained in step 103. This can be achieved through the following steps 1031B to 1032B, which are explained in detail below.

[0129] In step 1031B, the second network status and the type of the target software package are obtained during the software package download operation.

[0130] Here, software package download operations are generally applied to newly added servers. Taking a server as a synchronization unit as an example, when the cluster expands its nodes, the synchronization unit is automatically deployed to the newly added expansion node. The expansion node includes one or more target devices, none of which have any version of the application software package installed. The synchronization unit includes an initialization container (Init container) and an application container (App container). The initialization container is used to initialize the newly deployed synchronization unit. The initialization container starts first and downloads all multiple software packages from the storage service at once. The process of the initialization container downloading the target software packages does not require rate limiting. Therefore, it is only necessary to obtain the second network condition and the type of the target software package under the software package download operation, and determine the first transmission speed based on the second network condition and type. The specific process of obtaining the second network condition and the type of the target software package under the software package download operation can refer to the specific process of obtaining the first network condition and the type of the target software package in the above embodiment, and will not be described here.

[0131] In step 1032B, the required transmission speed for the data packet of the transmission type under the second network condition is determined as the first transmission speed.

[0132] Here, the second network condition also includes network bandwidth, network latency, and network packet loss rate. The fifth transmission speed can be determined based on the network bandwidth in the second network condition. Then, the fifth transmission speed is adjusted based on the network latency and network packet loss rate in the second network condition to obtain the adjusted fifth transmission speed. Based on the type, a mapping table is queried. When a candidate type corresponding to the type is found in the mapping table, the candidate transmission speed corresponding to the queried candidate type is determined as the sixth transmission speed. Finally, the minimum value between the sixth transmission speed and the adjusted fifth transmission speed is determined as the first transmission speed. The specific process of determining the required transmission speed for a data package of a transmission type under the second network condition can be referred to the specific process of determining the required second transmission speed for a data package of a transmission type under the first network condition in the above embodiment, and will not be described again here.

[0133] After the initialization container has downloaded multiple software packages, the application container within the synchronization unit is started. Every 30 seconds, the application container within the synchronization unit retrieves multiple package identifiers from the version configuration list and executes steps 101 to 104 above.

[0134] In the scenario of adding a new server to perform software package download operations, the embodiments of this application determine the first transmission speed based on the second network conditions and the type of the target software package, eliminating the need for speed limiting and improving the server expansion speed.

[0135] In step 104, the target software package is retrieved from the storage service at the first transmission speed.

[0136] Here, obtaining the target software package from the storage service at the first transmission speed can be achieved in the following way: obtaining the compressed file and verification file of the target software package from the storage service at the first transmission speed; verifying the compressed file locally based on the verification file; verifying the integrity and security of the compressed file during transmission; decompressing the compressed file to obtain the target software package.

[0137] This application embodiment obtains the target software package from the storage service when the target software package identifier is not detected locally, thus automatically obtaining the updated software package when the package is updated. Furthermore, it obtains operation parameters; when the operation parameters indicate the currently executing target operation, it obtains the first transmission speed for the target software package under the target operation, and obtains the target software package according to the first transmission speed. This dynamically adjusts the transmission speed based on different operation parameters, ensuring that the target software package is obtained at the optimal transmission speed under different operations, thereby improving the efficiency of software package acquisition.

[0138] In some embodiments, after step 104, the target software package can be distributed to at least one target device. In scenarios where the target operation is a software package update operation, there is only one target software package, and it can be directly distributed to the target device. In scenarios where the target operation is a software package download operation, there are multiple target software packages. Distributing the target software packages to at least one target device can be achieved as follows: First, based on the target software package identifier of each target software package, the dependencies between the multiple target software packages are determined; then, the multiple target software packages are sorted based on the dependencies to obtain sorted target software packages; and finally, the sorted target software packages are distributed sequentially.

[0139] As an example, in a scenario where the target operation is software package download, suppose there are three target software packages A, B, and C, where B depends on A, and C depends on B. The dependency relationship can be represented as: A->B->C. A topological sorting algorithm is used to sort the target software packages, ensuring that the dependencies are satisfied. The sorted target software packages are in the order [A, B, C]. The sorted target software packages are then downloaded sequentially.

[0140] In this embodiment of the application, the sequential distribution of multiple target software packages after sorting can be achieved in the following way: for each target software package, perform the following operations: determine the prerequisite software package of the target software package from the multiple target software packages after sorting; in response to receiving a prompt message from the target device indicating that the prerequisite software package has been successfully installed, distribute the target software package to the target device.

[0141] As an example, for target software package B, the prerequisite software package is A. For target software package C, the prerequisite software package is B. When the target device sends a message indicating that the prerequisite software package is successfully installed, the current target software package is sent to the target device. After the target device installs software package A, it sends a message indicating that A is successfully installed. Upon receiving the message, software package B is sent to the target device. After the target device installs software package B, it sends a message indicating that B is successfully installed. Upon receiving the message, software package C is sent to the target device.

[0142] This application embodiment ensures correct installation of software packages and improves installation success rate and resource utilization efficiency by determining the dependencies between multiple target software packages and distributing them in sequence.

[0143] The following will describe an exemplary application of the embodiments of this application in a real-world application scenario.

[0144] With the development of game and application technologies, server versions are updated frequently, multiple DS versions coexist, and support for hot updates is required. Most games or applications rely on operations and maintenance personnel to manually distribute version packages when updating server versions. During capacity expansion, due to the support for multiple versions, operations and maintenance personnel generally need to manually identify and synchronize these versions, a costly and error-prone approach.

[0145] To address the above issues, this application proposes a software package processing method. This method is an automatic version package distribution mechanism based on the controller (DaemonSet) and storage buckets in a Kubernetes cluster. During version updates, the version package is uploaded to the storage bucket (corresponding to the storage service in the above embodiment), and the version configuration list is automatically updated. When the synchronization unit (DS-Sync) on each Kubernetes node detects the version configuration change, it automatically pulls the version package (corresponding to the software package in the above embodiment) from the storage bucket according to the version configuration list and decompresses it. When expanding a node, the newly added node automatically starts DS-Sync to pull the complete version package and decompress it. This mechanism effectively avoids version package distribution errors and omissions caused by human error, while accelerating node expansion. This application is a pure backend technical solution applicable to server version package distribution for various applications, such as online games and other applications.

[0146] Figure 9 This is a schematic diagram of the architecture of the version package distribution system provided in an embodiment of this application. See also... Figure 9 The version package distribution system includes a storage bucket 501, a version configuration list (K8S ConfigMap) 502, a synchronization unit (DS-Sync Pod) 503, and a game battle server 504. These are described in detail below. The version package distribution system is used in a cluster, which consists of N nodes: node 1, 2, ..., N.

[0147] First, the bucket stores the version package. After the developers complete the build process, they upload the version package to the bucket via the build node. A build node is a local development environment, referring to a computer or virtual machine responsible for executing software building, testing, and packaging tasks in an automated build and deployment process. Packaging and building refers to the process of packaging the source code and resource files from the software development process into one or more distributable and deployable files. Developers can package the script code, binary files, and dynamic library files for a new version of the game to obtain a compressed version package file. Packaging and building typically includes the following steps: compilation: compiling the source code into an executable form; packaging: packaging the compiled code along with the required resource files (such as configuration files, images, library files, etc.) into a compressed file; versioning: assigning a version number (corresponding to the package identifier in the above embodiment) to the packaged compressed file for identification and management. Using storage buckets offers the following advantages: Capacity: Storage buckets can store large amounts of data, ranging from several GB to several PB, meeting the storage needs of version packages; Scalability: They have good scalability, allowing storage space to be increased or decreased as needed; Durability: To prevent data loss, storage buckets provide highly available storage services, with data backed up in multiple physical regions; Lifecycle Management: They support various lifecycle configuration policies, and historical version packages can be set to expire and be cleared.

[0148] Then, a ConfigMap is used to configure the currently used version configuration list. This ConfigMap is mounted as a storage volume into the container of the Synchronization Unit (DSDync PoD). Regardless of version updates or node scaling, this version configuration list is used for pulling and decompressing version packages; when the version configuration list changes, it is automatically updated to the container in real time via hot updates. Mounting the ConfigMap as a storage volume means mounting the data in the ConfigMap to the container's file system as files. This process is implemented through Kubernetes' volume mechanism. Specifically:

[0149] The Kubernetes cluster converts the ConfigMap data into files and creates a special volume to store these files. When a Pod is defined and specifies mounting this ConfigMap volume in its `volume Mounts` field, Kubernetes copies these files to the specified path within the container. The ConfigMap's configuration content can include: metadata: name: synchronization unit; data: version configuration list: PGame_DS_0.2.0.14884_Development_release_dailystable.tgz.

[0150] The following describes the automatic version package synchronization process based on the controller (DaemonSet). Leveraging the features of the Kubernetes controller, it ensures that one synchronization unit (DS-Sync Pod) runs on each node. The synchronization unit is responsible for the automatic pulling and decompression of version packages; the synchronization unit shares version packages and version directories with the game battle server (DS Pod) through a local storage volume (HostPath Volume). A local storage volume is a volume type in a Kubernetes cluster that allows files or directories on the host machine to be mounted into a Pod.

[0151] The application (App) container of the synchronization unit executes the synchronization script (ds-sync.sh script) every 30 seconds. The core logic of the synchronization script is to traverse each version configuration in the version configuration list (ds-version.txt), check if there is a version configuration that has not been downloaded or installed, and if so, automatically pull and decompress the version package. Figure 10 This is a schematic diagram of the process for pulling version packages provided in the embodiments of this application.

[0152] See Figure 10 Step 601: Read the version configuration list.

[0153] The version configuration list stores version numbers for multiple version packages (corresponding to the package identifiers in the above embodiments). The version number can be the name of the version package.

[0154] Step 602: Has the traversal been completed?

[0155] Here, it checks whether each version number in the version configuration list (ds-version.txt) has been traversed. If the traversal is complete, proceed to step 610. If the traversal is not yet complete, proceed to step 603.

[0156] Step 603: Read the next version number from the version configuration list.

[0157] Here, the version number read will be denoted as S.

[0158] Step 604: Check if the version package is already installed locally.

[0159] Here, for version number S, firstly, it is determined whether the version package corresponding to version number S needs to be installed. Installation is required in the following situations: Version number S does not exist in the working directory (corresponding to the running directory in the above embodiments). In this case, the version package corresponding to version number S needs to be installed. The working directory is the directory where the DS pod runs, or version number S exists in the working directory, but there is no history of installing the version package corresponding to version number S in the version installation history (corresponding to the software installation history data in the above embodiments). In this case, the version package corresponding to version number S needs to be installed. Both the working directory and the version installation history are stored in the local storage volume (HostPath Volume). If the version package corresponding to version number S needs to be installed, it is checked whether the version package corresponding to version number S needs to be downloaded. Download is required in the following situations: Neither the version compressed package (corresponding to the compressed file in the above embodiments) nor the MD5 file of the version compressed package (corresponding to the verification file in the above embodiments) exists in the local storage volume; or, the version compressed package and the MD5 file of the version compressed package exist in the local storage volume, but the version compressed package and the MD5 file do not match. If you need to download the version package corresponding to version number S, proceed to step 605; otherwise, proceed to step 602.

[0160] Step 605: Delete any existing end marker files.

[0161] Here, the end marker file (sync-done) indicates that the traversal of the version configuration list has been completed. This might be a historical end marker file from the previous time period; this end marker file should be deleted.

[0162] Step 606: Check if container initialization is being performed.

[0163] Here, the synchronization unit includes an initialization container and an application container, as does the game battle server unit. The initialization container is started only once during node expansion, when initializing the synchronization unit and the game battle server unit. It's important to note that during version updates, all nodes are in a public service state. To avoid excessive network bandwidth and disk I / O consumption during downloads and decompression, version distribution to nodes needs to be rate-limited; however, during node expansion, the expanding nodes are not yet public service when they start. Therefore, rate limiting is unnecessary for node expansion scenarios, thus accelerating node expansion.

[0164] The specific process is as follows: The container type is configured through the environment variable (CONTAINER_TYPE, corresponding to the operation parameter in the above embodiment). When the environment variable is INIT, it indicates that the container is an initialization container; when the environment variable is MAIN, it indicates that the container is an application container. During download execution, the environment variable is used to determine whether to limit the download speed. When downloading is required, the application container (App container) is speed-limited. If the environment variable is INIT, no speed limit is needed; otherwise, speed limit is applied. For the bucket command-line tool coscli: `coscli cp cos file path local file --rate-limiting 20` means uploading local files to the bucket with a speed limit of 20MB / s; the same applies to unpacking operations.

[0165] When the environment variable is INIT, it is detected that container initialization is currently underway, and the process jumps to step 607. When the environment variable is MAIN, it is detected that container initialization is not currently underway, and the process jumps to step 608.

[0166] Step 607: Download the version package at unlimited speed.

[0167] Here, the download speed of the version package (corresponding to the first transmission speed) can be determined based on the actual network conditions, and the version package can be downloaded at that speed.

[0168] Step 608: Download the version package at a limited speed.

[0169] Here, a first speed threshold can be obtained, and the download speed of the version package can be determined based on the actual network conditions. When the speed is greater than the first speed threshold, the version package is downloaded according to the first speed threshold.

[0170] Step 609: Install the version package.

[0171] Here, after the synchronization unit finishes downloading the version package, it distributes the version package to the game battle server unit so that the game battle server unit can install the version package. After installation, proceed to step 602.

[0172] Step 610: Generate the end identifier file.

[0173] Here, when the traversal is complete, an end marker file is generated, ending the entire process.

[0174] The following explains the specific process of node expansion. Figure 11 This is a schematic diagram illustrating the principle of version distribution in a node expansion scenario provided in this application embodiment.

[0175] This application's embodiments, through the characteristics of the controller (DaemonSet) and the initialization container (Init container), ensure that the required version packages can be automatically and completely downloaded and installed successfully before the business service is exposed. Specifically, during node scaling, the synchronization unit starts before the game battle server unit. When the Init container within the synchronization unit starts, it performs a complete version package download and installation. If, for some reason, the version package fetching or installation fails, the Init container fails to start, and the game battle server unit (DS Pod) will not start. See also... Figure 11When scaling up a node, after the scaling node 700 starts: the Init container 703 of the synchronization unit 701 (DS-Sync Pod) pulls the version configuration list from the ConfigMap, using the ConfigMap to ensure that the container can read the latest version configuration list in real time. This version configuration list is mounted in the synchronization unit's container as a read-only volume. The specific configuration is as follows: Path: / data / ds-versions, Name: ds-versions. ConfigMap: Read / write permissions: 420; Name: ds-sync; Name: ds-versions. The above configuration means that the volume named ds-versions (the volume type is ConfigMap) is mounted to the / data / ds-versions path. The ConfigMap name is ds-sync, and the read / write permissions represent the file's read and write permissions (420 is octal, converted to decimal is 644, indicating that the file owner has read and write permissions, users in the same group have read-only permissions, and other users only have read-only permissions). Init container 703 pulls version packages from the storage bucket of cloud storage service 704, without rate limiting, enabling fast retrieval. When Init container 703 of synchronization unit 701 (DS-Sync Pod) starts, it executes the version package retrieval and decompression scripts all at once. The specific execution logic is as follows: it iterates through the version configuration list and downloads and decompresses packages from the storage bucket, including various anomaly checks and integrity checks. Then, the App container 705 of the synchronization unit starts. Unlike Init container 703, App container 705 periodically checks for updates; that is, App container 700 is resident and periodically executes the ds-sync.sh script to check if there are any new version packages that need to be downloaded and decompressed. The specific configuration is as follows: App container 705 runs a shell command that executes ds-sync.sh every 30 seconds in a while loop. The Kubernetes cluster's controller (DaemonSet) feature ensures that one synchronization unit runs on each node and that the synchronization unit is started first. This means that once the synchronization unit starts successfully, the required version packages are downloaded and decompressed normally. Once synchronization unit 701 starts successfully, game battle server 702 begins startup. The init container 706 of game battle server 702 also performs version checks, verifying the integrity of the version package as a fallback. It then checks again whether the required versions are installed. If any versions are missing, game battle server 702 fails to start. Because the system is configured with a Pod failure retry policy, game battle server 702 will restart.If the issue is caused by a version package check failure, the game battle server 702 will automatically restart after the version package problem is automatically or manually repaired, and eventually the Init container 706 will start successfully. If there is no missing version, the Init container 706 will start successfully. Finally, the game battle server's App container 707 will start, providing services to the outside world and initiating business processes. Node expansion is complete.

[0176] This application presents an automated version package distribution mechanism with certain versatility, applicable to the distribution of version packages for various application servers. Specifically, the version package distribution process requires no manual intervention, improving the stability of version releases and node expansion; it also offers a certain speedup for node expansion scenarios; the solution is simple, lightweight, and easy to maintain.

[0177] It is understood that in the embodiments of this application, data such as user information are involved. When the embodiments of this application are applied to specific products or technologies, user permission or consent is required, and the collection, use and processing of related data must comply with relevant laws, regulations and standards.

[0178] The following description continues to illustrate the exemplary structure of the software package processing device 455 provided in the embodiments of this application as a software module. In some embodiments, such as Figure 2 As shown, the software modules stored in the software package processing device 455 of the memory 450 may include:

[0179] The identifier acquisition module 4551 is used to acquire multiple package identifiers, wherein the package identifier is the identifier that is synchronized and updated for the package when the package is uploaded in the storage service;

[0180] The parameter acquisition module 4552 is used to acquire operation parameters in response to the fact that the target package identifier associated with the target package identifier cannot be detected locally, wherein the target package identifier is any package identifier among multiple package identifiers;

[0181] The speed determination module 4553 is used to obtain the first transmission speed for the target software package under the target operation when the operation parameters characterize the target operation currently being performed;

[0182] The transmission module 4554 is used to obtain the target software package from the storage service at a first transmission speed.

[0183] In some embodiments, when the target operation is a software package update operation, the speed determination module 4553 is further configured to determine a first speed threshold associated with the software package update operation; and determine a first transmission speed based on the first speed threshold.

[0184] In some embodiments, the speed determination module 4553 is further configured to obtain a preset speed threshold set for the software package update operation and obtain the workload of running multiple software packages locally; adjust the preset speed threshold based on the workload to obtain an adjusted preset speed threshold, wherein the adjusted preset speed threshold is negatively correlated with the workload; and determine the adjusted preset speed threshold as a first speed threshold.

[0185] In some embodiments, the speed determination module 4553 is further configured to call a neural network model based on the workload to predict the change in speed threshold, and obtain a predicted value of the change; and adjust the preset speed threshold based on the predicted value to obtain an adjusted preset speed threshold.

[0186] In some embodiments, the speed determination module 4553 is further configured to acquire a first local network condition and the type of the target software package; determine a second transmission speed required for the software package of the transmission type under the first network condition; when the second transmission speed is greater than a first speed threshold, determine the first speed threshold as the first transmission speed; when the second transmission speed is less than or equal to the first speed threshold, determine the second transmission speed as the first transmission speed.

[0187] In some embodiments, the first network condition includes network bandwidth, network latency, and network packet loss rate; the speed determination module 4553 is further configured to determine a third transmission speed based on network bandwidth; adjust the third transmission speed based on network latency and network packet loss rate to obtain an adjusted third transmission speed; and determine a second transmission speed based on the type and the adjusted third transmission speed.

[0188] In some embodiments, the speed determination module 4553 is further configured to query a mapping table based on the type, wherein the mapping table includes a correspondence between candidate types and candidate transmission speeds; when a candidate type corresponding to the type is found in the mapping table, the candidate transmission speed corresponding to the found candidate type is determined as the fourth transmission speed; and the minimum value between the fourth transmission speed and the adjusted third transmission speed is determined as the second transmission speed.

[0189] In some embodiments, when the target operation is a software package download operation, the speed determination module 4553 is further configured to obtain a second network condition and the type of the target software package under the software package download operation; and determine the required transmission speed of the software package of the transmission type under the second network condition as the first transmission speed.

[0190] In some embodiments, the package processing apparatus 455 further includes a detection module for obtaining a running directory from the local machine, wherein the running directory is used to record the identifiers corresponding to the running packages; in response to the absence of a target package identifier in the running directory, the module verifies the target package associated with the target package identifier locally; and when the verification result indicates that the target package verification fails, the module determines that the target package associated with the target package identifier cannot be detected locally.

[0191] In some embodiments, the detection module is further configured to: obtain software installation history data locally in response to detecting a target package identifier in the running directory; verify the target package associated with the target package identifier locally in response to not detecting the target package identifier in the software installation history data; and determine that the target package associated with the target package identifier cannot be detected locally when the verification result indicates that the target package verification has failed.

[0192] In some embodiments, the detection module is further configured to: determine a verification result indicating that the target software package has failed verification in response to the absence of a compressed file of the target software package being detected locally, or the absence of a verification file for the target software package being detected locally; determine a first verification value of the compressed file and a second verification value from the verification file in response to the presence of both a compressed file of the target software package and a verification file for the target software package being detected locally; and determine a verification result indicating that the target software package has failed verification when the first verification value and the second verification value are different.

[0193] This application provides a computer program product, which includes a computer program or computer-executable instructions stored in a computer-readable storage medium. A processor of an electronic device reads the computer-executable instructions from the computer-readable storage medium and executes the computer-executable instructions, causing the electronic device to perform the software package processing method described above in this application.

[0194] This application provides a computer-readable storage medium storing computer-executable instructions or a computer program. When the computer-executable instructions or the computer program are executed by a processor, the processor will execute the software package processing method provided in this application, for example, such as... Figure 3 The package processing method is shown.

[0195] In some embodiments, the computer-readable storage medium may be a memory such as RAM, ROM, flash memory, magnetic surface memory, optical disk, or CD-ROM; or it may be a variety of devices including one or any combination of the above-mentioned memories.

[0196] In some embodiments, computer-executable instructions may take the form of programs, software, software modules, scripts, or code, written in any form of programming language (including compiled or interpreted languages, or declarative or procedural languages), and may be deployed in any form, including as stand-alone programs or as modules, components, subroutines, or other units suitable for use in a computing environment.

[0197] As an example, computer-executable instructions may, but do not necessarily, correspond to files in a file system. They may be stored as part of a file that holds other programs or data, for example, in one or more scripts in a Hyper Text Markup Language (HTML) document, in a single file dedicated to the program in question, or in multiple co-located files (e.g., files that store one or more modules, subroutines, or code sections).

[0198] As an example, computer-executable instructions can be deployed to execute on a single electronic device, or on multiple electronic devices located at one location, or on multiple electronic devices distributed across multiple locations and interconnected via a communication network.

[0199] In summary, this application's embodiments achieve automated version package synchronization without manual intervention, avoiding version distribution issues caused by human error. Furthermore, it introduces a version list configuration, using this configuration as the basis for pulling version packages from the storage bucket. When scaling up nodes, it does not affect other nodes currently providing external services, and no additional directory file compression is required, thus accelerating node scaling.

[0200] The above description is merely an embodiment of this application and is not intended to limit the scope of protection of this application. Any modifications, equivalent substitutions, and improvements made within the spirit and scope of this application are included within the scope of protection of this application.

Claims

1. A software package processing method, characterized in that, The method includes: Obtain multiple package identifiers, wherein the package identifier is the identifier that is synchronously updated for the package when the package is uploaded in the storage service; In response to the absence of a target package associated with a target package identifier in the local detection, operation parameters are obtained, wherein the target package identifier is any one of the plurality of package identifiers; When the operation parameter represents the target operation currently being performed, obtain the first transmission speed for the target software package under the target operation; The target software package is retrieved from the storage service at the first transmission speed.

2. The method according to claim 1, characterized in that, When the target operation is a software package update operation, obtaining the first transmission speed for the target software package under the target operation includes: Determine a first speed threshold associated with the software package update operation; The first transmission speed is determined based on the first speed threshold.

3. The method according to claim 2, characterized in that, The determination of the first speed threshold associated with the software package update operation includes: Obtain the preset speed threshold set for the software package update operation, and obtain the workload of running multiple software packages locally; Based on the workload, the preset speed threshold is adjusted to obtain the adjusted preset speed threshold, wherein the adjusted preset speed threshold is negatively correlated with the workload; The adjusted preset speed threshold is determined as the first speed threshold.

4. The method according to claim 3, characterized in that, The step of adjusting the preset speed threshold based on the workload to obtain the adjusted preset speed threshold includes: Based on the workload, a neural network model is invoked to predict the change in the speed threshold, and the predicted value of the change is obtained. The preset speed threshold is adjusted based on the predicted value to obtain the adjusted preset speed threshold.

5. The method according to claim 2, characterized in that, Determining the first transmission speed based on the first speed threshold includes: Obtain the local first network condition and the type of the target software package; Determine the second transmission speed required to transmit the type of software package under the first network condition; When the second transmission speed is greater than the first speed threshold, the first speed threshold is determined as the first transmission speed; When the second transmission speed is less than or equal to the first speed threshold, the second transmission speed is determined as the first transmission speed.

6. The method according to claim 5, characterized in that, The first network condition includes network bandwidth, network latency, and network packet loss rate; Determining the second transmission speed required to transmit the type of software package under the first network condition includes: The third transmission speed is determined based on the network bandwidth. The third transmission speed is adjusted based on the network latency and the network packet loss rate to obtain the adjusted third transmission speed. The second transmission speed is determined based on the type and the adjusted third transmission speed.

7. The method according to claim 6, characterized in that, Determining the second transmission speed based on the type and the adjusted third transmission speed includes: Based on the type, a mapping table is queried, wherein the mapping table includes the correspondence between candidate types and candidate transmission speeds; When a candidate type corresponding to the type is found in the mapping table, the candidate transmission speed corresponding to the found candidate type is determined as the fourth transmission speed. The minimum value between the fourth transmission speed and the adjusted third transmission speed is determined as the second transmission speed.

8. The method according to any one of claims 1 to 7, characterized in that, When the target operation is a software package download operation, obtaining the first transmission speed for the target software package under the target operation includes: Obtain the second network status under the package download operation and the type of the target package; The transmission speed required to transmit the software package of the aforementioned type under the second network condition is determined as the first transmission speed.

9. The method according to claim 1, characterized in that, After obtaining multiple package identifiers, the method includes: Obtain the running directory from the local machine, wherein the running directory is used to record the identifiers corresponding to the currently running software packages; In response to the fact that the target package identifier is not detected in the running directory, the target package associated with the target package identifier is verified locally; When the verification result indicates that the target software package verification failed, it is determined that the target software package associated with the target software package identifier cannot be detected locally.

10. The method according to claim 9, characterized in that, After obtaining the runtime directory from the local machine, the method further includes: In response to the detection of the target package identifier in the running directory, software installation history data is retrieved from the local machine; In response to the fact that the target package identifier cannot be detected in the software installation history data, the target package associated with the target package identifier is verified locally; When the verification result indicates that the target software package verification failed, it is determined that the target software package associated with the target software package identifier cannot be detected locally.

11. The method according to claim 9 or 10, characterized in that, The step of verifying the target package associated with the target package identifier on the local machine includes: In response to the absence of a compressed file for the target software package being detected locally, or the absence of a verification file for the target software package being detected locally, a verification result indicating that the verification of the target software package has failed is determined. In response to the detection of a compressed file of the target software package locally and the detection of a verification file for the target software package locally, a first verification value of the compressed file is determined, and a second verification value is determined from the verification file; When the first check value and the second check value are different, a check result indicating that the target software package check has failed is determined.

12. A software package processing apparatus, characterized in that, The device includes: The identifier acquisition module is used to acquire multiple software package identifiers, wherein the software package identifier is the identifier that is synchronously updated for the software package when the software package is uploaded in the storage service; The parameter acquisition module is used to acquire operation parameters in response to the fact that no target package associated with the target package identifier is detected locally, wherein the target package identifier is any one of the plurality of package identifiers; A speed determination module is used to obtain a first transmission speed for the target software package under the target operation when the operation parameter represents the target operation currently being performed. A transmission module is configured to retrieve the target software package from the storage service at the first transmission speed.

13. An electronic device, characterized in that, The electronic device includes: Memory is used to store executable instructions or computer programs. A processor, when executing computer-executable instructions or computer programs stored in the memory, implements the software package processing method according to any one of claims 1 to 11.

14. A computer-readable storage medium storing computer-executable instructions or a computer program, characterized in that, When the computer-executable instructions or computer program are executed by a processor, they implement the software package processing method according to any one of claims 1 to 11.

15. A computer program product comprising computer-executable instructions or a computer program, characterized in that, When the computer-executable instructions or computer program are executed by a processor, they implement the software package processing method according to any one of claims 1 to 11.