From 57850ee333cdf8bfb5d10b593433ce01f1644ee9 Mon Sep 17 00:00:00 2001 From: z30053452 Date: Fri, 9 May 2025 11:12:35 +0800 Subject: [PATCH] revert water level Signed-off-by: z30053452 --- .../service/kvdb/kvdb_service_impl.cpp | 49 +++++++------------ .../service/kvdb/kvdb_service_impl.h | 2 +- .../service/test/kvdb_service_impl_test.cpp | 12 ++--- 3 files changed, 26 insertions(+), 37 deletions(-) diff --git a/services/distributeddataservice/service/kvdb/kvdb_service_impl.cpp b/services/distributeddataservice/service/kvdb/kvdb_service_impl.cpp index 859f9eb30..f04980ccc 100644 --- a/services/distributeddataservice/service/kvdb/kvdb_service_impl.cpp +++ b/services/distributeddataservice/service/kvdb/kvdb_service_impl.cpp @@ -245,6 +245,7 @@ Status KVDBServiceImpl::Sync(const AppId &appId, const StoreId &storeId, int32_t { StoreMetaData metaData = GetStoreMetaData(appId, storeId, subUser); MetaDataManager::GetInstance().LoadMeta(metaData.GetKey(), metaData); + auto delay = GetSyncDelayTime(syncInfo.delay, storeId, metaData.user); if (metaData.isAutoSync && syncInfo.seqId == std::numeric_limits::max()) { DeviceMatrix::GetInstance().OnChanged(metaData); StoreMetaDataLocal localMeta; @@ -255,18 +256,6 @@ Status KVDBServiceImpl::Sync(const AppId &appId, const StoreId &storeId, int32_t return Status::SUCCESS; } } - if ((DeviceMatrix::GetInstance().IsStatics(metaData) || DeviceMatrix::GetInstance().IsDynamic(metaData)) && - !IsNeedSync(metaData, syncInfo.devices)) { - ZLOGW("no change, do not need sync, appId:%{public}s storeId:%{public}s", metaData.bundleName.c_str(), - Anonymous::Change(metaData.storeId).c_str()); - if (syncInfo.devices.empty()) { - return DEVICE_NOT_ONLINE; - } - DBResult dbResult = { {syncInfo.devices[0], DBStatus::OK} }; - DoComplete(metaData, syncInfo, RefCount(), std::move(dbResult)); - return SUCCESS; - } - auto delay = GetSyncDelayTime(syncInfo.delay, storeId, metaData.user); syncInfo.syncId = ++syncId_; RADAR_REPORT(STANDARD_DEVICE_SYNC, ADD_SYNC_TASK, RADAR_SUCCESS, BIZ_STATE, START, SYNC_STORE_ID, Anonymous::Change(storeId.storeId), SYNC_APP_ID, appId.appId, CONCURRENT_ID, @@ -277,24 +266,6 @@ Status KVDBServiceImpl::Sync(const AppId &appId, const StoreId &storeId, int32_t std::bind(&KVDBServiceImpl::DoComplete, this, metaData, syncInfo, RefCount(), std::placeholders::_1)); } -bool KVDBServiceImpl::IsNeedSync(const StoreMetaData &metaData, std::vector &devices) -{ - auto uuids = ConvertDevices(devices); - if (uuids.empty()) { - ZLOGW("no device, appId:%{public}s, storeId:%{public}s", metaData.bundleName.c_str(), - Anonymous::Change(metaData.storeId).c_str()); - return false; - } - auto code = DeviceMatrix::GetInstance().GetCode(metaData); - auto [exist, mask] = DeviceMatrix::GetInstance().GetRemoteMask(uuids[0]); - auto [existLocal, localMask] = DeviceMatrix::GetInstance().GetMask(uuids[0]); - if ((mask & code) == code || (localMask & code) == code) { - ZLOGI("record level change, code: %{public}d, localmask: %{public}d, mask: %{public}d", code, localMask, mask); - return true; - } - return false; -} - Status KVDBServiceImpl::NotifyDataChange(const AppId &appId, const StoreId &storeId, uint64_t delay) { StoreMetaData meta = GetStoreMetaData(appId, storeId); @@ -886,6 +857,24 @@ int32_t KVDBServiceImpl::OnUserChange(uint32_t code, const std::string &user, co return SUCCESS; } +bool KVDBServiceImpl::IsRemoteChange(const StoreMetaData &metaData, const std::string &device) +{ + auto code = DeviceMatrix::GetInstance().GetCode(metaData); + if (code == DeviceMatrix::INVALID_MASK) { + return true; + } + auto [dynamic, statics] = DeviceMatrix::GetInstance().IsConsistent(device); + if (metaData.dataType == DataType::TYPE_STATICS && statics) { + return false; + } + if (metaData.dataType == DataType::TYPE_DYNAMICAL && dynamic) { + return false; + } + auto [exist, mask] = DeviceMatrix::GetInstance().GetRemoteMask( + device, static_cast(metaData.dataType)); + return (mask & code) == code; +} + void KVDBServiceImpl::AddOptions(const Options &options, StoreMetaData &metaData) { metaData.isAutoSync = options.autoSync; diff --git a/services/distributeddataservice/service/kvdb/kvdb_service_impl.h b/services/distributeddataservice/service/kvdb/kvdb_service_impl.h index df132cf20..4604f8b56 100644 --- a/services/distributeddataservice/service/kvdb/kvdb_service_impl.h +++ b/services/distributeddataservice/service/kvdb/kvdb_service_impl.h @@ -155,7 +155,7 @@ private: void RegisterHandler(); void DumpKvServiceInfo(int fd, std::map> ¶ms); void TryToSync(const StoreMetaData &metaData, bool force = false); - bool IsNeedSync(const StoreMetaData &metaData, std::vector &devices); + bool IsRemoteChange(const StoreMetaData &metaData, const std::string &device); bool IsOHOSType(const std::vector &ids); Status ConvertDbStatusNative(DBStatus status); bool CompareTripleIdentifier(const std::string &accountId, const std::string &identifier, diff --git a/services/distributeddataservice/service/test/kvdb_service_impl_test.cpp b/services/distributeddataservice/service/test/kvdb_service_impl_test.cpp index a59b778e2..1d16a6562 100644 --- a/services/distributeddataservice/service/test/kvdb_service_impl_test.cpp +++ b/services/distributeddataservice/service/test/kvdb_service_impl_test.cpp @@ -1074,17 +1074,17 @@ HWTEST_F(KvdbServiceImplTest, ResolveAutoLaunch, TestSize.Level0) } /** -* @tc.name: IsNeedSync -* @tc.desc: IsNeedSync function test. +* @tc.name: IsRemoteChange +* @tc.desc: IsRemoteChange function test. * @tc.type: FUNC * @tc.author: wangbin */ -HWTEST_F(KvdbServiceImplTest, IsNeedSyncTest, TestSize.Level0) +HWTEST_F(KvdbServiceImplTest, IsRemoteChangeTest, TestSize.Level0) { StoreMetaData meta = kvdbServiceImpl_->GetStoreMetaData(appId, storeId); - std::vector devices= {"IsNeedSyncTest"}; - auto changes = kvdbServiceImpl_->IsNeedSync(meta, devices); - EXPECT_EQ(changes, false); + std::string devices= "IsRemoteChangeTest"; + auto changes = kvdbServiceImpl_->IsRemoteChange(meta, devices); + EXPECT_EQ(changes, true); } /** -- Gitee