DOCUMENT:Q221124 20-MAY-2002 [winnt] TITLE :Slow File Saves Using Structured Storage Commits with Large Docs PRODUCT :Microsoft Windows NT PROD/VER:winnt:4.0 SP4 OPER/SYS: KEYWORDS:kbWinNT400sp5fix ====================================================================== ------------------------------------------------------------------------------- The information in this article applies to: - Microsoft Windows NT Server version 4.0 SP4 - Microsoft Windows NT Workstation version 4.0 SP4 ------------------------------------------------------------------------------- SYMPTOMS ======== As the structured storage file increases in size, it takes more time to save than expected. From a developer's point of view, this is what would be occuring in his or her code: Create root storage in STGM_TRANSACTED mode. Create a single substorage on the root in STGM_DIRECT mode. Loop for a lot of iterations, say 3000. Create a new stream. Write some data, 150 KB for instance, to stream. Commit root, say every 200 iterations, though loop. Release stream. Goto start of loop. The commit on the root will become very slow as the file gets larger. After 2,800 150-KB streams have been written, the commit on the root for the last 200 streams takes about 16 minutes. During the commit operation, 100 percent of the CPU is being consumed and no disk activity occurs. It is only just before the commit returns that there will be large amounts of disk activity. RESOLUTION ========== To resolve this problem, obtain the latest service pack for Windows NT 4.0 or the individual software update. For information on obtaining the latest service pack, please go to: - http://www.microsoft.com/Windows/ServicePacks/ -or- - Q152734 How to Obtain the Latest Windows NT 4.0 Service Pack For information on obtaining the individual software update, contact Microsoft Product Support Services. For a complete list of Microsoft Product Support Services phone numbers and information on support costs, please go to the following address on the World Wide Web: http://support.microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMS STATUS ====== Microsoft has confirmed this to be a problem in Windows NT 4.0. This problem was first corrected in Windows NT version 4.0 Service Pack 5. MORE INFORMATION ================ Two hardcoded values used for this function were increased: Define MaxPages 24 to 128 Define MaxPagesScratch 3 to 16 Additional query words: 4.00 ====================================================================== Keywords : kbWinNT400sp5fix Technology : kbWinNTsearch kbWinNTWsearch kbWinNTW400search kbWinNT400search kbWinNTW400sp4 kbWinNTSsearch kbWinNTS400sp4 kbWinNTS400search Version : winnt:4.0 SP4 Hardware : ALPHA x86 Issue type : kbbug Solution Type : kbfix ============================================================================= THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY. Copyright Microsoft Corporation 2002.