leveldb中的键是任意二进制序列。客户端实现比较器以定义键之间的顺序。leveldb 的默认比较器等效于strncmp
。Chrome的Indexed DB存储区的比较器更为复杂。如果尝试将leveldb实例与比较器创建的比较器不同,则将以随机的顺序观察密钥,则插入将不可预测或导致损坏- 狗和猫在一起生活,歇斯底里。因此,leveldb可让您命名比较器(持久化到数据库)以帮助检测和避免此错误,这正是您所看到的。Chrome的代码将其索引数据库的比较器命名为 “ idb_cmp1”。
要检查Chrome之外的Chrome的索引数据库leveldb实例之一,您需要实现一个兼容的比较器。该代码位于Chrome的实现中,位于content / browser / indexed_db / indexed_db_backing_store.cc中,并且请注意,不能保证此版本在各个版本中均已解决。(当然,除了向后兼容之外)