Skip to main content

What is considered large in this case? 500k? 1 meg? 5 megbytes?
Also if a binary datafield has 500k of information in it, is it in both locations (K2 and K2Log databases?) Once the workitem is completed, it'll just reside in K2Log database?

If we set the binary data field to blank prior to completing it, then no space for that field (no Audit) will be taken up in K2 and K2Log databases?

I assume binary data field is not being searched for all the search functions.

http://kb.k2workflow.com/Articles/KB000161.aspx

Impact of storing large objects in the K2.net process data
Since K2.net is not designed as a document storage system, it is not recommended to store large objects (e.g. complete documents, large binary objects) in process data, due to the impact of such objects on the K2.net database's growth over time. It is recommended to store these objects in a system specifically designed for storing such information (for example, a document repository such as SharePoint), and storing a reference to the document in K2.net process data.

If it is absolutely necessary to store such large objects in process data, it is recommended to disable the audit trail on these fields and, once the document or object is no longer required, to remove the value from the data field and set the value to empty.

What is considered large in this case?
There's no real hard and fast answer to this - generally, a big factor is also the number of process instances you are expecting to start over a given timeframe. Remember also that there is an archiving utility available to move data relating to completed process instances an archive database. What size are you expecting for these datafields and how many process instances per day/week/month, and how long will these instances remain active for?

is it in both locations (K2 and K2Log databases?)
Process instance data only resides in the K2Log database.

If we set the binary data field to blank prior to completing it, then no space for that field (no Audit) will be taken up in K2 and K2Log databases?
There will still be an entry for the datafield in the procinstdata table since you modified it's value, but it will be an empty string instead of however many bytes the attachment was.

If my workitem goes to 5 destination users (1 slot) in an activity, is it storing 1 ProcessData("Attachment1") value or making 5 copies?

If I have 1,500 active processes at any given time and each has about 300k of attachment in the binary data field is that within the acceptable parameter?
If my workitem goes to 5 destination users (1 slot) in an activity, is it storing 1 ProcessData("Attachment1") value or making 5 copies?

If you set the limit for the number of slots to 1, then no, there is no additional copies of attachment to be made for the other 4 destination users.

Is the runtime memory requirement affected by storing attachment in binary data field? (It gets loaded to K2 Server process memory space when user is accessing the workitem?)

If /3GB parameter in Boot.ini is used, would K2 Server exe use up to 3gb of memory instead of 2gb?

Reply