Distributed Meilisearch #617
Replies: 8 comments 2 replies
-
Overview of setup:
yes, especially multi-region.
reads more important, writing can happen from single place.
we use meilisearch in combo with DynamoDB, so meilisearch's index is always "eventually consistent". Indexing also takes time even when data sent to meilisearch, so eventually consistency is fine. It's search engine not main database, at least in my view. Caching layer. So it helps to make search patterns but once data is found and we need to do with it something, those queries go to main database, which is dynamodb in my case. In other cases it may be other like sql or mongo.
Yes, that's all the point. I run product which use base in Asia, EU and USA. I want to have all edges covered with low-latency search queries. Backend is already hosted in multiple regions. Main database - dynamodb is running at global table setup, so it syncs data between those regions to have local connection. Though important point is i need it running in my local network. So self-hosted.
I have draft of micro service which takes in node's credentials - host, api key and this puts node to the pool. Then service takes in data modification requests, like index create/remove, document set/remove. Those actions are in queue and service applies those actions to nodes. It also keeps all the history of actions so if you would add new node, it would apply all actions on that node too and after some time it would get into sync too. Node of meilisearch is hosted in local network close to API's backend and backend is making direct queries to meilisearch to get results. This service is not yet running in production env though but it's pretty small & simple. Just keeps track of actions applied on meilisearch nodes & applies those actions on any new node to keep all nodes up-to-date. |
Beta Was this translation helpful? Give feedback.
-
Hey everyone! Here is some update on that; We are currently experimenting with advancements on that subject, and we may be able to share a prototype soon. For now, here is what we are headed at:
cc @irevoire |
Beta Was this translation helpful? Give feedback.
-
Answers to your questions above:
Other thoughts
|
Beta Was this translation helpful? Give feedback.
-
Hey. We have a search use case for a large scale enterprise SAAS application. We currently use typesense since meili search does not have any self deployable HA configuration, but would consider switching to meili search since typesense has issues on k8s. Curious if there is any timeline on this as there have been no updates in 8 months. Do you need high availability for read ops?
Do you need high availability for write ops?
What do you feel about eventual consistency? Is it critical that the whole cluster returns the same document representation no matter the node being queried?
Is there a need for geo-replication? If so, please share more context!
|
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
Do you need high availability for read ops? Do you need high availability for write ops? What do you feel about eventual consistency? Is it critical that the whole cluster returns the same document representation no matter the node being queried? Is there a need for geo-replication? |
Beta Was this translation helpful? Give feedback.
-
Do you need high availability for read ops? Yes. Do you need high availability for write ops? No. What do you feel about eventual consistency? Is it critical that the whole cluster returns the same document representation no matter the node being queried? Yes. Is there a need for geo-replication? If so, please share more context! My primary interest is having users around the world experience very fast search. Currently users outside of NA get a slow search experience. |
Beta Was this translation helpful? Give feedback.
-
Do you need high availability for read ops? Yes. Do you need high availability for write ops? No. What do you feel about eventual consistency? Is it critical that the whole cluster returns the same document representation no matter the node being queried? No. Eventual consistency is fine, it should recover at some point but temporary different results are no problem. Is there a need for geo-replication? If so, please share more context! I personally think if there is support for HA for read ops then geo-replication should be included in that. There will be different instances and where exactly they run does not matter (unless I misunderstand what geo-replication means in this context). |
Beta Was this translation helpful? Give feedback.
-
Hello everyone 👋
We've been asked to implement a way to distribute Meilisearch out of the box for a while now.
We had to delay all related questions to finish a major and stable Meilisearch release, akka v1.0; now that we've done it, I'd like to reboot that subject with the interested parties here to understand your needs better and determine where we should go and what's feasible regarding some prior need we may identify.
To start this topic, I would like to ask you a list of questions:
If you want to discuss it less formally, you can come to our Discord forum dedicated to this topic and have a chat with us!
Beta Was this translation helpful? Give feedback.
All reactions