大对象

    每一个 LOB 记录拥有一个 OID,通过指定集合及 OID 可以访问一条 LOB 记录。在非分区集合及哈希分区集合中均可使用 LOB 功能。集合间不共享 LOB 记录。当一个集合被删除时,其拥有的 LOB 记录自动删除。

    LOB 记录的存储格式:

    每个 LOB 记录包含若干个分片。分片所占空间大小均为 LobPageSize(创建集合空间时指定,默认为 256 KB,请参考 )。在哈希分区中,LOB 记录的每一个分片会被按照 OID 加分片序号分散存储在相应的分区组中。其哈希空间与所属集合的哈希空间相同。

    目前 LOB 的存储格式为二进制类型。

    • 在创建LOB时,LOB对象不可读,也不可删除。
    • 在打开写LOB时,LOB对象不可读,也不可删除,可以并发写。并发写时需要按写入的数据段加锁并seek到加锁的数据段后写入数据,可以覆盖原有数据写入。并发锁定的数据段不能重叠。可查看各驱动API的lock和lockAndSeek接口。
    • 在删除LOB时,LOB对象不可读写。

    在 Sdb Shell 中将本地文件 mylob 上传至集合 foo.bar 中:

    在 Sdb Shell 中查看 LOB 记录及对应的 OID:

    在 Sdb Shell 中将集合 foo.bar 中的 OID 为 5435e7b69487faa663000897 的 LOB 记录删除: