-
Notifications
You must be signed in to change notification settings - Fork 90
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
chore: Orders excluded from auction due to missing price #2814
Comments
@fleupold the numbers are quite daunting (this graph represents the We have peaks of even +2k errors within two minutes span. |
I do think we should also find a way to consolidate the native price caches or in general revisit the logic with which the autopilot fetches prices. Usually, native prices for both the sell and the buy token of a market order should already be cached (as they were fetched by the api when the quote was computed & the order placement was validated). However, the autopilot doesn't yet have the native price for this token cached and will thus not include the order in the first auction (which by itself can delay settlement by 50s and make the quoted price go stale). Ensuring that every order is included in the first auction after it is placed will bring significant "time to happy moo" improvement imo. |
@fleupold doesn't the orderbook and autopilot use different cache? they both implement the same piece of code (since it is in the By having the prices in an independent service we will drastically improve the speed, according to what you said. This is really exciting. |
That is correct (and the root cause we should address in this issue beyond being able to simply price more tokens). Under the hood, most requests from both api and autopilot go via our shared egress or bff, which itself caches so in practice most queries should be very fast to return (assuming that api has "warmed" the cache). I'm not sure what the best approach is, but I think simply ignoring all tokens for which we don't have a record in the rust binary's cache by one auction is not good. Maybe we can have a "fast timeout" (100ms or similar) request which will be able to read from the later caches. |
…3/3 (#2909) # Description Instantiate the CoinGecko buffered and propagate the configuration. I set the default configuration to reasonable parameters, so we can try them out without needing to change the infra PR. # Changes - Instantiate the CoinGecko buffered instead of normal CoinGecko "object" - Propagate the configuration accordingly ## How to test 1. Regression tests ## Related Issues Fixes #2814
Background
A lot of "Time to happy moo" outliers spend at least part of their lifetime not being part of the auction due to "missing prices" in the autopilot.
Details
Other than very rare cases, we should not have any order entering the system for which we cannot compute the native price of its buy and sell token immediately.
Thus we should almost never see orders excluded from the auction for that reason. This task captures identifying the root causes of missing prices and reducing the amount of orders/time spent outside of the auction (in which case an order cannot be settled)
Example: https://explorer.cow.fi/orders/0x8986041be0bbe814c5ba965491a6540de59d65b0e8df81f2bb44d293d3131c144e345ebeff96471ace333bc3e04ab15c2ac02bd8669533d2?tab=overview
Autopilot logs: https://production-6de61f.kb.eu-central-1.aws.cloud.es.io/app/r/s/NscXq
Acceptance criteria
The text was updated successfully, but these errors were encountered: