Giter Club home page Giter Club logo

osu-elastic-indexer's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

osu-elastic-indexer's Issues

Elasticsearch 7 compatibility

The form of some of the queries currently being used won't work with ES7+ (especially the index_meta ones).
This metadata should probably be moved into the high_score indices themselves; the metadata queries can be replaced by listing and filtering for matching indices.

Investigate growing resources usage until crash

Running pppy/osu-elastic-indexer:2023.823.0 in production, we are observing CPU and RAM usage growing on every instance, until it hits a StackExchange.Redis.RedisTimeoutException and crashes. This happens about every 30 minutes.

image

Store in-progress schema versions in redis

Not just the current schema used, but any versions being reindexed as well.

The use case for this is during a reindex, if a score with an id lower than the current indexing progress gets deleted, it will get missed since other processors pushing to the queue will still be pushing to the old queue.
This should let processors know there is more than one queue to push to.

Document/improve method to index scores

Maybe also allow pushing just the id? So it's easier to push scores for reindexing. Mainly for user restriction/unrestriction and deleting scores on beatmapset state change (and testing).

Also the current json being pushed doesn't match the score data structure anymore so either the indexer need to deal with incomplete json structure or everything else pushing scores for indexing will need to sync their json as needed.

Convert scores may need to be marked

Needed for beatmap pack completion state check as it only counts plays on non-converted difficulties. Splitting search per ruleset is possible but that means one query per ruleset will be run for the check.

beatmapset_id would also be nice although not strictly needed.

`--switch` to new version may miss scores

osu-queue-score-statistics will push to the queue externally. It will query osu-queue:score-index:{AppSettings.Prefix}schema to get the version.

This version is set after an all command completes. There may be a few scores missed between the time during which the all command is iterating scores and when the schema version is updated.

Easy solution is to do one final index operation after switching the schema version, to catch any new scores which may have been missed.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.