Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

simple exchange should handle more orders than fit in the heap #4324

Open
1 task
dckc opened this issue Jan 19, 2022 · 4 comments
Open
1 task

simple exchange should handle more orders than fit in the heap #4324

dckc opened this issue Jan 19, 2022 · 4 comments
Assignees
Labels
Dapp & UI Support enhancement New feature or request performance Performance related issues resource-exhaustion Threats to availability from resource exhaustion attacks vaults_triage DO NOT USE

Comments

@dckc
Copy link
Member

dckc commented Jan 19, 2022

Describe the bug

@dtribble writes:

Something that I think has fallen off our radar for the persistence work is the multiple stages of actually using it. We need something like simple exchange that is order one. And we need vaults to be on disk and not in memory along with their seat and the corresponding structures in Zoe.

That leaves simple exchange. Let's track that here (and postpone it 'till after MainNet-1).

To Reproduce

(IOU a test for crashing the simple exchange by opening more orders than fit in the heap.)

Expected behavior

  • O(1) simple exchange that can handle an order book larger than the max heap size
@dckc dckc added enhancement New feature or request Zoe package: Zoe Dapp & UI Support Core Economy OBSOLETE in favor of INTER-protocol labels Jan 19, 2022
@dckc dckc added this to the Mainnet: Phase 1 - RUN Protocol milestone Jan 19, 2022
@dckc dckc added bug Something isn't working and removed enhancement New feature or request labels Jan 19, 2022
@dckc dckc changed the title handle more vaults than heap size; likewise simple exchange, Zoe seats vaults crash when heap size exceeded; likewise simple exchange, Zoe seats Jan 19, 2022
@Chris-Hibbert Chris-Hibbert added AMM Governance Governance Inter-protocol Overarching Inter Protocol labels Jan 19, 2022
@warner
Copy link
Member

warner commented Jan 19, 2022

This depends upon finishing #2004 and #4255, to provide the virtual/durable collections API in a form that Zoe/etc can use to hold Purses/Payments/other-high-cardinality-things on disk instead of in the heap.

(note that to allow these vats to be upgraded without losing their data, we also need #4325 and for Zoe/etc to store their durable collections in it)

@Tartuffo Tartuffo added the MN-1 label Jan 20, 2022
@erights erights added security-availability resource-exhaustion Threats to availability from resource exhaustion attacks performance Performance related issues and removed security-availability labels Jan 20, 2022
@dckc dckc removed their assignment Jan 21, 2022
@Tartuffo Tartuffo removed the MN-1 label Feb 7, 2022
@Chris-Hibbert
Copy link
Contributor

The Zoe part is #4383. I think @turadg is handling Vaults, though I don't see an issue. SimpleExchange is out of scope for MainNet-1.

@dckc
Copy link
Member Author

dckc commented Feb 8, 2022

The Zoe part is #4383.

cool.

I think @turadg is handling Vaults, though I don't see an issue.

#4345 covers it, for my money.

SimpleExchange is out of scope for MainNet-1.

I'm reducing the scope of this to SimpleExchange and postponing it past MainNet-1.

@dckc dckc changed the title vaults crash when heap size exceeded; likewise simple exchange, Zoe seats simple exchange crash when heap size exceeded Feb 8, 2022
@dckc dckc unassigned erights and dtribble Feb 8, 2022
@dckc dckc removed Zoe package: Zoe Core Economy OBSOLETE in favor of INTER-protocol Inter-protocol Overarching Inter Protocol Governance Governance AMM labels Feb 8, 2022
@dckc dckc removed this from the Mainnet: Phase 1 - RUN Protocol milestone Feb 8, 2022
@dckc dckc changed the title simple exchange crash when heap size exceeded simple exchange should handle more orders than fit in the heap Feb 8, 2022
@dckc dckc added enhancement New feature or request and removed bug Something isn't working labels Feb 8, 2022
@Tartuffo Tartuffo added this to the Mainnet 1 milestone Mar 23, 2022
@Tartuffo Tartuffo removed this from the Mainnet 1 RC0 milestone Sep 21, 2022
@rowgraus rowgraus added the vaults_triage DO NOT USE label Jan 3, 2023
@erights
Copy link
Member

erights commented Sep 16, 2023

To reiterate a point I saw you make elsewhere. The bound doesn't need to be O(1). If the bound is O(log**k N) (polylog) for reasonably small k, that's fine. That gives room to use a great variety of reasonable data structures that would be prohibited by an O(1) requirement.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Dapp & UI Support enhancement New feature or request performance Performance related issues resource-exhaustion Threats to availability from resource exhaustion attacks vaults_triage DO NOT USE
Projects
None yet
Development

No branches or pull requests

7 participants