-
Type:
Task
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
Storage Engines - Foundations
-
None
-
8
This is a postmortem action for HELP-89290.
Recently, we’ve had a couple of issues caused by table ID conflicts (another one is BF-41361). We should investigate whether there’s a comprehensive way to test table IDs and detect cases where multiple tables (created internally by WT or by a user) receive the same table ID.
One potential idea is to check this on the PALite side. It might be possible to maintain a hash set of table IDs there and trigger a failure with a meaningful error message if we detect an attempt to create a table with a table ID that already exists.
However, I’m not sure whether there’s a clear point on the PALI side where we can distinguish between creating a new table and finding an existing one. Currently, AFAIS, `pl_open_handle` always creates a table if it doesn’t exist or returns the existing one otherwise. I’m wondering whether it would be a cleaner design to have `pl_create_handle` and `pl_find_handle` as separate APIs.
Another thing is that it'll be great to have this check in both WT and MognoDB PALI implementation.