ESOUI

ESOUI (https://www.esoui.com/forums/index.php)
-   General Authoring Discussion (https://www.esoui.com/forums/forumdisplay.php?f=174)
-   -   Guild History of sales changes. Discussion and solutions (https://www.esoui.com/forums/showthread.php?t=8602)

Rhyono 06/19/19 02:32 PM

Even if they didn't do the UI aspect, that method of data retrieval would be a lot lighter than currently.

Philgo68 06/19/19 04:26 PM

Guild Sales History
 
Quote:

Originally Posted by ZOS_ChipHilseberg (Post 38443)
The changes to the guild history API allowed us to control the frequency of addon requests to stabilize the load in the short term. While the cooldown on the requests is something that we can tune as needed, the present timings are one new data request and one old data request per category each time you log in (100 entries per request). And then an additional new request every 30 minutes and an additional old request every 30 seconds. This will slow down mining all of the past entries, but will allow us to keep providing data while a better long-term solution is pursued.

Is there an API to ask the server what the cooldowns are at any given time so we can avoid asking during our cooldown? How are the cooldowns enforced? (No response at all, A "no more data" response, A "you are on cooldown" response, etc.)

What happens in guilds where there are more than 100 new entries in a category in 30 minutes?

ZOS_ChipHilseberg 06/20/19 08:35 AM

Quote:

Is there an API to ask the server what the cooldowns are at any given time so we can avoid asking during our cooldown? How are the cooldowns enforced? (No response at all, A "no more data" response, A "you are on cooldown" response, etc.)
RequestGuildHistoryCategoryNewest and RequestGuildHistoryCategoryOlder will return false in the case of being on CD. We don't push the server CD to all clients so the client only knows the server CD when it makes a request. There is virtually no cost to calling these APIs all the time since we would just check the CD value on the client and bail.

Quote:

What happens in guilds where there are more than 100 new entries in a category in 30 minutes?
Each time it will grab the next 100 entries working from the most recent event it last received towards now. If there are more than 100 then those that were left out will come with the next request.

Sorondor 06/20/19 11:59 AM

Quote:

Originally Posted by ZOS_ChipHilseberg (Post 38443)
The changes to the guild history API allowed us to control the frequency of addon requests to stabilize the load in the short term. While the cooldown on the requests is something that we can tune as needed, the present timings are one new data request and one old data request per category each time you log in (100 entries per request). And then an additional new request every 30 minutes and an additional old request every 30 seconds. This will slow down mining all of the past entries, but will allow us to keep providing data while a better long-term solution is pursued.

If I understand this correctly, if a single trade guild averages 1 sale/minute (mine averages close to this) then it would take a minimum of 6.5min after log on to catch up on sales data from the last 24 hours? (200 items at log on plus 13 "old" retrieval requests every 30 seconds thereafter)

ZOS_ChipHilseberg 06/20/19 03:32 PM

Quote:

Originally Posted by Sorondor (Post 38459)
If I understand this correctly, if a single trade guild averages 1 sale/minute (mine averages close to this) then it would take a minimum of 6.5min after log on to catch up on sales data from the last 24 hours? (200 items at log on plus 13 "old" retrieval requests every 30 seconds thereafter)

That is correct.

Verbalinkontinenz 06/21/19 12:33 AM

Any ideas on future plans?

Sordrak 06/21/19 01:05 AM

Quote:

Originally Posted by ZOS_ChipHilseberg (Post 38443)
The changes to the guild history API allowed us to control the frequency of addon requests to stabilize the load in the short term. While the cooldown on the requests is something that we can tune as needed, the present timings are one new data request and one old data request per category each time you log in (100 entries per request). And then an additional new request every 30 minutes and an additional old request every 30 seconds. This will slow down mining all of the past entries, but will allow us to keep providing data while a better long-term solution is pursued.

Hey ZOS_ChipHilseberg

Nice to getting some answers here. I'm still a bit confused about everything that is going on.

Could you please explain how the different things are tied together respectively would you mind explaining if and how the issues described above (guild history) are related to guild chat and pvp campaign status?

As far as I understood the bad performance, like guild chat delays was related to the history, right?
It might not be, and therefore some explanation would be great. Thanks. :)

ZOS_ChipHilseberg 06/21/19 12:26 PM

Quote:

Originally Posted by Verbalinkontinenz (Post 38480)
Any ideas on future plans?

Not to share right now but we're working on it.

Philgo68 06/30/19 10:03 AM

Quote:

Originally Posted by ZOS_ChipHilseberg (Post 38488)
Not to share right now but we're working on it.

It would be super handy (and reduce calls for server data in the long run) if RequestGuildHistoryCategoryOlder and RequestGuildHistoryCategoryNewest had a "start time" parameter. "Give me the 100 records newer than timestamp 1561862419" Right now when people don't log in for a few days they have to sit on one character, without a crash or /reloadui, for a few hours to get in history far enough to get that data. If they don't make it back for whatever reason, it has to start digging from scratch. With a "start time" parameter, we could start looking back in history and store those records, and then we would not have to dig back that far again, after a /reloadui or switching characters.

merlight 06/30/19 10:33 AM

Quote:

Originally Posted by Philgo68 (Post 38536)
It would be super handy (and reduce calls for server data in the long run) if RequestGuildHistoryCategoryOlder and RequestGuildHistoryCategoryNewest had a "start time" parameter. "Give me the 100 records newer than timestamp 1561862419" Right now when people don't log in for a few days they have to sit on one character, without a crash or /reloadui, ...

Actually it's without a crash or logout. /reloadui, as well as switching characters without logging out, doesn't discard downloaded history (and also doesn't refresh cooldowns). But that's a nitpick. A start time parameter would help a ton regardless. However, you'd then also need a way to tell there's a gap in downloaded history. If another addon requests Newest since an hour ago, and your addon then requests Older since 5 days ago... you need to be able to tell where the gaps are.

Sorondor 06/30/19 11:57 AM

Quote:

Originally Posted by merlight (Post 38537)
/reloadui, as well as switching characters without logging out, doesn't discard downloaded history

This is quite true, thankfully, otherwise my bandaid of manually downloading sales history before enabling MM (requiring /reloadui) wouldn't work. This characteristic has saved me so many hours.

Marazota 07/25/19 04:28 AM

from last PTS patch

Changed the guild history update mechanism from client polling to server-initiated updates to help address performance issues. The history will update approximately once per minute.

Baertram 07/25/19 06:37 AM

The before/above discussed API functions were changed as well due to this change in guild history:

Quote:

basically RequestGuildHistoryCategoryNewest is gone and RequestGuildHistoryCategoryOlder is now RequestMoreGuildHistoryCategoryEvents
and new events are sent to you on a timer
Also found these reovals from a difference between teh API txt files:
Lua Code:
  1. --Removed
  2. * HasGuildHistoryCategoryEverBeenRequested(*integer* _guildId_, *[GuildHistoryCategory|#GuildHistoryCategory]* _category_)
  3. ** _Returns:_ *bool* _hasEverBeenRequested_
  4. * RequestMoreGuildHistoryCategoryEvents(*integer* _guildId_, *[GuildHistoryCategory|#GuildHistoryCategory]* _category_)
  5. ** _Returns:_ *bool* _requested_

Marazota 08/20/19 11:22 PM

guild history disabled again


Sorondor 08/21/19 06:07 AM

Only the guild history API that allows addons to request more data appears to be disabled. Fetching sales history manually still works fine.

Note that ZOS has significantly improved the performance while fetching the history manually.

Baertram 08/21/19 03:28 PM

Quote:

Originally Posted by Sorondor (Post 38961)
Only the guild history API that allows addons to request more data appears to be disabled. Fetching sales history manually still works fine.

Note that ZOS has significantly improved the performance while fetching the history manually.

Maybe because the addon history is offline and the server now got time to concentrate on the manual requests:rolleyes:

Sorondor 08/21/19 03:49 PM

Quote:

Originally Posted by Baertram (Post 38962)
Maybe because the addon history is offline and the server now got time to concentrate on the manual requests:rolleyes:

Whatever the reason, it's much improved, even after 3 days without any logins. Just sharing my experience in case it may benefit others.

Marazota 08/23/19 01:39 PM

guild history API turned ON again
also
Addons
Addon requests for Guild History now have a longer cooldown when the game is under heavy load.

interesting how to determine this CD

Baertram 08/23/19 02:06 PM

Quote:

Originally Posted by Marazota (Post 38991)
guild history API turned ON again
also
Addons
Addon requests for Guild History now have a longer cooldown when the game is under heavy load.

interesting how to determine this CD

I don't think we will be able to determine this cooldown. The addons will request the data, the data will not be retrieved. "Hammering" (trying a lot) to get the data again will not help and just increase the payload on the server so the cooldown will increase, I guess.


All times are GMT -6. The time now is 08:27 AM.

vBulletin © 2024, Jelsoft Enterprises Ltd
© 2014 - 2022 MMOUI