-
Notifications
You must be signed in to change notification settings - Fork 100
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
Insert error when using client for different data structures or restarting server #294
Comments
Thank you very much for your issue and we will discuss it. |
The current utilization of the Mmap index remains relatively unstable. Switching to the new data structure is not always prompt, and reserved space may not be trimmed in a timely fashion when abnormal blocks are encountered. Consequently, this leads to errors exceeding the established file threshold. We recommend using FileIO for the corresponding deployment and development. |
thanks for your reply, but im still little confused about your description
|
Thank you for your questions, and I would be delighted to provide clarifications and answers to address your concerns:
If you have any further inquiries or uncertainties, please do not hesitate to ask questions. We are here to assist you! |
Thank you for your generous reply
In the code, I do find data files mmapped in memory, but i dont find index files be mmapped. Of course i can see index in memory as an ART and in disk as hint files, but in the code, they convert to each other(func As you say, ART and hint file have totally different structures or representation forms, so surely they cannot be mmapped. It is not a big deal. Maybe it's just a difference in terms between you & me.
Under my logic, since db does not care about specific structures, we should be able to operate various data structures easily in flydb cli, just like in redis. But in this issue, i failed to do this.
I fully understand it now, tks. So it seems irrelevant to what I'm confusing on right now.
im not sure about "reserved space before blocking". Do you mean blocking when |
At first, I thought you had to use mmapIO to cope with some special property of bitcask. Now after you give me more specific descriptions, i think the core of this issue is how to use mmap properly or some other design issues. As far as I'm concerned with reading and debugging this project, I wanna start by describing my understanding of the overall code logic to ensure that everyone is on the same page. In the initial stage of server, we init every structure service( Since structures have their own db instances, their activefiles and IOManagers are not the same. But the path of their active files are the same, while they dont share the same offset in MMapManager! It seems strange to me. Then my issue happens, when i execute Then i execute In conclusion, i'm confused about the design of service for structures. I think the right design should be one of the following:
|
Normally, data files with different data structures are separated, at least at the web level. Due to historical legacy reasons, cli has not been updated in a timely manner; In addition, we are considering consolidating all configuration data structure information into the same configuration file, and the cli may need to be changed to a case insensitive approach. Therefore, a major update may be required at the cli level. Mmap still has an issue of being incompatible with Windows. |
Glad to follow the further developments with committing code. |
The text was updated successfully, but these errors were encountered: