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