Browse Source

Update OrleansDashboard and batch updates.

pull/743/head
Sebastian 4 years ago
parent
commit
cdc66f4838
  1. 6
      backend/src/Migrations/Migrations/ConvertEventStore.cs
  2. 25
      backend/src/Migrations/Migrations/ConvertEventStoreAppId.cs
  3. 2
      backend/src/Squidex.Domain.Apps.Entities.MongoDb/Assets/MongoAssetFolderRepository_SnapshotStore.cs
  4. 2
      backend/src/Squidex.Domain.Apps.Entities.MongoDb/Assets/MongoAssetRepository_SnapshotStore.cs
  5. 2
      backend/src/Squidex.Domain.Apps.Entities.MongoDb/Contents/MongoContentCollection.cs
  6. 2
      backend/src/Squidex.Domain.Apps.Entities.MongoDb/FullText/MongoTextIndex.cs
  7. 4
      backend/src/Squidex.Domain.Apps.Entities.MongoDb/FullText/MongoTextIndexerState.cs
  8. 8
      backend/src/Squidex.Domain.Apps.Entities.MongoDb/History/MongoHistoryEventRepository.cs
  9. 2
      backend/src/Squidex.Domain.Apps.Entities.MongoDb/Schemas/MongoSchemasHash.cs
  10. 4
      backend/src/Squidex.Infrastructure.MongoDb/UsageTracking/MongoUsageRepository.cs
  11. 4
      backend/src/Squidex/Squidex.csproj

6
backend/src/Migrations/Migrations/ConvertEventStore.cs

@ -33,6 +33,10 @@ namespace Migrations.Migrations
var filter = Builders<BsonDocument>.Filter;
var writes = new List<WriteModel<BsonDocument>>();
var writeOptions = new BulkWriteOptions
{
IsOrdered = false
};
async Task WriteAsync(WriteModel<BsonDocument>? model, bool force)
{
@ -43,7 +47,7 @@ namespace Migrations.Migrations
if (writes.Count == 1000 || (force && writes.Count > 0))
{
await collection.BulkWriteAsync(writes, cancellationToken: ct);
await collection.BulkWriteAsync(writes, writeOptions, ct);
writes.Clear();
}

25
backend/src/Migrations/Migrations/ConvertEventStoreAppId.cs

@ -32,23 +32,28 @@ namespace Migrations.Migrations
{
var collection = mongoEventStore.RawCollection;
var filterer = Builders<BsonDocument>.Filter;
var updater = Builders<BsonDocument>.Update;
var filter = Builders<BsonDocument>.Filter;
var writesBatches = new List<WriteModel<BsonDocument>>();
var updates = Builders<BsonDocument>.Update;
var writes = new List<WriteModel<BsonDocument>>();
var writeOptions = new BulkWriteOptions
{
IsOrdered = false
};
async Task WriteAsync(WriteModel<BsonDocument>? model, bool force)
{
if (model != null)
{
writesBatches.Add(model);
writes.Add(model);
}
if (writesBatches.Count == 1000 || (force && writesBatches.Count > 0))
if (writes.Count == 1000 || (force && writes.Count > 0))
{
await collection.BulkWriteAsync(writesBatches, cancellationToken: ct);
await collection.BulkWriteAsync(writes, writeOptions, ct);
writesBatches.Clear();
writes.Clear();
}
}
@ -66,11 +71,11 @@ namespace Migrations.Migrations
{
var appId = NamedId<Guid>.Parse(appIdValue.AsString, Guid.TryParse).Id.ToString();
var eventUpdate = updater.Set($"Events.{index}.Metadata.AppId", appId);
var eventUpdate = updates.Set($"Events.{index}.Metadata.AppId", appId);
if (update != null)
{
update = updater.Combine(update, eventUpdate);
update = updates.Combine(update, eventUpdate);
}
else
{
@ -83,7 +88,7 @@ namespace Migrations.Migrations
if (update != null)
{
var write = new UpdateOneModel<BsonDocument>(filterer.Eq("_id", commit["_id"].AsString), update);
var write = new UpdateOneModel<BsonDocument>(filter.Eq("_id", commit["_id"].AsString), update);
await WriteAsync(write, false);
}

2
backend/src/Squidex.Domain.Apps.Entities.MongoDb/Assets/MongoAssetFolderRepository_SnapshotStore.cs

@ -67,7 +67,7 @@ namespace Squidex.Domain.Apps.Entities.MongoDb.Assets
return;
}
await Collection.BulkWriteAsync(updates);
await Collection.BulkWriteAsync(updates, BulkUnordered);
}
}

2
backend/src/Squidex.Domain.Apps.Entities.MongoDb/Assets/MongoAssetRepository_SnapshotStore.cs

@ -67,7 +67,7 @@ namespace Squidex.Domain.Apps.Entities.MongoDb.Assets
return;
}
await Collection.BulkWriteAsync(updates);
await Collection.BulkWriteAsync(updates, BulkUnordered);
}
}

2
backend/src/Squidex.Domain.Apps.Entities.MongoDb/Contents/MongoContentCollection.cs

@ -223,7 +223,7 @@ namespace Squidex.Domain.Apps.Entities.MongoDb.Contents
IsUpsert = true
}).ToList();
return Collection.BulkWriteAsync(writes);
return Collection.BulkWriteAsync(writes, BulkUnordered);
}
}
}

2
backend/src/Squidex.Domain.Apps.Entities.MongoDb/FullText/MongoTextIndex.cs

@ -76,7 +76,7 @@ namespace Squidex.Domain.Apps.Entities.MongoDb.FullText
return Task.CompletedTask;
}
return Collection.BulkWriteAsync(writes);
return Collection.BulkWriteAsync(writes, BulkUnordered);
}
public async Task<List<DomainId>?> SearchAsync(IAppEntity app, GeoQuery query, SearchScope scope)

4
backend/src/Squidex.Domain.Apps.Entities.MongoDb/FullText/MongoTextIndexerState.cs

@ -80,7 +80,7 @@ namespace Squidex.Domain.Apps.Entities.MongoDb.FullText
return Task.CompletedTask;
}
return Collection.BulkWriteAsync(writes);
return Collection.BulkWriteAsync(writes, BulkUnordered);
}
}
}
}

8
backend/src/Squidex.Domain.Apps.Entities.MongoDb/History/MongoHistoryEventRepository.cs

@ -72,7 +72,7 @@ namespace Squidex.Domain.Apps.Entities.MongoDb.History
}
}
public async Task InsertManyAsync(IEnumerable<HistoryEvent> historyEvents)
public Task InsertManyAsync(IEnumerable<HistoryEvent> historyEvents)
{
var writes = historyEvents
.Select(x =>
@ -82,10 +82,12 @@ namespace Squidex.Domain.Apps.Entities.MongoDb.History
})
.ToList();
if (writes.Count > 0)
if (writes.Count == 0)
{
await Collection.BulkWriteAsync(writes);
return Task.CompletedTask;
}
return Collection.BulkWriteAsync(writes, BulkUnordered);
}
}
}

2
backend/src/Squidex.Domain.Apps.Entities.MongoDb/Schemas/MongoSchemasHash.cs

@ -82,7 +82,7 @@ namespace Squidex.Domain.Apps.Entities.MongoDb.Schemas
return Task.CompletedTask;
}
return Collection.BulkWriteAsync(writes);
return Collection.BulkWriteAsync(writes, BulkUnordered);
}
public async Task<(Instant Create, string Hash)> GetCurrentHashAsync(IAppEntity app)

4
backend/src/Squidex.Infrastructure.MongoDb/UsageTracking/MongoUsageRepository.cs

@ -17,8 +17,6 @@ namespace Squidex.Infrastructure.UsageTracking
{
public sealed class MongoUsageRepository : MongoRepositoryBase<MongoUsage>, IUsageRepository
{
private static readonly BulkWriteOptions Unordered = new BulkWriteOptions { IsOrdered = false };
public MongoUsageRepository(IMongoDatabase database)
: base(database)
{
@ -75,7 +73,7 @@ namespace Squidex.Infrastructure.UsageTracking
}
}
await Collection.BulkWriteAsync(writes, Unordered);
await Collection.BulkWriteAsync(writes, BulkUnordered);
}
}

4
backend/src/Squidex/Squidex.csproj

@ -58,8 +58,8 @@
<PackageReference Include="NSwag.AspNetCore" Version="13.11.3" />
<PackageReference Include="OpenCover" Version="4.7.1221" PrivateAssets="all" />
<PackageReference Include="Orleans.Providers.MongoDB" Version="3.3.1" />
<PackageReference Include="OrleansDashboard" Version="3.3.0" />
<PackageReference Include="OrleansDashboard.EmbeddedAssets" Version="3.3.0" />
<PackageReference Include="OrleansDashboard" Version="3.5.1" />
<PackageReference Include="OrleansDashboard.EmbeddedAssets" Version="3.5.1" />
<PackageReference Include="RefactoringEssentials" Version="5.6.0" PrivateAssets="all" />
<PackageReference Include="ReportGenerator" Version="4.8.11" PrivateAssets="all" />
<PackageReference Include="Squidex.Assets.Azure" Version="1.8.0" />

Loading…
Cancel
Save