[raft/memstore] Add rid memstore - #1534
Conversation
ac14b59 to
f6a1b38
Compare
880e18a to
316e965
Compare
mickmis
left a comment
There was a problem hiding this comment.
- None of those are concurrency-safe, that is expected, right? Maybe clarify that in the doc of the memstore.
- Is it planned that this is validated somehow by running the prober test suite against it in the CI? It not, it shoudl
This was stated in a previous PR and is in the code here: https://github.com/interuss/dss/blob/master/pkg/memstore/store.go#L3 Is that enough?
It's not expected for the memstore directly to works again the prober test suite: it mean to be internal only and not used directly via HTTPs call (especially since it's not concurrency-safe, on purpose). Indirect validation (as underlying storage for the raft implementation) is however done in #1538 (when everything is implemented, so tests pass). |
OK was not aware of that. Sounds good to me, with just one thing: could you move on
👍 |
8a9cbd0 to
bcdea4e
Compare
fb0a005 to
2ce6182
Compare
Co-authored-by: Mickaël Misbach <mickael.misbach@orbitalize.com>
|
|
||
| // liveSubscriptionsInCells yields the non-expired subscriptions touching cells, | ||
| // optionally restricted to a single owner. | ||
| func (r *repo) liveSubscriptionsInCells(cells s2.CellUnion, owner *dssmodels.Owner) iter.Seq[*subscriptionRecord] { |
This PR is part of a new chain, implementing memstore.
#1525 (Generic raftstore) -> #1527 (Base memstore) -> #1529 (Aux memstore) -> #1530 (Snapshots) -> #1534 (Rid memstore) -> #1535 (Correct use of now) -> #1539 (Checkpoint) -> #1542 (Scd memstore) -> #1528 (First PR with raft using memstore)
It adds rid memstore, with snapshots.
Tests (minus snapshots & transaction & initialization) are identical to SQL tests and form a big part of this PR. They can be checked locally with e.g.
diff pkg/rid/store/memstore/identification_service_area_test.go pkg/rid/store/sqlstore/identification_service_area_test.go'Strange' behavior with limits has been implemented as-is.
Cell index/optimization is reserved for a future PR to keep this one as simple as possible.