EducationSoftwareStrategy.com
StrategyCommunity

Knowledge Base

Product

Community

Knowledge Base

TopicsBrowse ArticlesDeveloper Zone

Product

Download SoftwareProduct DocumentationSecurity Hub

Education

Tutorial VideosSolution GalleryEducation courses

Community

GuidelinesGrandmastersEvents
x_social-icon_white.svglinkedin_social-icon_white.svg
Strategy logoCommunity

© Strategy Inc. All Rights Reserved.

LegalTerms of UsePrivacy Policy
  1. Home
  2. Topics

KB487015: What are the (.eb) Element Block files for cube loading performance?


Ramses Castro Cabrera

Senior Cloud Support Engineer II • MicroStrategy


In MSTR 2021 we don't serialize Element Block (EB), which is one of major internal data structures in cube generated during publishing. As a result, it will need to be built at run time when cube is loaded into memory from disk. This will increase cube loading time by a significant factor. Meanwhile it will likely impact server startup time, as a lot of customers configure cube loading at server startup. We believe cube loading performance can be improved significantly by serializing Element Block to disk and avoiding building it when loading the cube. Initial results from spike prove this.

SymptomTo allow parallel serializing and parallel loading the element blocks to and from file for different fact tables, the file will be created at fact table level, i.e. all the element blocks belong to the same fact table will be serialized to the same file. And we'll use the fact table ID concatenated with a ".eb" as extension. Since the element block saving is done in background threads, it's possible that the cube is available before Element Block serialization task is finished. In cluster environment, when a cube is published in one node, the remote node would immediately try to load the cube and the element block. If the element block serialization is not finished, loading from the incomplete file would cause unexpected problem. To avoid this situation, in addition to the file for serialization, an extra file (element block ID + .lock) will also be created to indicate the serialization status (if the lock file exists, meaning the serialization is not done yet, remote node should build the element blocks instead of loading it). ActionSome users have noticed an increase in memory use in the cube cache folder, more precisely that the generated files due the Element Blocks occupy a considerable space in memory. The point of this feature is to speed up the loading of cube files. It is possible to disable the feature, however we need to be aware that there could be a performance hit from disabling it. This is not recommendable by Strategy.To disable, in msireg.reg go to: [HKEY_LOCAL_MACHINE\SOFTWARE\MicroStrategy\DSS Server\Castor]and set the value to "ElementBlockSerializationBehavior"=dword:00000001 


Comment

0 comments

Details

Knowledge Article

Published:

December 23, 2024

Last Updated:

December 23, 2024