Long-Term Supported Versions

    Innovation Versions

      Distributed Data Management

      Distributed data management leverages distributed virtual bus to manage application data and user data distributed on different devices. Under such management, user data is no longer bound to a single physical device, service logic is decoupled from storage, and applications are running across devices.

      Distributed data management is ported from the upstream OpenHarmony 3.2 Release. It consists of the following components.

      ComponentopenEuler Software PackageDescription
      Distributed Data Service (DDS)distributeddatamgr_datamgr_serviceProvides the capability to store data in the databases of different devices.
      KV storedistributeddatamgr_kv_storeManages key-value pairs for device applications.
      Relational databasedistributeddatamgr_relational_storeManages data using a relational model.
      Distributed Data Objectdistributeddatamgr_data_objectAn object-oriented in-memory data management framework featuring multi-device synchronization.

      For more information about distributed data management, see section Data Management in the OpenHarmony document .

      Installation

      Distributed data management has been integrated in openEuler 22.03 LTS SP3 by default. You can directly install it.

      dnf install distributeddatamgr_kv_store distributeddatamgr_relational_store distributeddatamgr_datamgr_service distributeddatamgr_data_object
      

      Service Startup

      1. You can run the start_services.sh script to start the DDS.

        /system/bin/start_services.sh datamgr
        
      2. You can run the ps command to check whether the distributed data management service is started.

        ps -ef | grep distributeddata
        

      Usage

      1. Create the /data directory required for running the demo. OpenHarmony applications require specific directories for running. Therefore, you need to create the directories in openEuler.

        mkdir -p /data/app/el0/0/database/com.example.distributed.rdb/rdb
        mkdir -p /data/app/el1/0/database/distributeddata/kvdb
        mkdir -p /data/service/el1/public/database/distributeddata/meta
        mkdir -p /data/service/el1/public/database/distributeddata/kvdb
        mkdir -p /data/service/el1/public/database/distributeddata/meta/backup
        
      2. Write the client programs for the three databases (kv_store, data_object, and relational_store) to use the distributed data function.

        For details about how to write the client programs, see the demo source code of each database in Repository. The source code is stored in the demo directory in the directory corresponding to each database, for example, kv_store/demo. You can use the build.sh script in the demo directory for compilation.

        Notice

        It is recommended that the database path db specified by the demo be the same as the path of the sample demo. Otherwise, the path may not exist or the permission may be insufficient.

      3. Stop the distributed management service datamgr_service.

        ./stop_services.sh all #Stop all services.
        ./stop_services.sh datamgr #Stop only the datamgr service.
        

      FAQs

      • When a service is started, the error message "Binder Driver died " is displayed.

        Cause: Binder is not enabled in the system. You can check whether the /dev/binder file exists. If the file does not exist, Binder is not enabled.

        Solution: Enable the binder function. For details, see communication_ipc Repository Description.

      • The softbus_server service fails to be started, and the error message "GetNetworkIfIp ifName:eth0 fail" is displayed.

        Cause: Run the ip a command to view the name of the NIC in the current system and check whether the wired NIC eth0 exists. The softbus_server service obtains information such as the IP address through the wired NIC eth0. If eth0 does not exist, softbus_server cannot be started.

        Solution 1: Change the NIC name to eth0.

        Solution 2: Modify the softbus_server source code and change the name of the dependent wired NIC to that of the NIC in the current system.

      References

      hmdfs Distributed File System Overview

      Bug Catching

      Buggy Content

      Bug Description

      Submit As Issue

      It's a little complicated....

      I'd like to ask someone.

      PR

      Just a small problem.

      I can fix it online!

      Bug Type
      Specifications and Common Mistakes

      ● Misspellings or punctuation mistakes;

      ● Incorrect links, empty cells, or wrong formats;

      ● Chinese characters in English context;

      ● Minor inconsistencies between the UI and descriptions;

      ● Low writing fluency that does not affect understanding;

      ● Incorrect version numbers, including software package names and version numbers on the UI.

      Usability

      ● Incorrect or missing key steps;

      ● Missing prerequisites or precautions;

      ● Ambiguous figures, tables, or texts;

      ● Unclear logic, such as missing classifications, items, and steps.

      Correctness

      ● Technical principles, function descriptions, or specifications inconsistent with those of the software;

      ● Incorrect schematic or architecture diagrams;

      ● Incorrect commands or command parameters;

      ● Incorrect code;

      ● Commands inconsistent with the functions;

      ● Wrong screenshots.

      Risk Warnings

      ● Lack of risk warnings for operations that may damage the system or important data.

      Content Compliance

      ● Contents that may violate applicable laws and regulations or geo-cultural context-sensitive words and expressions;

      ● Copyright infringement.

      How satisfied are you with this document

      Not satisfied at all
      Very satisfied
      Submit
      Click to create an issue. An issue template will be automatically generated based on your feedback.
      Bug Catching
      编组 3备份