Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Mar 24 18:06
    StevenLiekens commented #59
  • Mar 24 18:05
    StevenLiekens closed #59
  • Mar 24 18:05
    StevenLiekens commented #59
  • Mar 24 17:47
    StevenLiekens closed #58
  • Mar 24 17:47
    StevenLiekens commented #58
  • Mar 19 13:02
    Friesinator edited #59
  • Mar 19 13:01
    Friesinator opened #59
  • Mar 18 12:38
    StevenLiekens commented #58
  • Mar 15 15:19
    GHOSCHT commented #58
  • Mar 14 22:01
    Seeker1437 commented #58
  • Mar 14 20:08
    GHOSCHT commented #58
  • Mar 12 15:40
    StevenLiekens commented #58
  • Mar 10 15:46
    GHOSCHT opened #58
  • Apr 15 2018 16:43

    Ruhrpottpatriot on ServiceClient

    Remove superfluous compression … Add simple caching to Core proj… Move files into different folde… and 8 more (compare)

  • Apr 10 2018 21:09

    Ruhrpottpatriot on ServiceClient

    Add fluent api to create HttpRe… Fix Stylecop errors Remove dead code and 3 more (compare)

  • Mar 29 2018 13:11

    Ruhrpottpatriot on NetCore2.0

    Remove disabled and superseded … Delete unused leftover code fro… Move V1.Guild test to appropria… and 8 more (compare)

  • Mar 29 2018 12:17

    Ruhrpottpatriot on NetCore2.0

    Update .gitignore to exclude St… Add Api builder class (compare)

  • Feb 01 2018 09:33

    Ruhrpottpatriot on master

    Refactorize ServiceClient.GetHt… Merge pull request #57 from Kor… (compare)

  • Feb 01 2018 09:33
    Ruhrpottpatriot closed #57
  • Dec 27 2017 17:37
    Korjam opened #57
Robert Logiewa
@Ruhrpottpatriot
Need yout input on something:
With the new repositories I first do a check if the items are in the cache (which does a check if they are stale), if they are i return the cached items.
However: What to do about the method that returns all items?
Possible Solutions:
  • Change the cache to include a property that stores all possible IDs indipendent from the objects stored). Then when doing the check, I do a complement operation on the IDs and request only the missing ids
  • Always do a full a request against the API bypassing the cache
Robert Logiewa
@Ruhrpottpatriot
Thoughts?
Steven Liekens
@StevenLiekens
hmm
third option
Robert Logiewa
@Ruhrpottpatriot
I'm listening
Steven Liekens
@StevenLiekens
actually nvm
first option is the way to go
Robert Logiewa
@Ruhrpottpatriot
the first would mean, that we are doing a discover if the cache is empty.
and set the stale timer for it separately
Steven Liekens
@StevenLiekens
so basically
get all IDs at most every 5 minutes (or whatever the expires header value is)
and only fetch items that are not already in the cache or stale
right?
Robert Logiewa
@Ruhrpottpatriot
yeah, basically. Check if the ids are stale. If they are fetch a new set. Then do an intersect with the ids of stored objects in the cache not yet stale. Then query all missing ids
Steven Liekens
@StevenLiekens
missing ids + ...stale items?
or only missing ids?
Robert Logiewa
@Ruhrpottpatriot
yeah. Since if the item is stale it's not getting returned in the second set so it cannot be removed via the intersect
Steven Liekens
@StevenLiekens
you don't have to do the intersect since your code won't hit the network for items already in the cache
so it will just give you a bunch of references to objects already in the cache
Robert Logiewa
@Ruhrpottpatriot
sec

Let I be a set if Ids from discover, let S be a set of ids of objects in the cache.
Then we do the following:

if I == stale { update I }
S := cache.Ids.Where(i => i.NotStale)
Q := I \ S
call api with Q

We have to hit the cache to check if n > 0 items are stale. These items have to be requieried, since we can't guarantee them to be accurate, too

Steven Liekens
@StevenLiekens
accurate?
Robert Logiewa
@Ruhrpottpatriot
not outdated
Steven Liekens
@StevenLiekens
that could be a problem for commerce APIs
Robert Logiewa
@Ruhrpottpatriot
A repository does not automatically have a cache
Also: We always can set the expires header to the same timestamp as the query date
with that the items are always considered stale, effectively bypassing a cache
Steven Liekens
@StevenLiekens
first things first
the game client uses new header bytes for chat links
that needs to be fixed
Robert Logiewa
@Ruhrpottpatriot
yeah
Steven Liekens
@StevenLiekens
uhm
there are some commits in my fork that haven't made it back to you
it's a bit of a mess
Robert Logiewa
@Ruhrpottpatriot
do I need to pull some commits?
Steven Liekens
@StevenLiekens
I'm thinking
this commit was a mistake Ruhrpottpatriot/GW2.NET@a0782a5
because that change was supposed to be done on the maintenance branch and then merged
Robert Logiewa
@Ruhrpottpatriot
ugh
do a revert commit
Steven Liekens
@StevenLiekens
I was thinking about dropping it entirely
Robert Logiewa
@Ruhrpottpatriot
why?
Steven Liekens
@StevenLiekens
because it's still the tip of the branch
so you can drop it without rewriting commit IDs
Robert Logiewa
@Ruhrpottpatriot
than do that
I havn't pulled yet
Steven Liekens
@StevenLiekens
@Ruhrpottpatriot what is the last commit ID that you pulled?
Steven Liekens
@StevenLiekens
I want to reset to a state where everything was still good
Steven Liekens
@StevenLiekens
wtf git :(