FastLoadData
is set to NULL
during upgrade for any entity which properties were touched by upgrade.
It gets automatically rebuilt further - during reads (materialization). The probability of FastLoadData
update during read of each entity having FastLoadData==null
is determined by Session.InconsistentDataUpdateProbability
, its default value is 50
(50%).
So if such delayed update isn't desirable (that's actually pretty inconvenient in some cases, since it turns read-only transactions into read-write, and in general, increases deadlock \ version conflict probability), you should do the following after regular upgrade:
- Create a Session with
Session.InconsistentDataUpdateProbability = 100
- Loop through all the operations below until the query there will return no objects:
- Start a transaction
- Run a query like
"
Select top 1000 DataObject instances where {FastLoadData} is NULL
"
(unfortunately, I don't remember exact v3.9 query syntax, so there can be a mistake)
- Enumerate all the entities there
- Commit a transaction.
- Probably, sleep for some period to decrease the concurrency, if this process runs
in parallel with regular operations.
Hopefully, this will help.
answered
Sep 17 '10 at 14:24
Alex Yakunin
2971●4●4●12