SCHEMA CHANGE: add 'request_id' to nameplates table
This will be useful for the upcoming "persistent wormhole" mode. A client might send an allocation request, crash/terminate before receiving a response, then restart, then re-send the request. If the server sees a request with the same request_id a previous request, it can return the same nameplate. We'll need code changes on both sides to support this (nothing sends or checks request_id yet), but this lands the schema change early to reduce future disruption.
This commit is contained in:
parent
cca2f3cf13
commit
0d30101d7c
|
@ -18,6 +18,7 @@ CREATE TABLE `nameplates`
|
||||||
`mailbox_id` VARCHAR, -- really a foreign key
|
`mailbox_id` VARCHAR, -- really a foreign key
|
||||||
`side1` VARCHAR, -- side name, or NULL
|
`side1` VARCHAR, -- side name, or NULL
|
||||||
`side2` VARCHAR, -- side name, or NULL
|
`side2` VARCHAR, -- side name, or NULL
|
||||||
|
`request_id` VARCHAR, -- from 'allocate' message, for future deduplication
|
||||||
`crowded` BOOLEAN, -- at some point, three or more sides were involved
|
`crowded` BOOLEAN, -- at some point, three or more sides were involved
|
||||||
`updated` INTEGER, -- time of last activity, used for pruning
|
`updated` INTEGER, -- time of last activity, used for pruning
|
||||||
-- timing data
|
-- timing data
|
||||||
|
@ -27,6 +28,7 @@ CREATE TABLE `nameplates`
|
||||||
CREATE INDEX `nameplates_idx` ON `nameplates` (`app_id`, `id`);
|
CREATE INDEX `nameplates_idx` ON `nameplates` (`app_id`, `id`);
|
||||||
CREATE INDEX `nameplates_updated_idx` ON `nameplates` (`app_id`, `updated`);
|
CREATE INDEX `nameplates_updated_idx` ON `nameplates` (`app_id`, `updated`);
|
||||||
CREATE INDEX `nameplates_mailbox_idx` ON `nameplates` (`app_id`, `mailbox_id`);
|
CREATE INDEX `nameplates_mailbox_idx` ON `nameplates` (`app_id`, `mailbox_id`);
|
||||||
|
CREATE INDEX `nameplates_request_idx` ON `nameplates` (`app_id`, `request_id`);
|
||||||
|
|
||||||
-- Clients exchange messages through a "mailbox", which has a long (randomly
|
-- Clients exchange messages through a "mailbox", which has a long (randomly
|
||||||
-- unique) identifier and a queue of messages.
|
-- unique) identifier and a queue of messages.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user