Skip to content

Commit f270300

Browse files
committed
fix write graphs
1 parent 354f4cc commit f270300

File tree

2 files changed

+16
-26
lines changed

2 files changed

+16
-26
lines changed

slo/src/Linq2db.Slo/SloLinq2DbContext.cs

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
using LinqToDB;
1+
using System;
2+
using System.Threading.Tasks;
3+
using LinqToDB;
24
using LinqToDB.Data;
35
using LinqToDB.Mapping;
46
using Internal;
@@ -18,22 +20,16 @@ static SloTableContext()
1820
maxAttempts: 10,
1921
onRetry: (attempt, ex, delay) =>
2022
{
21-
// здесь при желании снимать метрики: attempt, delay, ((YdbException)ex).Code
23+
// метрики/логи при желании
2224
}
2325
);
2426
}
2527

2628
public sealed class Linq2dbClient
2729
{
2830
private readonly string _connectionString;
29-
30-
public Linq2dbClient(string connectionString)
31-
{
32-
_connectionString = connectionString;
33-
}
34-
35-
public DataConnection Open()
36-
=> new DataConnection("YDB", _connectionString);
31+
public Linq2dbClient(string connectionString) => _connectionString = connectionString;
32+
public DataConnection Open() => new DataConnection("YDB", _connectionString);
3733
}
3834

3935
protected override Linq2dbClient CreateClient(Config config)
@@ -58,15 +54,14 @@ PRIMARY KEY (Guid, Id)
5854
}
5955
catch
6056
{
61-
// YDB не поддерживает IF NOT EXISTS; если таблица есть — окей
57+
// YDB не поддерживает IF NOT EXISTS; если таблица есть — это норм
6258
}
6359

6460
if (!string.IsNullOrWhiteSpace(SloTable.Options))
65-
{
6661
await db.ExecuteAsync(SloTable.Options);
67-
}
6862
}
6963

64+
// ВАЖНО: вернуть >0 при успехе, иначе write-графики будут пустые.
7065
protected override async Task<int> Save(Linq2dbClient client, SloTable sloTable, int writeTimeout)
7166
{
7267
await using var db = client.Open();
@@ -77,7 +72,7 @@ await db.ExecuteAsync($@"
7772
VALUES ({sloTable.Guid}, {sloTable.Id}, {sloTable.PayloadStr}, {sloTable.PayloadDouble}, {sloTable.PayloadTimestamp});
7873
");
7974

80-
return 0;
75+
return 1;
8176
}
8277

8378
protected override async Task<object?> Select(Linq2dbClient client, (Guid Guid, int Id) select, int readTimeout)

src/Linq2db.Ydb/src/Internal/YdbSdkRetryPolicyAdapter.cs

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
1-
// для DataConnection в Factory
2-
using L2RetryOptions = LinqToDB.Data.RetryPolicy.RetryPolicyOptions;
1+
using L2RetryOptions = LinqToDB.Data.RetryPolicy.RetryPolicyOptions;
32
using L2IRetryPolicy = LinqToDB.Data.RetryPolicy.IRetryPolicy;
4-
using Ydb.Sdk.Ado;
3+
using Ydb.Sdk.Ado; // <== важно: тут YdbException
54
using Ydb.Sdk.Ado.RetryPolicy;
65

76
namespace LinqToDB.Internal.DataProvider.Ydb.Internal
@@ -127,10 +126,6 @@ private static bool TryFindYdbException(Exception ex, out YdbException ydbEx)
127126
/// </summary>
128127
public static class YdbSdkRetryPolicyRegistration
129128
{
130-
/// <summary>
131-
/// Подключить ретраи SDK глобально для всех новых DataConnection.
132-
/// Вызывать один раз при старте/перед SLO-тестом.
133-
/// </summary>
134129
public static void UseGlobally(YdbRetryPolicyConfig? config = null, Action<int, Exception, TimeSpan?>? onRetry = null)
135130
{
136131
L2RetryOptions.Default = L2RetryOptions.Default with
@@ -151,11 +146,11 @@ public static void UseGloballyWithIdempotence(
151146
var cfg = new YdbRetryPolicyConfig
152147
{
153148
EnableRetryIdempotence = true,
154-
MaxAttempts = maxAttempts ?? YdbRetryPolicyConfig.Default.MaxAttempts,
155-
FastBackoffBaseMs = fastBaseMs ?? YdbRetryPolicyConfig.Default.FastBackoffBaseMs,
156-
SlowBackoffBaseMs = slowBaseMs ?? YdbRetryPolicyConfig.Default.SlowBackoffBaseMs,
157-
FastCapBackoffMs = fastCapMs ?? YdbRetryPolicyConfig.Default.FastCapBackoffMs,
158-
SlowCapBackoffMs = slowCapMs ?? YdbRetryPolicyConfig.Default.SlowCapBackoffMs
149+
MaxAttempts = maxAttempts ?? YdbRetryPolicyConfig.Default.MaxAttempts,
150+
FastBackoffBaseMs = fastBaseMs ?? YdbRetryPolicyConfig.Default.FastBackoffBaseMs,
151+
SlowBackoffBaseMs = slowBaseMs ?? YdbRetryPolicyConfig.Default.SlowBackoffBaseMs,
152+
FastCapBackoffMs = fastCapMs ?? YdbRetryPolicyConfig.Default.FastCapBackoffMs,
153+
SlowCapBackoffMs = slowCapMs ?? YdbRetryPolicyConfig.Default.SlowCapBackoffMs
159154
};
160155

161156
UseGlobally(cfg, onRetry);

0 commit comments

Comments
 (0)