summaryrefslogtreecommitdiffstats
path: root/common/changereplay.h
Commit message (Collapse)AuthorAge
* Avoid notifcations for requests that do nothing, progress with folderidChristian Mollekopf2017-05-20
|
* Don't commit after every replayed revisionChristian Mollekopf2017-05-12
| | | | | | If we didn't actually do anything we just carry on. Failing to commit is harmless in that case and committing for every revision is rather expensive.
* Guard the changereplay callbacks using the new APIChristian Mollekopf2017-05-08
|
* Fixed changereplay guardChristian Mollekopf2017-04-06
| | | | ...and improved debug output slightly.
* Guard against destructionChristian Mollekopf2017-03-28
| | | | We really need to guard against this in kasync...
* Adapt to KAsync changesChristian Mollekopf2017-03-01
|
* Refactored the changereplayChristian Mollekopf2017-01-18
| | | | | | * use a log context * clearer and simpler control flow * No infinite recursive calling
* Ensure we always process the full queue and that flushing works.Christian Mollekopf2016-11-22
|
* Process change replays as part of the synchronization queueChristian Mollekopf2016-11-22
|
* Refactor how the storage is used.Christian Mollekopf2016-10-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is the initial refactoring to improve how we deal with the storage. It does a couple of things: * Rename Sink::Storage to Sink::Storage::DataStore to free up the Sink::Storage namespace * Introduce a Sink::ResourceContext to have a single object that can be passed around containing everything that is necessary to operate on a resource. This is a lot better than the multiple separate parameters that we used to pass around all over the place, while still allowing for dependency injection for tests. * Tie storage access together using the new EntityStore that directly works with ApplicationDomainTypes. This gives us a central place where main storage, indexes and buffer adaptors are tied together, which will also give us a place to implement external indexes, such as a fulltextindex using xapian. * Use ApplicationDomainTypes as the default way to pass around entities. Instead of using various ways to pass around entities (buffers, buffer adaptors, ApplicationDomainTypes), only use a single way. The old approach was confusing, and was only done as: * optimization; really shouldn't be necessary and otherwise I'm sure we can find better ways to optimize ApplicationDomainType itself. * a way to account for entities that have multiple buffers, a concept that I no longer deem relevant. While this commit does the bulk of the work to get there, the following commits will refactor more stuff to get things back to normal.
* Don't create a transaction for every revision that we don't replay.Christian Mollekopf2016-09-15
| | | | | This had a significant performance impact when i.e. syncing a folder with 10k messages.
* Prepare for making the resource status availableChristian Mollekopf2016-07-05
|
* Non blocking change-replayChristian Mollekopf2016-06-02
|
* Open a valid database also in the NullChangeReplay and skip internal keysChristian Mollekopf2016-05-31
|
* Refactored the generic resource to use separate classes forChristian Mollekopf2016-05-28
changereplay and synchronization. This cleans up the API and avoids the excessive passing around of transactions. It also provides more flexibility in eventually using different synchronization strategies for different resources.