-
Notifications
You must be signed in to change notification settings - Fork 2.9k
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
nsqd: fix the issue of deferred data persistence #1454
base: master
Are you sure you want to change the base?
Conversation
…h old data storage methods)
… 1137 mode is compatible with the original data)
@mreiferson Hello, do you think this restart retention delay time plan is feasible? Or do you have any better suggestions? |
Hi, thanks for submitting this. I looked back over #1170. While it had some issues in terms of the specific implementation, I think overall it has a more generic forward compatible design, rather than specifically modifying the on-disk format to support just the issue of deferred persistence. In other words, if we're going to change the on-disk format, since this will be the first time we've basically ever done that, we should establish a new format that allows us to properly version and expand capabilities while being able to better preserve forward and backward compatibility. |
Another issue is that when we read tasks from a topic and are unable to consume them and throw them back into the queue, it slows down the loading speed of tasks from the disk into memory. We only read the disk when there are no tasks in memory. Do we need to change it to automatically load tasks from the disk into memory when the memory queue is not full. |
Fix the issue of deferred data persistence loss(Note: Incompatible with old data storage methods)
This is a new data structure storage method, perhaps the method with flag bits below is easier to expand
For disk persistence we can perhaps try to do forward compatible iterative updates using flag bits
The later updates refer to the mode of PR 1137, which is Forward compatibility with the old data