sync: improve perf of user account reset & deletion

this adds a new UserId index in all the notesnook collections which
helps to speed up the deletion time during account reset & delete.
This fixes the request timeout issues during both of these processes.
This commit is contained in:
Abdullah Atta
2023-01-16 13:22:57 +05:00
parent 9dc0c99e77
commit 443b4ab715
3 changed files with 15 additions and 8 deletions

View File

@@ -39,8 +39,9 @@ namespace Notesnook.API.Repositories
{
public SyncItemsRepository(IDbContext dbContext) : base(dbContext)
{
Collection.Indexes.CreateOne(new CreateIndexModel<T>(Builders<T>.IndexKeys.Descending(i => i.DateSynced).Ascending(i => i.UserId)));
Collection.Indexes.CreateOne(new CreateIndexModel<T>(Builders<T>.IndexKeys.Ascending((i) => i.ItemId).Ascending(i => i.UserId)));
Collection.Indexes.CreateOne(new CreateIndexModel<T>(Builders<T>.IndexKeys.Ascending(i => i.UserId).Descending(i => i.DateSynced)));
Collection.Indexes.CreateOne(new CreateIndexModel<T>(Builders<T>.IndexKeys.Ascending(i => i.UserId).Ascending((i) => i.ItemId)));
Collection.Indexes.CreateOne(new CreateIndexModel<T>(Builders<T>.IndexKeys.Ascending(i => i.UserId)));
}
private readonly List<string> ALGORITHMS = new List<string> { Algorithms.Default };