Skip to content

Commit

Permalink
UBERF-9367: Use domain hash (#7897)
Browse files Browse the repository at this point in the history
Signed-off-by: Andrey Sobolev <[email protected]>
  • Loading branch information
haiodo authored Feb 4, 2025
1 parent 98330cf commit 8a62327
Show file tree
Hide file tree
Showing 20 changed files with 211 additions and 78 deletions.
8 changes: 5 additions & 3 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -294,7 +294,7 @@
"name": "Debug backup tool",
"type": "node",
"request": "launch",
"args": ["src/__start.ts", "backup-restore", "../../../hardware/dump/alex-staff-agency", "w-haiodo-alex-staff-c-673ee7ab-87df5406ea-2b8b4d", "--skip", "blob"],
"args": ["src/__start.ts", "backup", "../../../hardware/dump/githubcr", "w-haiodo-githubcr-67403799-de2a46aa46-beb3b2"],
"env": {
"MINIO_ACCESS_KEY": "minioadmin",
"MINIO_SECRET_KEY": "minioadmin",
Expand All @@ -304,12 +304,14 @@
"ACCOUNTS_URL": "http://localhost:3000",
"TELEGRAM_DATABASE": "telegram-service"
},
"smartStep": true,
"sourceMapRenames": true,
"runtimeArgs": ["--nolazy", "-r", "ts-node/register"],
"sourceMaps": true,
"cwd": "${workspaceRoot}/dev/tool",
"protocol": "inspector",
"outputCapture": "std",
"runtimeVersion": "20",
"runtimeVersion": "22",
"showAsyncStacks": true
},
{
Expand Down Expand Up @@ -399,7 +401,7 @@
"SECRET": "secret",
"REGION": "cockroach",
"BUCKET_NAME":"backups",
"INTERVAL":"43200"
"INTERVAL":"0"
},
"runtimeArgs": ["--nolazy", "-r", "ts-node/register"],
"showAsyncStacks": true,
Expand Down
6 changes: 5 additions & 1 deletion packages/core/src/__tests__/client.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ import { ModelDb, TxDb } from '../memdb'
import { TxOperations } from '../operations'
import type { DocumentQuery, FindResult, SearchOptions, SearchQuery, SearchResult, TxResult } from '../storage'
import { Tx, TxFactory, TxProcessor } from '../tx'
import { fillConfiguration, pluginFilterTx } from '../utils'
import { fillConfiguration, generateId, pluginFilterTx } from '../utils'
import { connect } from './connection'
import { genMinModel } from './minmodel'

Expand Down Expand Up @@ -142,6 +142,10 @@ describe('client', () => {
finished: true
})

async getDomainHash (domain: Domain): Promise<string> {
return generateId()
}

async closeChunk (idx: number): Promise<void> {}
async loadDocs (domain: Domain, docs: Ref<Doc>[]): Promise<Doc[]> {
return []
Expand Down
6 changes: 5 additions & 1 deletion packages/core/src/__tests__/connection.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
// limitations under the License.
//

import { ClientConnectEvent, DocChunk } from '..'
import { ClientConnectEvent, DocChunk, generateId } from '..'
import type { Account, Class, Doc, Domain, Ref, Timestamp } from '../classes'
import { ClientConnection } from '../client'
import core from '../component'
Expand Down Expand Up @@ -82,6 +82,10 @@ export async function connect (handler: (tx: Tx) => void): Promise<ClientConnect
}
}

async getDomainHash (domain: Domain): Promise<string> {
return generateId()
}

async closeChunk (idx: number): Promise<void> {}
async loadDocs (domain: Domain, docs: Ref<Doc>[]): Promise<Doc[]> {
return []
Expand Down
2 changes: 2 additions & 0 deletions packages/core/src/backup.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,5 +26,7 @@ export interface BackupClient {
upload: (domain: Domain, docs: Doc[]) => Promise<void>
clean: (domain: Domain, docs: Ref<Doc>[]) => Promise<void>

getDomainHash: (domain: Domain) => Promise<string>

sendForceClose: () => Promise<void>
}
4 changes: 4 additions & 0 deletions packages/core/src/client.ts
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,10 @@ class ClientImpl implements AccountClient, BackupClient {
return await this.conn.loadChunk(domain, idx)
}

async getDomainHash (domain: Domain): Promise<string> {
return await this.conn.getDomainHash(domain)
}

async closeChunk (idx: number): Promise<void> {
await this.conn.closeChunk(idx)
}
Expand Down
2 changes: 2 additions & 0 deletions packages/core/src/server.ts
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,8 @@ export interface LowLevelStorage {
query: DocumentQuery<T>,
options?: Pick<FindOptions<T>, 'sort' | 'limit' | 'projection'>
) => Promise<Iterator<T>>

getDomainHash: (ctx: MeasureContext, domain: Domain) => Promise<string>
}

export interface Iterator<T extends Doc> {
Expand Down
5 changes: 5 additions & 0 deletions packages/query/src/__tests__/connection.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ import core, {
FindOptions,
FindResult,
FulltextStorage,
generateId,
Hierarchy,
LoadModelResponse,
ModelDb,
Expand Down Expand Up @@ -126,6 +127,10 @@ FulltextStorage & {
}
}

async getDomainHash (domain: Domain): Promise<string> {
return generateId()
}

async loadModel (lastTxTime: Timestamp): Promise<Tx[]> {
return txes
}
Expand Down
4 changes: 4 additions & 0 deletions plugins/client-resources/src/connection.ts
Original file line number Diff line number Diff line change
Expand Up @@ -802,6 +802,10 @@ class Connection implements ClientConnection {
return this.sendRequest({ method: 'loadChunk', params: [domain, idx] })
}

async getDomainHash (domain: Domain): Promise<string> {
return await this.sendRequest({ method: 'getDomainHash', params: [domain] })
}

closeChunk (idx: number): Promise<void> {
return this.sendRequest({ method: 'closeChunk', params: [idx] })
}
Expand Down
Loading

0 comments on commit 8a62327

Please sign in to comment.