Joost Hopmans e683db244e Merge pull request #639 in KC/kopanocore from ~BSIMONSEN/kopanocore:kc5-sqllimit to master | %!s(int64=7) %!d(string=hai) anos | |
---|---|---|
.. | ||
include | %!s(int64=8) %!d(string=hai) anos | |
ECABObjectTable.cpp | %!s(int64=7) %!d(string=hai) anos | |
ECABObjectTable.h | %!s(int64=8) %!d(string=hai) anos | |
ECAttachmentStorage.cpp | %!s(int64=7) %!d(string=hai) anos | |
ECAttachmentStorage.h | %!s(int64=8) %!d(string=hai) anos | |
ECCacheManager.cpp | %!s(int64=7) %!d(string=hai) anos | |
ECCacheManager.h | %!s(int64=7) %!d(string=hai) anos | |
ECConvenientDepthABObjectTable.cpp | %!s(int64=7) %!d(string=hai) anos | |
ECConvenientDepthABObjectTable.h | %!s(int64=8) %!d(string=hai) anos | |
ECConvenientDepthObjectTable.cpp | %!s(int64=7) %!d(string=hai) anos | |
ECConvenientDepthObjectTable.h | %!s(int64=8) %!d(string=hai) anos | |
ECConversion.cpp | %!s(int64=7) %!d(string=hai) anos | |
ECConversion.h | %!s(int64=8) %!d(string=hai) anos | |
ECDBDef.h | %!s(int64=8) %!d(string=hai) anos | |
ECDatabase.h | %!s(int64=7) %!d(string=hai) anos | |
ECDatabaseFactory.cpp | %!s(int64=7) %!d(string=hai) anos | |
ECDatabaseFactory.h | %!s(int64=8) %!d(string=hai) anos | |
ECDatabaseMySQL.cpp | %!s(int64=7) %!d(string=hai) anos | |
ECDatabaseUpdate.cpp | %!s(int64=7) %!d(string=hai) anos | |
ECDatabaseUpdate.h | %!s(int64=8) %!d(string=hai) anos | |
ECDatabaseUtils.cpp | %!s(int64=7) %!d(string=hai) anos | |
ECDatabaseUtils.h | %!s(int64=8) %!d(string=hai) anos | |
ECGenProps.cpp | %!s(int64=7) %!d(string=hai) anos | |
ECGenProps.h | %!s(int64=7) %!d(string=hai) anos | |
ECGenericObjectTable.cpp | %!s(int64=7) %!d(string=hai) anos | |
ECGenericObjectTable.h | %!s(int64=8) %!d(string=hai) anos | |
ECICS.cpp | %!s(int64=7) %!d(string=hai) anos | |
ECICS.h | %!s(int64=8) %!d(string=hai) anos | |
ECICSHelpers.cpp | %!s(int64=7) %!d(string=hai) anos | |
ECICSHelpers.h | %!s(int64=8) %!d(string=hai) anos | |
ECIndexer.cpp | %!s(int64=7) %!d(string=hai) anos | |
ECIndexer.h | %!s(int64=8) %!d(string=hai) anos | |
ECKrbAuth.cpp | %!s(int64=8) %!d(string=hai) anos | |
ECKrbAuth.h | %!s(int64=8) %!d(string=hai) anos | |
ECLockManager.cpp | %!s(int64=7) %!d(string=hai) anos | |
ECLockManager.h | %!s(int64=7) %!d(string=hai) anos | |
ECMAPI.h | %!s(int64=8) %!d(string=hai) anos | |
ECMailBoxTable.cpp | %!s(int64=7) %!d(string=hai) anos | |
ECMailBoxTable.h | %!s(int64=8) %!d(string=hai) anos | |
ECMultiStoreTable.cpp | %!s(int64=7) %!d(string=hai) anos | |
ECMultiStoreTable.h | %!s(int64=8) %!d(string=hai) anos | |
ECNotification.cpp | %!s(int64=7) %!d(string=hai) anos | |
ECNotification.h | %!s(int64=8) %!d(string=hai) anos | |
ECNotificationManager.cpp | %!s(int64=7) %!d(string=hai) anos | |
ECNotificationManager.h | %!s(int64=8) %!d(string=hai) anos | |
ECPamAuth.cpp | %!s(int64=7) %!d(string=hai) anos | |
ECPamAuth.h | %!s(int64=8) %!d(string=hai) anos | |
ECPluginFactory.cpp | %!s(int64=8) %!d(string=hai) anos | |
ECPluginFactory.h | %!s(int64=8) %!d(string=hai) anos | |
ECPluginSharedData.cpp | %!s(int64=8) %!d(string=hai) anos | |
ECS3Attachment.cpp | %!s(int64=7) %!d(string=hai) anos | |
ECS3Attachment.h | %!s(int64=8) %!d(string=hai) anos | |
ECSearchFolders.cpp | %!s(int64=7) %!d(string=hai) anos | |
ECSearchFolders.h | %!s(int64=8) %!d(string=hai) anos | |
ECSearchObjectTable.cpp | %!s(int64=7) %!d(string=hai) anos | |
ECSearchObjectTable.h | %!s(int64=8) %!d(string=hai) anos | |
ECSecurity.cpp | %!s(int64=7) %!d(string=hai) anos | |
ECSecurity.h | %!s(int64=8) %!d(string=hai) anos | |
ECServerEntrypoint.cpp | %!s(int64=7) %!d(string=hai) anos | |
ECServerEntrypoint.h | %!s(int64=7) %!d(string=hai) anos | |
ECSession.cpp | %!s(int64=7) %!d(string=hai) anos | |
ECSession.h | %!s(int64=8) %!d(string=hai) anos | |
ECSessionGroup.cpp | %!s(int64=7) %!d(string=hai) anos | |
ECSessionGroup.h | %!s(int64=8) %!d(string=hai) anos | |
ECSessionManager.cpp | %!s(int64=7) %!d(string=hai) anos | |
ECSessionManager.h | %!s(int64=7) %!d(string=hai) anos | |
ECStatsCollector.cpp | %!s(int64=8) %!d(string=hai) anos | |
ECStatsCollector.h | %!s(int64=8) %!d(string=hai) anos | |
ECStatsTables.cpp | %!s(int64=7) %!d(string=hai) anos | |
ECStatsTables.h | %!s(int64=8) %!d(string=hai) anos | |
ECStoreObjectTable.cpp | %!s(int64=7) %!d(string=hai) anos | |
ECStoreObjectTable.h | %!s(int64=8) %!d(string=hai) anos | |
ECStringCompat.cpp | %!s(int64=8) %!d(string=hai) anos | |
ECStringCompat.h | %!s(int64=8) %!d(string=hai) anos | |
ECSubRestriction.cpp | %!s(int64=7) %!d(string=hai) anos | |
ECSubRestriction.h | %!s(int64=8) %!d(string=hai) anos | |
ECTPropsPurge.cpp | %!s(int64=7) %!d(string=hai) anos | |
ECTPropsPurge.h | %!s(int64=8) %!d(string=hai) anos | |
ECTableManager.cpp | %!s(int64=7) %!d(string=hai) anos | |
ECTableManager.h | %!s(int64=8) %!d(string=hai) anos | |
ECTestProtocol.cpp | %!s(int64=8) %!d(string=hai) anos | |
ECTestProtocol.h | %!s(int64=8) %!d(string=hai) anos | |
ECUserManagement.cpp | %!s(int64=7) %!d(string=hai) anos | |
ECUserManagement.h | %!s(int64=8) %!d(string=hai) anos | |
ECUserStoreTable.cpp | %!s(int64=7) %!d(string=hai) anos | |
ECUserStoreTable.h | %!s(int64=8) %!d(string=hai) anos | |
README.md | %!s(int64=8) %!d(string=hai) anos | |
StorageUtil.cpp | %!s(int64=7) %!d(string=hai) anos | |
StorageUtil.h | %!s(int64=8) %!d(string=hai) anos | |
StreamUtil.cpp | %!s(int64=7) %!d(string=hai) anos | |
StreamUtil.h | %!s(int64=7) %!d(string=hai) anos | |
cmd.cpp | %!s(int64=7) %!d(string=hai) anos | |
cmd.hpp | %!s(int64=8) %!d(string=hai) anos | |
cmdutil.cpp | %!s(int64=7) %!d(string=hai) anos | |
cmdutil.hpp | %!s(int64=7) %!d(string=hai) anos | |
logontime.cpp | %!s(int64=7) %!d(string=hai) anos | |
logontime.hpp | %!s(int64=8) %!d(string=hai) anos |
The ECCacheManager caches some specific MySQL table items in a hash map. For example for the hierarchtable it is stored as . When the cache limit is hit, we randomly remove 5% of the items.
The sort() operation on unordered hashmaps is very expensive so you might notice cache spikes everytime the cache is cleaned. A possible solution is randomly removing the cache entries.
+-------------------------------------------------------------+
| |
| |
cache --+| xxxxxxxx xxxxxxxx xxxxxxxxxx xxxxxxxxxxxxxx|
limit | xxx x x x x x x |
| xxxx x x x |
| xxxx |
| xx |
| xxx |
| xxxx |
|xxx |
xx------------------------------------------------------------+