Joost Hopmans e683db244e Merge pull request #639 in KC/kopanocore from ~BSIMONSEN/kopanocore:kc5-sqllimit to master | 7 jaren geleden | |
---|---|---|
.. | ||
include | 8 jaren geleden | |
ECABObjectTable.cpp | 7 jaren geleden | |
ECABObjectTable.h | 8 jaren geleden | |
ECAttachmentStorage.cpp | 7 jaren geleden | |
ECAttachmentStorage.h | 8 jaren geleden | |
ECCacheManager.cpp | 7 jaren geleden | |
ECCacheManager.h | 7 jaren geleden | |
ECConvenientDepthABObjectTable.cpp | 7 jaren geleden | |
ECConvenientDepthABObjectTable.h | 8 jaren geleden | |
ECConvenientDepthObjectTable.cpp | 7 jaren geleden | |
ECConvenientDepthObjectTable.h | 8 jaren geleden | |
ECConversion.cpp | 7 jaren geleden | |
ECConversion.h | 8 jaren geleden | |
ECDBDef.h | 8 jaren geleden | |
ECDatabase.h | 7 jaren geleden | |
ECDatabaseFactory.cpp | 7 jaren geleden | |
ECDatabaseFactory.h | 8 jaren geleden | |
ECDatabaseMySQL.cpp | 7 jaren geleden | |
ECDatabaseUpdate.cpp | 7 jaren geleden | |
ECDatabaseUpdate.h | 8 jaren geleden | |
ECDatabaseUtils.cpp | 7 jaren geleden | |
ECDatabaseUtils.h | 8 jaren geleden | |
ECGenProps.cpp | 7 jaren geleden | |
ECGenProps.h | 7 jaren geleden | |
ECGenericObjectTable.cpp | 7 jaren geleden | |
ECGenericObjectTable.h | 8 jaren geleden | |
ECICS.cpp | 7 jaren geleden | |
ECICS.h | 8 jaren geleden | |
ECICSHelpers.cpp | 7 jaren geleden | |
ECICSHelpers.h | 8 jaren geleden | |
ECIndexer.cpp | 7 jaren geleden | |
ECIndexer.h | 8 jaren geleden | |
ECKrbAuth.cpp | 8 jaren geleden | |
ECKrbAuth.h | 8 jaren geleden | |
ECLockManager.cpp | 7 jaren geleden | |
ECLockManager.h | 7 jaren geleden | |
ECMAPI.h | 8 jaren geleden | |
ECMailBoxTable.cpp | 7 jaren geleden | |
ECMailBoxTable.h | 8 jaren geleden | |
ECMultiStoreTable.cpp | 7 jaren geleden | |
ECMultiStoreTable.h | 8 jaren geleden | |
ECNotification.cpp | 7 jaren geleden | |
ECNotification.h | 8 jaren geleden | |
ECNotificationManager.cpp | 7 jaren geleden | |
ECNotificationManager.h | 8 jaren geleden | |
ECPamAuth.cpp | 7 jaren geleden | |
ECPamAuth.h | 8 jaren geleden | |
ECPluginFactory.cpp | 8 jaren geleden | |
ECPluginFactory.h | 8 jaren geleden | |
ECPluginSharedData.cpp | 8 jaren geleden | |
ECS3Attachment.cpp | 7 jaren geleden | |
ECS3Attachment.h | 8 jaren geleden | |
ECSearchFolders.cpp | 7 jaren geleden | |
ECSearchFolders.h | 8 jaren geleden | |
ECSearchObjectTable.cpp | 7 jaren geleden | |
ECSearchObjectTable.h | 8 jaren geleden | |
ECSecurity.cpp | 7 jaren geleden | |
ECSecurity.h | 8 jaren geleden | |
ECServerEntrypoint.cpp | 7 jaren geleden | |
ECServerEntrypoint.h | 7 jaren geleden | |
ECSession.cpp | 7 jaren geleden | |
ECSession.h | 8 jaren geleden | |
ECSessionGroup.cpp | 7 jaren geleden | |
ECSessionGroup.h | 8 jaren geleden | |
ECSessionManager.cpp | 7 jaren geleden | |
ECSessionManager.h | 7 jaren geleden | |
ECStatsCollector.cpp | 8 jaren geleden | |
ECStatsCollector.h | 8 jaren geleden | |
ECStatsTables.cpp | 7 jaren geleden | |
ECStatsTables.h | 8 jaren geleden | |
ECStoreObjectTable.cpp | 7 jaren geleden | |
ECStoreObjectTable.h | 8 jaren geleden | |
ECStringCompat.cpp | 8 jaren geleden | |
ECStringCompat.h | 8 jaren geleden | |
ECSubRestriction.cpp | 7 jaren geleden | |
ECSubRestriction.h | 8 jaren geleden | |
ECTPropsPurge.cpp | 7 jaren geleden | |
ECTPropsPurge.h | 8 jaren geleden | |
ECTableManager.cpp | 7 jaren geleden | |
ECTableManager.h | 8 jaren geleden | |
ECTestProtocol.cpp | 8 jaren geleden | |
ECTestProtocol.h | 8 jaren geleden | |
ECUserManagement.cpp | 7 jaren geleden | |
ECUserManagement.h | 8 jaren geleden | |
ECUserStoreTable.cpp | 7 jaren geleden | |
ECUserStoreTable.h | 8 jaren geleden | |
README.md | 8 jaren geleden | |
StorageUtil.cpp | 7 jaren geleden | |
StorageUtil.h | 8 jaren geleden | |
StreamUtil.cpp | 7 jaren geleden | |
StreamUtil.h | 7 jaren geleden | |
cmd.cpp | 7 jaren geleden | |
cmd.hpp | 8 jaren geleden | |
cmdutil.cpp | 7 jaren geleden | |
cmdutil.hpp | 7 jaren geleden | |
logontime.cpp | 7 jaren geleden | |
logontime.hpp | 8 jaren geleden |
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------------------------------------------------------------+