summaryrefslogtreecommitdiffstats
path: root/common/domain/event.cpp
Commit message (Collapse)AuthorAge
* Get access to properties in indexes.Christian Mollekopf2016-10-21
|
* TypeImplementation cleanupChristian Mollekopf2016-10-21
|
* Ported the pipeline to the entitystoreChristian Mollekopf2016-10-21
|
* Use the ApplicationDomainType in the queries as well.Christian Mollekopf2016-10-21
| | | | | We have to access properties, so we need the mapper anyways, and the ApplicationDomainType type shouldn't be a large overhead anyways.
* We no longer access the typeindex directlyChristian Mollekopf2016-10-21
|
* 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.
* A new query systemChristian Mollekopf2016-09-23
|
* A first draft of the threading algorithm.Christian Mollekopf2016-09-20
|
* Refactored the query part of the entity reader into DataStoreQuery.Christian Mollekopf2016-09-19
| | | | | | | | | DataStoreQuery now encapsulates the low-level query that operates directly on the storage. It no longer has access to the resource buffers, and is instantiated by the type implementation, so we can specialize the query alogorithm per type, but not per resource. This will allow us to implement the threading queries for the mailtype.
* Property definitionsChristian Mollekopf2016-05-10
| | | | | Instead of hardcoding assumptions all over the place we create typesafe setters and getters for all properties.
* Prepared sort indexesChristian Mollekopf2016-02-16
|
* Fixed modificationsChristian Mollekopf2016-02-01
|
* Renamed Akonadi2 to SinkChristian Mollekopf2016-01-20
| | | | (except for documentation).
* Ensure the initialization of the TypeIndex is threadsafe.Christian Mollekopf2015-12-27
| | | | Multiple initial queries can be running at the same time.
* Support the attachment propertyChristian Mollekopf2015-12-21
|
* Ported folder and event to TypeIndexChristian Mollekopf2015-12-07
|
* Reduced boilerplate for buffer mappingChristian Mollekopf2015-12-04
|
* Debug outputChristian Mollekopf2015-11-30
|
* Implemented removeIndexChristian Mollekopf2015-11-05
|
* Made pipeline preprocessing synchronous.Christian Mollekopf2015-10-28
| | | | | | | | | | | | | | | | Instead of having the asynchronous preprocessor concept with different pipelines for new/modify/delete we have a single pipeline with synchronous preprocessors that act upon new/modify/delete. This keeps the code simpler due to lack of asynchronity and keeps the new/modify/delete operations together (which at least for the indexing makes a lot of sense). Not supporting asynchronity is ok because the tasks done in preprocessing are not cpu intensive (if they were we had a problem since they are directly involved in the round-trip time), and the main cost comes from i/o, meaning we don't gain much by doing multithreading. Costly tasks (such as full-text indexing) should rather be implemented as post-processing, since that doesn't increase the round-trip time directly, and eventually consistent is typically good enough for that.
* Moved the index to the proper prefixChristian Mollekopf2015-10-10
|
* Conciser PropertyMapper::addMapping notationChristian Mollekopf2015-09-09
|
* Store indexes as named databases in the same db.Christian Mollekopf2015-08-23
| | | | | | Because we also keep using the same transactions this finally makes the resource somewhat performant. On my system genericresourcebenchmark now processes ~4200 messages per second instead of ~280.
* Untangled the include dependencies a bit.Christian Mollekopf2015-08-13
| | | | We no longer depend on clientapi.h from everywhere.
* DebuginfoChristian Mollekopf2015-07-23
|
* Differentiate between resource name and instance identifierChristian Mollekopf2015-06-08
|
* Use type-specific index implementations.Christian Mollekopf2015-06-07
|
* Use type implementation to define default buffer and buffer-builderChristian Mollekopf2015-05-31
|
* Moved default read/write property mapper to TypeImplementationChristian Mollekopf2015-05-31
| | | | | There is always exactly one default buffer that we can centralize in TypeImplementation.
* Centralized type specific code.Christian Mollekopf2015-05-25