Symptom
- During a Delta merge for certain large tables stored in NSE, the HANA system performance becomes degraded and even leads to blocked savepoints.
- Mini Checks report shows the following alerts:
|M0346| Long waitForLock savepoint phases (mid-term)| | 5| 0|X| 2100009|
|M0537| Tables with long total merge time (short-term)| | CDPOS (2.70 h)| none|X| 2057046|
|M0538| Long running delta merges (mid-term)| | CDPOS (18) (2067 s, 2026/04/14 17:42:46)| none|X| 2057046|
|M0538| Long running delta merges (mid-term)| | CDPOS (2) (2017 s, 2026/04/14 17:42:46)| none|X| 2057046|
|M0538| Long running delta merges (mid-term)| | DBTABLOG (6314 s, 2026/04/11 10:54:45)| none|X| 2057046|
|M2730| Columns with significant NSE buffer size share|hostname| DBTABLOG.LOGDATA (149 %)| none|X| 2799997|
|M2735| NSE buffer cache reloads (% per day, mid-term)|hostname| 134| <= 100|X| 2799997|
- Savepoint may be blocking the delta merge with a callstack like :
[SAVEPOINT_SHAREDLOCK_OWNERS] Owners of shared SavepointLocks: (2026-04-03 03:02:17 159 Local)
3275745778[thr=259052]: JobWrk109424, TID: 325, UTID: 2152546830, CID: -1, LCID: 0, SEID: 844434391012380, parent: 2434919, SQLUserName: "", AppUserName: "", AppName: "", ConnCtx: ---, StmtCtx: ---, WorkloadCtx: ---, NUMA node: 0, type: "JobWorker", method: "prepareDeltaMerge",
detail: "IndexName: SAPHANADB:BALDAT Attribute: 214/$trexexternalkey$", command: "" at 0x00007fe82b961131 in __clock_nanosleep_2+0x83 (libc.so.6)
[OK] in 00:00:00 003
--
3275745778[thr=259052]: JobWrk109424 at
0: 0x00007fe82b961131 in __clock_nanosleep_2+0x82 (libc.so.6)
1: 0x00007fe82b966e53 in __GI___nanosleep+0x12 (libc.so.6)
2: 0x00007fe82c6806bc in Execution::sleep(timespec&)+0xa8 at Basis/Execution/impl/Sleep.cpp:33 (libhdbbasis.so)
3: 0x00007fe82c680861 in Execution::milliSleep(unsigned long)+0x40 at Basis/Execution/impl/Sleep.cpp:60 (libhdbbasis.so)
4: 0x00007fe83209ca61 in BufferCacheManager::LogicalPageBufferCache::provideControlblockInternal(PageAccess::SizeClass, PageAccess::SizeClass, ResourceManager::ResourceContainer&, PageAccess::LogicalPageAccess&, unsigned long, PageAccess::PageNo const&, ResourceManager::Disposition, PageAccess::ConverterPageControlBlock*, DAEncryption::EncryptionManager*, bool, Synchronization::ReadWriteLockStatistics*, bool)+0x540 at NDS/BufferCache/impl/BufferCache.cpp:464 (libhdbnds.so)
5: 0x00007fe82f07c5d5 in PageAccess::LogicalPageResourceProvider::provideControlblock(PageAccess::SizeClass, PageAccess::SizeClass, ResourceManager::ResourceContainer&, PageAccess::LogicalPageAccess&, unsigned long, PageAccess::PageNo const&, ResourceManager::Disposition, PageAccess::ConverterPageControlBlock*, DAEncryption::EncryptionManager*, bool, Synchronization::ReadWriteLockStatistics*, bool)+0x121 at DataAccess/PageAccess/impl/LogicalPageResourceProviderImpl.cpp:176 (libhdbdataaccess.so)
6: 0x00007fe82f06aa95 in PageAccess::LogicalPageAccessImpl::providePreliminaryPage(DataContainer::ContainerID const&, PageAccess::PageType, PageAccess::SizeClass, PageAccess::LogicalPageResourceProvider&, bool)+0x331 at DataAccess/PageAccess/impl/LogicalPageAccessImpl.cpp:943 (libhdbdataaccess.so)
7: 0x00007fe82f06d2bc in PageAccess::LogicalPageAccessImpl::allocatePage(DataContainer::ContainerID const&, PageAccess::PageType, PageAccess::SizeClass, ResourceManager::Disposition, PageAccess::LogicalPageResourceProvider&, bool)+0x48 at DataAccess/PageAccess/impl/LogicalPageAccessImpl.cpp:1188 (libhdbdataaccess.so)
8: 0x00007fe82f06d484 in PageAccess::LogicalPageAccess::allocatePage(DataContainer::ContainerID const&, PageAccess::PageType, PageAccess::SizeClass, ResourceManager::Disposition, PageAccess::LogicalPageResourceProvider&, bool)+0x10 at DataAccess/PageAccess/impl/LogicalPageAccessImpl.cpp:368 (libhdbdataaccess.so)
9: 0x00007fe82edfd7d0 in DataContainer::ContainerImpl::allocatePage(PageAccess::PageType, PageAccess::SizeClass, ResourceManager::Disposition, PageAccess::LogicalPageResourceProvider&, bool) const+0x60 at DataAccess/DataContainer/impl/ContainerImpl.cpp:929 (libhdbdataaccess.so)
10: 0x00007fe83285a466 in UnifiedTable::BufferedPageChain::allocatePage(PageAccess::PageType, PageAccess::SizeClass, ResourceManager::Disposition)+0x162 at UnifiedTable/Paging/impl/PageChain.cpp:1452 (libhdbunifiedtable.so)
11: 0x00007fe832875cc4 in UnifiedTable::DictionaryPagedBlockProvider::newPageSpanningDictBlock(ltt::versioned_gc_queue&, UnifiedTable::PersDictionaryDescriptor const&, PageAccess::SizeClass, bool, UnifiedTable::DictionaryHeaderInit const&)::{lambda(ResourceManager::Disposition)#1}::operator()(ResourceManager::Disposition) const+0x40 at UnifiedTable/Paging/impl/PagedDictionaryBlockHandler.cpp:401 (libhdbunifiedtable.so)
12: 0x00007fe8328768a0 in UnifiedTable::DictionaryPagedBlockProvider::newPageSpanningDictBlock(ltt::versioned_gc_queue&, UnifiedTable::PersDictionaryDescriptor const&, PageAccess::SizeClass, bool, UnifiedTable::DictionaryHeaderInit const&)+0x3e0 at UnifiedTable/Paging/impl/PagedDictionaryBlockHandler.cpp:473 (libhdbunifiedtable.so)
13: 0x00007fe8328769c4 in UnifiedTable::DictionaryPagedBlockProvider::newPageSpanningDictBlock(ltt::versioned_gc_queue&, UnifiedTable::PersDictionaryDescriptor const&, PageAccess::SizeClass, UnifiedTable::DictionaryHeaderInit const&)+0x10 at UnifiedTable/Paging/impl/PagedDictionaryBlockHandler.cpp:364 (libhdbunifiedtable.so)
14: 0x00007fe8325f6a9f in UnifiedTable::PagedDictionaryBlockHandler::newPageSpanningDictBlock(ltt::versioned_gc_queue&, PageAccess::SizeClass, UnifiedTable::DictionaryHeaderInit const&)+0x6b at UnifiedTable/Paging/spi/DictionaryPagedBlockProvider.hpp:578 (libhdbunifiedtable.so)
15: 0x00007fe832662287 in UnifiedTable::MainVarDictionaryStorageBase::getNewDictionaryBlock(PageAccess::SizeClass)+0x43 at UnifiedTable/Dictionary/impl/MainVarDictionaryStorage.cpp:824 (libhdbunifiedtable.so)
16: 0x00007fe83266a839 in UnifiedTable::MainVarDictionaryStorageBase::sortedAddImpl(DataAccess::ConsistentChange&, void const*, unsigned long, PageAccess::SizeClass)+0x385 at UnifiedTable/Dictionary/impl/MainVarDictionaryStorage.cpp:1396 (libhdbunifiedtable.so)
17: 0x00007fe83cb04893 in AttributeEngine::RoDict<TRexUtils::CESU8>::sortedAdd(AttributeEngine::DictionaryModificationGuard&, char const*, unsigned long, int)+0x50 at AttributeEngine/Main/Dictionary/RoDictUnified.cpp:2181 (libhdbcs.so)
18: 0x00007fe83c318d9c in AttributeEngine::DeltaMerge::CreateDictionaryStep<TrexTypes::StringAttributeValue, AttributeEngine::ValueDict<TrexTypes::StringAttributeValue>, AttributeEngine::BTreeAttribute<TrexTypes::StringAttributeValue> >::doStepImpl()+0x798 at AttributeEngine/Main/Dictionary/StringDict.h:240 (libhdbcs.so)
19: 0x00007fe83c37aabc in AttributeEngine::DeltaMerge::SingleMergePipeline<TrexTypes::StringAttributeValue, AttributeEngine::ValueDict<TrexTypes::StringAttributeValue>, AttributeEngine::BTreeAttribute<TrexTypes::StringAttributeValue>, NDS::Primitives::PagedIndexVector>::merge(AttributeEngine::BTreeAttribute<TrexTypes::StringAttributeValue> const&, AttributeEngine::DeltaMerge::AttributeMergeData&, AttributeEngine::ValueDict<TrexTypes::StringAttributeValue>&, AttributeEngine::DeltaMerge::PrepareNewDictCallback<AttributeEngine::ValueDict<TrexTypes::StringAttributeValue> >&, NDS::Primitives::PagedIndexVector&, unsigned long&)+0x348 at AttributeEngine/DeltaMerge/SingleMergePipeline.cpp:164 (libhdbcs.so)
20: 0x00007fe83d35a472 in AttributeEngine::PagedAttribute<TrexTypes::StringAttributeValue, AttributeEngine::ValueDict<TrexTypes::StringAttributeValue> >::mergeOldIntoNew(AttributeEngine::AttributeValueContainer const&, AttributeEngine::DeltaMerge::AttributeMergeData&)+0x2b0 at AttributeEngine/Main/PagedAttributeDef.h:4472 (libhdbcs.so)
21: 0x00007fe841ffd122 in AttributeEngine::MemoryAvc2::prepareDeltaMerge(AttributeEngine::AttributeValueContainer&, AttributeEngine::DeltaMerge::AttributeMergeData&)+0xa0 at AttributeEngine/AttributeValueContainer.cpp:3139 (libhdbcs.so)
22: 0x00007fe841dba59b in AttributeEngine::AttributeApi::prepareDeltaMerge(TrexBase::IndexName const&, AttributeEngine::DeltaMerge::AttributeMergeData&)+0x627 at AttributeEngine/AttributeApi.cpp:1656 (libhdbcs.so)
23: 0x00007fe85265504c in TRexAPI::MergeAttributeJob::doMerge(TRexAPI::ColumnMergeData&, TRexAPI::DeltaMergeState&, bool)+0x48 at ims_search_api/DeltaMerge/MergeAttributeJob.cpp:176 (libhdbcsapi.so)
24: 0x00007fe852655b0f in TRexAPI::MergeAttributeJob::run(Execution::Context&, Execution::JobObject&)+0x19b at ims_search_api/DeltaMerge/MergeAttributeJob.cpp:293 (libhdbcsapi.so)
25: 0x00007fe82c6335ea in Execution::JobObjectImpl::run(Execution::JobWorker*)+0x1416 at Basis/Execution/impl/JobExecutorRunJob.cpp:772 (libhdbbasis.so)
26: 0x00007fe82c63528a in Execution::JobWorker::runJob(ltt::smartptr_handle<Execution::JobObjectForHandle>&)+0x896 at Basis/Execution/impl/JobExecutorThreads.cpp:379 (libhdbbasis.so)
27: 0x00007fe82c636678 in Execution::JobWorker::run(Execution::ThreadRC&)+0x734 at Basis/Execution/impl/JobExecutorThreads.cpp:1382 (libhdbbasis.so)
28: 0x00007fe82c681ec1 in Execution::Thread::staticMainImp(Execution::Thread*)+0x5e0 at Basis/Execution/impl/Thread.cpp:605 (libhdbbasis.so)
29: 0x00007fe82c68275f in Execution::pthreadFunctionWrapper(Execution::Thread*)+0x1eb at Basis/Execution/impl/ThreadInterposition.cpp:691 (libhdbbasis.so)
30: 0x00007fe82d9806da in start_thread+0xd8 (libpthread.so.0)
31: 0x00007fe82b99d53f in __GI___clone+0x3d (libc.so.6)
- The NSE Buffer cache details show that CDPOS and DBTABLOG are much larger than the max buffer cache size (MAX_SIZE_GB) and thus prone to reloads between NSE cache in memory and persistence (PAGED_GB vs BUFF_GB).
HANA_NSE_BufferCache_*
HANA_NSE_BufferCache_Tables_*
HANA_Memory_Overview_*
------------------------------------------------------------------------------------------------------------------------------------------------
| SNAPSHOT_TIME|ST| HOST| PORT|WARM_GB|MAX_SIZE_GB|ALLOC_GB|USED_GB|IO_SIZE_GB|HIT_PCT|BUFF_KB|BUFF_TOT_GB|BUFF_HOT_GB|BUFF_FREE_GB|
------------------------------------------------------------------------------------------------------------------------------------------------
|2026/04/15 14:24:46| 0|Hostname|30440| 718.45| 146.48| 146.48| 133.83| 377816.46| 99.26| 4| 0.00| 0.00| 0.00|
| | | | | | | | | | | 16| 0.00| 0.00| 0.00|
| | | | | | | | | | | 64| 0.01| 0.01| 0.00|
| | | | | | | | | | | 256| 131.07| 130.13| 0.88|
| | | | | | | | | | | 1024| 14.95| 1.05| 11.75|
------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------
| HOST| PORT|TOT_BUFF_GB|SCHEMA_NAME| TABLE_NAME|PAGED_GB|BUFF_GB|BUFF_PCT|USED_PCT|
------------------------------------------------------------------------------------------------
|Hostname|30440| 146.48| SAPHANADB| CDPOS| 392.29| 111.80| 28.50| 76.32|
|Hostname|30440| 146.48| SAPHANADB| DBTABLOG| 281.53| 15.68| 5.57| 10.71|
|Hostname|30440| 146.48| SAPHANADB| BALDAT| 32.95| 1.81| 5.51| 1.24|
|Hostname|30440| 146.48| SAPHANADB| D010TAB| 1.54| 0.82| 53.77| 0.56|
|Hostname|30440| 146.48| SAPHANADB| D010INC| 0.76| 0.76| 99.85| 0.52|
------------------------------------------------------------------------------------------------------------------------------------------------
| NAME|TOTAL_GB| DETAIL_GB| DETAIL2_GB|
------------------------------------------------------------------------------------------------------------------------------------------------
| | | | |
| Column store size| 999| 999 (Hostname)| 120 (CDPOS)|
| | | | 80 (ACDOCA)|
| | | | 75 (PRCD_ELEMENTS)|
| | | | 40 (BSEG)|
| | | | 37 (CDHDR)|
| | | | 29 (FAGL_SPLINFO_VAL)|
| | | | 29 (ACCTCR)|
| | | | 22 (JCDS)|
| | | | 21 (OBJK)|
| | | | 17 (BSAS_BCK)|
| | | | |
| | | | |
| NSE table size| 134| 134 (Hostname)| 112 (CDPOS)|
| | | | 16 (DBTABLOG)|
| | | | 2 (BALDAT)|
| | | | 1 (D010TAB)|
| | | | 1 (D010INC)|
| | | | 1 (DD03L)|
| | | | |
| Disk size| 4094| 4094 (global)| 1003 (SOFFCONT1)|
| | | | 502 (DBTABLOG)|
| | | | 399 (CDPOS)|
| | | | 243 (DHCDC_RTSTORE)|
| | | | 145 (GRACSODREPDATA)|
| | | | 138 (ZTPL_POD_LOG1)|
| | | | 138 (ZTPL_POD_LOG)|
| | | | 117 (ZGDM_POD_LOG1)|
| | | | 76 (ACDOCA)|
| | | | 74 (PRCD_ELEMENTS)|
------------------------------------------------------------------------------------------------------------------------------------------------
Read more...
Environment
SAP HANA Platform Edition 2.0
Keywords
KBA , HAN-DB-NSE , SAP HANA Native Storage Extension , Problem
About this page
This is a preview of a SAP Knowledge Base Article. Click more to access the full version on SAP for Me (Login required).Search for additional results
Visit SAP Support Portal's SAP Notes and KBA Search.
SAP Knowledge Base Article - Preview