Ответ 1
Ключами в leveldb являются произвольные двоичные последовательности. Клиенты реализуют компараторы для определения порядка между ключами. компаратор по умолчанию для leveldb является чем-то эквивалентным strncmp
. Хром-компаратор для индексированного хранилища БД более сложный. Если вы попытаетесь использовать экземпляр leveldb с другим компаратором, чем он был создан, вы будете наблюдать за клавишами в кажущемся случайном порядке, вставка будет непредсказуемой или вызовет коррупцию - собаки и кошки, живущие вместе, массовая истерия. Таким образом, leveldb позволяет вам называть компаратор (сохраняется в базе данных), чтобы помочь обнаружить и избежать этой ошибки, и это то, что вы видите. Хром-код называет его компаратор для индексированного DB "idb_cmp1".
Чтобы проверить один из экземпляров DBddb с индексом Chrome, за пределами хрома, вам понадобится реализовать совместимый компаратор. Код живет в реализации Chrome в content/browser/indexed_db/indexed_db_backing_store.cc - и обратите внимание, что нет гарантии, что это исправлено в разных версиях. (Помимо обратной совместимости, конечно)