Skip to content

Limitations and Known Issues

Kinan Bab edited this page Apr 27, 2023 · 2 revisions

K9db is a prototype proof-of-concept software validating that compliance-by-construction is practical and achievable.

Our prototype has several limitations, some of which are in the works:

  1. We use determinstic encryption for both keys and values. This has leakage. Keys must be encrypted in a consistent way to enable consistent lookups. However, values can be encrypted with randomized nonces. We are working on several improvements to our encryption schemes.
  2. We do not support SQL transactions.
  3. We do not support multi-column primary keys, multi-column foreign keys, and foreign keys targeting a non-primary key column.
  4. We do not enforce UNIQUE and NOT NULL constraints.
  5. We have limited support for DATETIME.
  6. We do not support altering the schema after creation, we also do not support dropping tables.
  7. We support the basic core of SQL. Using unsupported syntax or features will result in an unsupported error.

Furthermore, we are currently aware of two bugs of significance:

  1. Our planner creates incorrect plans for cached queries where the key is projected out (e.g. SELECT col2 FROM table WHERE col1 = ?).
  2. OWNS foreign keys forming chains of 2 or longer are sometimes mishandled during schema creation.