Notes 6 very slow on docs with huge attachment

We use a database with several 100 documents that consist of a couple of summary fields (like “responsible”, “status”, “duedate”, “lastcheck”) and a rich text item (called “body”), which carries attachments that are typically 5 to 10 megabytes in size.

We use agents that are started via the Actions menu and act on all selected documents. Those agents use formula language or the equivalent lotus script code to change a single summary field (FIELD lastcheck:=@Today; )

With Notes 4.5 (tested with 4.5.7) and 5.0 (tested with 5.0.8) this works very fast: Updating all documents lasts approx 5 seconds.

With Notes 6 (tested with 6.0 and 6.0.1), the same update needs approx. 4 minutes.

This is about 50 times slower!!!

It seems as if Notes 6 would load the complete attachments into memory while prior versions only loadad the summary items.

Is there any way to return to old speed as the application is nearly unusable with Notes 6?

Subject: Notes 6 very slow on docs with huge attachment

I had a similar problem and found that it was Norton Antivirus on my PC that had Notes “real-time scan” enabled (I think it’s called that).

Obviously this checks the whole document that you open, even if you don’t open the attachment.

/Kenneth

Subject: RE: Notes 6 very slow on docs with huge attachment

Norton Antivirus was the reason for the problem in our environment, too.Disabling the real time scan solved the problem.

Thank you

Heinz

Subject: Notes 6 very slow on docs with huge attachment

HiExtracts of an earler posting:

There’s an anomaly in the FIELD statement that makes common Domino 6 Formula language code incompatible with Domino 5, and vice versa.

The FIELD statement is used to assign a value to a field. @SetField can also do this, and unlike FIELD it can be included within other @functions, most commonly @If. In Notes/Domino 5, @SetField must be preceded by FIELD, roughly like this:

FIELD fieldname := fieldname ;

@If( olddata != newdata; @SetField( fieldname; newdata ); “” ) ;

In a Domino 5 agent, using FIELD to assign a field’s value to itself declares the field in memory. Unless the subsequent @SetField updates the value of the field, the document is not modified.

Recognizing that this requirement is not obvious and easily forgotten, Notes/Domino 6 does not require FIELD before @SetField. However, because version 6 is supposed to be able to run version 5 code, the FIELD statement in 6 would appear to be acceptable when used as in Domino 5.

However, Advisor Labs encountered very different and unacceptable behavior from FIELD in Domino 5 agents run in Domino 6.0.1. The agents look at a large number of documents. When certain changed data is encountered, the agents use @SetField to update other fields in the same document.

For instance, one agent runs every few hours and looks at about 100,000 documents. If certain new or changed data is found in a document, the agent uses FIELD…@SetField to update other fields in the document. When run on Domino 5, the agent might modify a dozen documents on a run. However, on Domino 6.0.1, the same agent modifies ALL the documents in the database, almost 100,000 documents modified – every time the agent runs!

We found that almost every Domino 5 Formula language agent was running amok on Domino 6.0.1. The resulting massive modification and subsequent replication of almost every document in some very large databases, multiple times a day, really jammed up the system. All the Domino and Notes machines and the entire network were barely crawling.

The cause and solution was identified by Luke Coverdale of Sydney, Australia: “In 6 you don’t need to explicitly declare the field in that way, and if you do it actually overwrites the value of the field with the value of the field, causing a document modification, causing the problems you’re seeing.”

Thanks to Luke’s information, the solution was simple. Using Designer, we went through all the Formula language agents and commented-out FIELD wherever we found it. This immediately fixed the problem; the Domino 6 agents went back to modifying a handful of documents, not tens of thousands.

However, removing FIELD limits an agent to running only on Domino 6. An agent that uses @SetField on Notes or Domino 5 must have the FIELD statement. You don’t want it in 6, but you need it in 5, so in a mixed environment, you might need to maintain two versions of a Formula language agent.

We don’t know if IBM will be modifying FIELD in a future version of Domino 6 to behave like it does in Domino 5.

Subject: Notes 6 very slow on docs with huge attachment

If your environment is pure ND6 try using LZ1 compression to improve DB performance.

LZ1 compression can be enabled on the Advanced Database Properties tab. It can also be enabled through the Advanced button in the New Database dialog box, but this is not the only method. Compacting a database will not enable LZ1 compression. Neither the Compression Database Tool nor the Compression Server Task exists.

The LZ1 compression algorithm is faster and more efficient than the previously used Huffman algorithm. Note that in a mixed-release environment, databases will be recompressed using the Huffman algorithm. This recompression will degrade performance. For best results, use LZ1 compression in a pure-R6 environment.