internal static void SaveNodeData(Node node, NodeSaveSettings settings, out IndexDocumentData indexDocument)
{
indexDocument = null;
var isNewNode = node.Id == 0;
var data = node.Data;
var deadlockCount = 0;
var isDeadlock = false;
while (deadlockCount++ < maxDeadlockIterations)
{
isDeadlock = !SaveNodeDataTransactional(node, settings, out indexDocument);
if (!isDeadlock)
break;
Logger.WriteWarning("Deadlock detected in SaveNodeData",
new Dictionary<string, object> { { "Id: ", node.Id }, { "Path: ", node.Path }, { "Version: ", node.Version } });
System.Threading.Thread.Sleep(sleepIfDeadlock);
}
if (isNewNode)
Logger.WriteVerbose("Node created.", CollectLoggerProperties, data);
else
Logger.WriteVerbose("Node updated.", CollectLoggerProperties, data);
}
private static bool SaveNodeDataTransactional(Node node, NodeSaveSettings settings, out IndexDocumentData indexDocument)