New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Request for Compatibility with Open-Source Search Engines and JSON Processing Libraries #1229
Comments
hi, what's the size of your workload? are you hosted on the cloud or use on-prem? |
Thank you for your prompt response. I'm currently hosting my application on Alibaba Cloud, specifically using Kubernetes with a Redis cluster made up of 3 worker nodes. Each node has 8 CPU cores and 32 GB of memory. I have both RediSearch and RediJSON enabled on this setup. As for the workload, my application handles approximately 2000 keys per second through the JSON.SET command, with each key being around 2000 bytes in size. Each key has a lifespan of around 8 minutes in Redis. I hope this additional information provides a clearer picture of my current setup and requirements. Please let me know if there are any other details you need. |
Thanks!
Please note that Dragonfly does not support cluster configurations. |
Thank you for your reply. Here are the answers to your questions:
As for the cluster configuration, my main focus is on improving write and query efficiency, so whether or not Dragonfly supports clustering is not a crucial factor for me. The key is performance. Currently, the high write load on my application is resulting in response times that exceed 1 second per user's query request, while our requirement is to respond to each user's query request within 500ms. If necessary, I am willing to scale up the cluster, but the single-threaded nature of Redis makes me feel that it's not utilizing the machine's performance to the fullest. Therefore, I am looking for a more optimal solution. I hope this provides the necessary details for you. Please let me know if there's anything else you need. |
one last question. Can you put here an example ft.search query that you run on your database? fyi, we currently do not support 500ms is a lot! |
According to our actual operation, the response of a single ft.search is often just a few tens of milliseconds. However, because a single user needs to return 8-20 numbers, each number is called ft.search in parallel. As long as one of the numbers (slots) encounters the worst case and needs to query multiple times according to the designed query priority, then the time returned to the user has to be calculated based on the longest time of one of the slot number queries plus the network return time. Although Redis Cluster provides horizontal scaling to improve write speed and query performance, personally, I do not favor this architecture philosophy that seems to waste machine resources. Therefore, I am looking for a better solution to implement the User Scenario. |
@dwzkit please dm me on discord |
Duplicate of #431. Please, see here for updates. |
Did you search GitHub Issues and GitHub Discussions First?
Yes
Is your feature request related to a problem? Please describe.
I am considering transitioning to your impressive Dragonfly data store for my application due to the performance benefits and vertical scalability it offers.
My application involves a workload that retrieves 2000-3000 keys per second, each with a short lifespan of around 8 minutes. With my current setup using Redis, the write pressure has been significant and has affected the performance of other functionalities like search and JSON processing, which are implemented using RediSearch and RediJSON respectively.
Describe the solution you'd like
Given the high throughput and efficient memory usage of Dragonfly, I believe it could be a better fit for my application. However, I also need to maintain the search and JSON processing functionalities that I currently have with RediSearch and RediJSON.
As Dragonfly is fully compatible with Redis at the API level, theoretically any search engine or JSON processing library that can use Redis as a data source should be able to use Dragonfly as well. However, I'm unable to find concrete information on this, and testing with open-source search engines like Elasticsearch, Apache Solr, Apache Lucene or JSON processing libraries would require a significant investment of time and resources.
Describe alternatives you've considered
Hence, I am writing to kindly request if you could consider providing compatibility with open-source search engines and JSON processing libraries, or recommending some that you know work well with Dragonfly. This would greatly help users like me who require powerful search and JSON processing functionalities in addition to the high-performance data storage that Dragonfly offers.
Additional context
Thank you for considering my request. I look forward to your response and any suggestions you might have.
The text was updated successfully, but these errors were encountered: