"There can be a slight delay before new or changed records are visible to queries"

How long is this “slight delay” typically? Can someone please provide an estimate?

can you provide some additional context?

@heliumtrope When I upsert to Pinecone serverless, I notice that the upserted vectors aren’t immediately retrievable. According to the docs, “there can be a slight delay before new or changed records are visible to queries”. I’d like a ballpark estimate on how long this delay is. Is it 1 second? 2 seconds? 10 seconds? Over a minute? I have no idea. It would be nice to have an estimate to build around this constraint.

did you try checking the vector counts returned by the describe_index_stats() operation to see if they have been updated?

I’m sure I can write a script to measure the delay myself, but I’d like an official estimate. Would be helpful to have this estimate noted in the docs in addition to vague language like “slight delay”

1 Like

@drainedouticedout Right now it’s tricky to answer this question as Serveless is in public preview and we are making improvement in this area daily.

To give you a move direct answer it depends on the workload, if you’re doing a bulk load into the system it will be larger than when updating a few indexes.

We have recently updated the documentation to include Serverless Architecture, which I think you will find interesting.

If this is having an impact on your application please let us know!

@patrick1 My application, like many others, frequently runs into the use-case where files are uploaded and “used” shortly afterwards. For example, take a summarization use-case. People upload files and want to summarize them based on k-means clustered vectors. This was not a problem pre-serverless. But now it is. I have added a manual timeout in my application to wait 5 seconds before attempting to retrieve. This is far from ideal.

Typically when working with a database, you expect that when you upsert something into the database and get an OK response back from the DB server, that your records are available and ready to be queried. You don’t expect that you have to wait or even worse, do some kind of while loop to “describe” the index to verify your records are available. This is not the case with Pinecone Serverless. It’s a shame because it used to work fine before I migrated to serverless.

@drainedouticedout this is actually really common with eventually consistent databases like Pinecone and MongoDB. But as Patrick said, serverless is still in public preview, so you should expect slight hiccups like this while we finalize some things. We’re working to make data freshness as close to immediate as we can.

Keep in mind, though, that, barring a future release which adds transactions and locks, you should continue to expect some slight delay in freshness, even if it’s measured in single digit milliseconds.

1 Like