Repository navigation
Conversation
- Let StageOptions.batchSize take a value per source kind (endpoint,
imported); the pipeline tells each stage which kind it reads
- Default search stages to 100 roots per batch for an imported dump and 10
for a live endpoint
- Add tuning and tuningByType to searchIndexerPipeline
- Read EXTRACTION_BATCH_SIZE, EXTRACTION_CONCURRENCY and EXTRACTION_TUNING in
the indexer
- Add num-simultaneous-queries to the QLever server options; the indexer
sets it to the busiest stage’s concurrency, up to 4
BREAKING CHANGE: IndexerConfig has a required extraction field; a config
built by hand must add one (extraction: { byType: {} } keeps the defaults).
Search stages that set no batchSize now batch 100 roots from an imported
dump; pass batchSize: 10 to keep the old size.
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fix #1065
Extraction put 10 roots in each CONSTRUCT, whatever the source. On a QLever import, 100 roots per query ran the
CreativeWorkstage 5.5 times faster. A live endpoint may be shared with other users and fail on big queries (#838), so it keeps 10.@lde/pipelineStageOptions.batchSizecan take one value per source kind:{ endpoint, imported }.RunOptions.source. It isimportedwhen the resolver (or the fallback) imported a dump, andendpointotherwise.sourceForswaps in another distribution counts asendpoint. AsourceForthat hands back the resolved distribution unchanged keeps its kind;registrySourcedoes that for afile:dataset. A chained child counts asimported, because it reads its parent's output from a store the pipeline serves itself.@lde/search-pipelinesearchStagesdefaultsbatchSizeto{ endpoint: 10, imported: 100 }.searchIndexerPipelinehas two new options:tuning(batchSize,maxConcurrency) applies to every type, andtuningByTypeoverrides it per type name. The per-type override is merged field by field. A name the schema doesn't declare throws.@lde/search-indexerEXTRACTION_BATCH_SIZE,EXTRACTION_CONCURRENCYandEXTRACTION_TUNING(JSON, keyed by type name).--num-simultaneous-queriesset to the busiest stage's concurrency, capped at 4. The memory default stays at 4G, which the issue measured to be enough even at-j 8.@lde/sparql-qleverQleverServerOptionsgainsnum-simultaneous-queries.Breaking:
IndexerConfighas a new requiredextractionfield. Search stages that set nobatchSizenow batch 100 roots from an imported dump.To decide:
EXTRACTION_BATCH_SIZE=200also sends 200-root queries to the registry.-j 4, queries queue at QLever while its 30 sdefault-query-timeoutstill runs. The issue's harness ran these sizes without timeouts, but I haven't re-run it.