vespa-engine / vespa

AI + Data, online. https://vespa.ai
https://vespa.ai
Apache License 2.0
5.47k stars 584 forks source link

Deploying application with just schema change is taking aroung 3-4 mins #20989

Closed 107dipan closed 2 years ago

107dipan commented 2 years ago

Describe the bug We have a vespa setup with one config nodes, 8 container nodes and 18 content nodes using K8s. We are trying re-deploying the application package after updating the schema with one field added to an existing schema. But this process is taking around 4-5 mins. Is there any way we can reduce the time.

To Reproduce Steps to reproduce the behavior:

  1. Deploy an application with a schema which includes fields with attribute and indexing.
  2. Add one field to the schema and deploy the application using prepare and activate.

Expected behavior Is there any way to reduce the time taken to add a field to an existing schema.

Screenshots If applicable, add screenshots to help explain your problem.

Environment (please complete the following information):

Vespa version We used vespa:latest tag in the docker image

Additional context Add any other context about the problem here.

bratseth commented 2 years ago

You are asking because you consider using this directly towards users interactively? There could be some things that could be sped up somewhat, but it's never going to be a good fit for that. Schema changes should be viewed more like a code change both in terms of resources spent and risk profile.

107dipan commented 2 years ago

Hey,

We observed that response time was slower when we use map fields instead of normal fields. We thought instead of using map fields we can update the schema every time a new field is introduced if the schema update process is fast.

Thanks , Dipan

bratseth commented 2 years ago

We observed that response time was slower when we use map fields instead of normal fields.

No, that isn't true. In any case the point of using a map here is that you don't need to update the schema and therefore there is no delay.

107dipan commented 2 years ago

Just wanted to clarify I mean search response time in the previous post and not the time taken to deploy application ackage. Reference - https://github.com/vespa-engine/vespa/issues/19441

Thanks!

bratseth commented 2 years ago

Yes, there it could be a difference, depending on what you do precisely, whether the fields have fast-search etc.

jobergum commented 2 years ago

Note that in https://github.com/vespa-engine/vespa/issues/19441, for the second query, you use regular expression in the query (using matches instead of contains).

107dipan commented 2 years ago

Got it... That cleared up my issue.

Thanks a lot!