database-distributedobject-overview.md 2.1 KB
Newer Older
L
li_juntao 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
# 分布式数据对象概述

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


## 基本概念

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


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

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

  分布式数据对象的生命周期包括3个状态:**未初始化****本地数据对象****分布式数据对象**

  - **未初始化**:未实例化,或已被销毁。
  - **本地数据对象**:已创建对应的分布式内存数据库,但是还无法进行数据同步。
  - **分布式数据对象**:已创建对应的分布式内存数据库,且设备在线(设备数=2),可以跨设备同步数据,若设备掉线,分布式数据对象退化为本地数据对象。


## 运作机制

分布式数据对象生长在分布式内存数据库之上,在分布式内存数据库上进行了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 39 40 41 42 43 44 45 46




## 约束与限制

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

- 不建议创建过多分布式对象,每个分布式对象将占用100-150KB内存。

- 每个对象大小不超过500KB。

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