Skip to content

Prevent calling UpdateTimesStampsCache for non cached entites #2129

Closed
@gokhanabatay

Description

@gokhanabatay

When query cache enabled, I realized that we are storing updatetimestampscache for non cached entities.
Is this really necessary in our scenario we use query cache for just Cache.ReadWrite or Cache.Readonly or Cache.NonstrictReadWrite entities, not non cached entities.

We need high performance to do that we need to decrease Sync. and locking for dml/select operations, its locks all threads in same application its too much cost for per operation.

I think that this needs to be configurable(Store all entities updatetimestampscache or just cacheable entities) or we give us a way to implement our UpdateTimestampsCache, because its readonly?

Action Queue can be check? executable.PropertySpaces && execuatble.Persister.Cache != null

                 private void RegisterCleanupActions(IExecutable executable)
		{
			if (executable is IAsyncExecutable asyncExecutable)
			{
				RegisterProcess(asyncExecutable.BeforeTransactionCompletionProcess);
				RegisterProcess(asyncExecutable.AfterTransactionCompletionProcess);
			}
			else
			{
#pragma warning disable 618,619
				RegisterProcess(executable.BeforeTransactionCompletionProcess);
				RegisterProcess(executable.AfterTransactionCompletionProcess);
#pragma warning restore 618,619
			}
			if (executable.PropertySpaces != null)
			{
				executedSpaces.UnionWith(executable.PropertySpaces);
			}
		}

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions