database-distributedobject-overview.md 2.1 KB
Newer Older
L
li_juntao 已提交
1 2
# 分布式数据对象概述

3
分布式数据对象管理框架是一款面向对象的内存数据管理框架。向应用开发者提供内存对象的创建、查询、删除、修改、订阅等基本数据对象的管理能力;同时具备分布式能力,满足超级终端场景下,相同应用多设备间的数据对象协同需求。
L
li_juntao 已提交
4 5 6 7 8 9


## 基本概念

- **分布式内存数据库**
  
10
  分布式内存数据库将数据缓存在内存中,以便应用获得更快的数据存取速度,不会将数据进行持久化。若数据库关闭,则数据不会保留。
L
li_juntao 已提交
11 12 13 14


- **分布式数据对象**

15
  分布式数据对象是一个JS对象型的封装。每一个分布式数据对象实例会创建一个内存数据库中的数据表,每个应用程序创建的内存数据库相互隔离,对分布式数据对象的“读取”或“赋值”会自动映射到对应数据库的put/get操作。
L
li_juntao 已提交
16

17
  分布式数据对象的生命周期包括以下状态:
L
li_juntao 已提交
18 19

  - **未初始化**:未实例化,或已被销毁。
L
li_juntao 已提交
20
  - **本地数据对象**:已创建对应的数据表,但是还无法进行数据同步。
21
  - **分布式数据对象**:已创建对应的数据表,设备在线且组网内设置同样sessionId的对象数>=2,可以跨设备同步数据。若设备掉线或将sessionId置为空,分布式数据对象退化为本地数据对象。
L
li_juntao 已提交
22 23 24 25 26 27 28 29


## 运作机制

分布式数据对象生长在分布式内存数据库之上,在分布式内存数据库上进行了JS对象型的封装,能像操作本地变量一样操作分布式数据对象,数据的跨设备同步由系统自动完成。

**图1** 分布式数据对象运行机制

L
li_juntao 已提交
30
![how-distributedobject-works](figures/how-distributedobject-works.png)
L
li_juntao 已提交
31 32 33 34 35 36 37 38




## 约束与限制

- 不同设备间只有相同bundleName的应用才能直接同步。

39
- 不建议创建过多的分布式数据对象,每个分布式数据对象将占用100-150KB内存。
L
li_juntao 已提交
40

41
- 每个分布式数据对象大小不超过500KB。
L
li_juntao 已提交
42 43 44 45 46

- 如对复杂类型的数据进行修改,仅支持修改根属性,暂不支持下级属性修改。
  
- 支持JS接口间的互通,与其他语言不互通。