I did not understand what it’s mean? is it alway run everyday? Because when i run query , the response is too slow (up to 2s for simple query). I think task “Rolling up…” may be effect to the perfomance.
I use server with 32GB RAM and 300GB HDD
yes. i have injected a lot of data (about 5 millions predicate data) and my program has finished this job, but now, i still see Dgraph Server doing its work. Maybe have delay ? or another reason i don’t know?
Please give me detail
This is part of Dgraph’s normal operation. This operation happens periodically so it’s normal to see it happen after all the mutations have finished. There’s nothing to worry about here.
Rollup is an internal operation and kind of hard to explain but I’ll try my best. Data in Dgraph is stored in a data structured called a posting list. When doing a mutation, the main posting list is not modified immediately. Instead, a small posting list is written describing what changed (this is called a delta posting list). Rollup consists of reading all these deltas, along with the complete posting list to generate a new complete posting list with all the changes applied. Reads and writes that happen after the rollup will not need to read any of the previous delta posting lists. If this process didn’t happen, reads and writes would slow down as they would need to read an increasing number of delta posting lists before they can perform their work.
Yes, this is normal. If you are injecting data and have a lot of keys the rollup will have lots of work to do. This happens in the background so it does not affect normal operations. If data stops being injected, the rollup will eventually complete faster as there is not much work to do anymore.
Rollup does not block queries or mutations so Dgraph can operate as usual. Slow downs could happen if there is not enough CPU to do both but this could happen also if there are other processes running. As long as your machine can handle your expected load, rollups should not have much of an effect in performance.