Concurrent querying and indexing data
In this section, we will present the methodology for how to continuously serve your client’s requests while still being able to update, delete, or add new data to your database. This is a common requirement in the industry, but it is not trivial to achieve. The challenges here are around maintaining the vector index actualized with the most recent data, while also being able to update that data in an atomic manner, but also doing all these operations in a scalable, containerized environment. With the Jina framework, all of these challenges can be easily met and overcome.
By default, in a Jina Flow, you cannot both index data and search at the same time. This is due to the nature of the network protocol. In essence, each Executor is a single-threaded application. You can use sharding to extend the number of copies of an Executor that form an Executor group. However, this is only safe for purely parallel operations, such as encoding data...