Age | Commit message (Collapse) | Author |
|
Although the do_parse function is deferred to threads, we were actually
waiting till its return to fire the callback of the deferred, and hence
the "append ok" was being delayed. During massive appends, this was a
tight loop contributing as much as 35 msec, of a total of 100 msec
average.
Several ineficiencies are addressed here:
* use pycryptopp hash functions.
* avoiding function calling overhead.
* avoid duplicate call to message.as_string
* make use of the string size caching capabilities.
* avoiding the mail Parser initialization/method call completely,
in favor of the module helper to get the object from string.
Overall, these changes cut parsing to 50% of the initial timing by my
measurements with line_profiler, YMMV.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
and batch the notifications back to the memorystore,
within the reactor thread.
|
|
|
|
|
|
|
|
|
|
|
|
* Some more docstring completion/fixes.
* Removed unneeded str coertion.
* Handle mailbox name in logs.
* Separate manhole boilerplate into its own file.
|
|
Passing along a deferred as an observer whose callback will be
called with the proper result.
Returning to thread in the appropiate points.
just let's remember that twisted APIs are not thread safe!
SoledadStore process_item also properly returned to thread.
Changed @deferred to @deferred_to_thread so it results less
confusing to read.
"know the territory". aha!
|
|
We pre-fetch the uids from soledad on mailbox initialization
|
|
* reorganize and simplify STORE command processing
* add the notification after the processing of the whole sequence
|
|
Also some fixes for None comparisons.
|
|
|
|
|
|
* add new/dirty deferred dict to notify when written to disk
* fix eventual duplication after copy
* fix flag flickering on first retrieval.
|
|
|
|
move parts-related bits to messageparts
pass soledad in initialization for memory messages
|