diff --git a/src/main/java/ru/pdguard/core/PayloadStore.java b/src/main/java/ru/pdguard/core/PayloadStore.java
index 317c0f4..c19792b 100644
--- a/src/main/java/ru/pdguard/core/PayloadStore.java
+++ b/src/main/java/ru/pdguard/core/PayloadStore.java
@@ -24,9 +24,8 @@ import org.springframework.stereotype.Component;
* было бы получить в ответ исходные значения из запроса другого потребителя. Разделение
* ограничивает это пределами одной системы, которая и так видит свои данные.
*
- *
Хранилище ограничено по суммарному объёму строк, а записи живут ограниченное время:
- * персональные данные не должны залёживаться в памяти, а крупные тексты не должны исчерпать кучу.
- * Вытеснение идёт в порядке добавления и выполняется прямо на записи — отдельного потока и внешней
+ *
Записи живут ограниченное время: персональные данные не должны залёживаться в памяти.
+ * Протухшие записи убираются в порядке добавления прямо на записи — отдельного потока и внешней
* библиотеки кеширования не требуется.
*
*
Когда включён общий слой ({@link SharedIndex}), соответствие пишется ещё и туда, а чтение при
@@ -58,26 +57,30 @@ public class PayloadStore {
private final ConcurrentLinkedQueue insertionOrder = new ConcurrentLinkedQueue<>();
private final AtomicLong charsHeld = new AtomicLong();
- private final long maxChars;
private final long ttlMillis;
private final SharedIndex shared;
private final PayloadCipher cipher;
@Autowired
public PayloadStore(
- @Value("${pdguard.store.max-chars:134217728}") long maxChars,
@Value("${pdguard.store.ttl-minutes:30}") int ttlMinutes,
SharedIndex shared,
PayloadCipher cipher) {
- this.maxChars = maxChars;
this.ttlMillis = ttlMinutes * 60_000L;
this.shared = shared;
this.cipher = cipher;
}
/** Конструктор для тестов: только локальная память, общий слой и шифрование выключены. */
- public PayloadStore(long maxChars, int ttlMinutes) {
- this(maxChars, ttlMinutes, SharedIndex.disabled(), PayloadCipher.disabled());
+ public PayloadStore(int ttlMinutes) {
+ this(ttlMinutes, SharedIndex.disabled(), PayloadCipher.disabled());
+ }
+
+ /** Конструктор для тестов с явным общим слоем и шифрованием. */
+ public PayloadStore(int ttlMinutes, SharedIndex shared, PayloadCipher cipher) {
+ this.ttlMillis = ttlMinutes * 60_000L;
+ this.shared = shared;
+ this.cipher = cipher;
}
public void put(String system, String payloadId, String original, String masked) {
@@ -92,7 +95,6 @@ public class PayloadStore {
charsHeld.addAndGet((long) entry.weight() - (replaced == null ? 0 : replaced.weight()));
sweepExpired(now);
- evictWhileOverLimit();
shared.put(system, payloadId, encrypted, masked, entry.fingerprint());
}
@@ -154,22 +156,6 @@ public class PayloadStore {
}
}
- private void evictWhileOverLimit() {
- while (charsHeld.get() > maxChars) {
- String oldest = insertionOrder.poll();
- if (oldest == null) {
- return;
- }
- Entry entry = byId.get(oldest);
- if (entry != null) {
- // ponytail: если тот же payload_id записали повторно, в очереди остался
- // старый след и здесь вытесняется свежая запись. Цена — одно лишнее
- // обращение к маскированию; точный учёт потребовал бы двусвязного списка.
- forget(oldest, entry);
- }
- }
- }
-
private void forget(String idKey, Entry entry) {
if (byId.remove(idKey, entry)) {
byMaskFingerprint.remove(ScopedKey.of(entry.system(), entry.fingerprint()), entry);
diff --git a/src/main/java/ru/pdguard/core/PipelineWarmup.java b/src/main/java/ru/pdguard/core/PipelineWarmup.java
index 16484f7..c00c3b6 100644
--- a/src/main/java/ru/pdguard/core/PipelineWarmup.java
+++ b/src/main/java/ru/pdguard/core/PipelineWarmup.java
@@ -62,7 +62,7 @@ public class PipelineWarmup {
}
long started = System.nanoTime();
Pipeline scratch =
- new Pipeline(registry, masker, new PayloadStore(1_000_000L, 1), NameCascade.disabled());
+ new Pipeline(registry, masker, new PayloadStore(1), NameCascade.disabled());
SystemPolicy policy =
new SystemPolicy(
SystemPolicy.DEFAULT_NAME,
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 1d227d1..2f963ff 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -37,12 +37,6 @@ pdguard:
systems-file: config/systems.json
store:
backend: memory
- # 128MB (было) держал store.chars упёртым в потолок под держащей нагрузкой —
- # FIFO-вытеснение выкидывало свежую запись за миллисекунды, раньше, чем
- # приходил её собственный демаскирующий запрос: см. k6 на датасете утечек,
- # 6.1% неверных демасков при 2000 VU, при этом 0% на низкой конкурентности.
- # На одном узле без соседей по хосту память есть — 512MB даёт запас на порядок.
- max-chars: 536870912
ttl-minutes: 30
# 32 байта в hex; AES-256 ключ шифрования хранилища
encryption-key: "46a38b200c6df557a5fd2c8a57ad3fec6b710b9f3e1fef1451d121a094f63573"
diff --git a/src/test/java/ru/pdguard/BankTypesTest.java b/src/test/java/ru/pdguard/BankTypesTest.java
index b6a15dc..efd3179 100644
--- a/src/test/java/ru/pdguard/BankTypesTest.java
+++ b/src/test/java/ru/pdguard/BankTypesTest.java
@@ -15,7 +15,7 @@ import ru.pdguard.mask.Masker;
class BankTypesTest {
private final Pipeline pipeline =
- new Pipeline(new RuleRegistry(), new Masker(), new PayloadStore(1_000_000L, 30));
+ new Pipeline(new RuleRegistry(), new Masker(), new PayloadStore(30));
private void assertHidden(String text, String secret) {
String masked = pipeline.process(text, UUID.randomUUID().toString(), SystemPolicy.DEFAULT);
diff --git a/src/test/java/ru/pdguard/BenchmarkTest.java b/src/test/java/ru/pdguard/BenchmarkTest.java
index 7d22109..5ef3abd 100644
--- a/src/test/java/ru/pdguard/BenchmarkTest.java
+++ b/src/test/java/ru/pdguard/BenchmarkTest.java
@@ -80,7 +80,7 @@ class BenchmarkTest {
}
private final Pipeline pipeline =
- new Pipeline(new RuleRegistry(), new Masker(), new PayloadStore(10_000_000L, 30));
+ new Pipeline(new RuleRegistry(), new Masker(), new PayloadStore(30));
/**
* Набор, на котором правила отлаживались. Пороги здесь высокие: любое падение означает, что
@@ -131,7 +131,7 @@ class BenchmarkTest {
? new Pipeline(
new RuleRegistry(),
new Masker(),
- new PayloadStore(10_000_000L, 30),
+ new PayloadStore(30),
new NameCascade(ENGINE, Optional.of(MODEL_PATH), 16, 4))
: pipeline;
Result result = measure(stage, "/benchmark-holdout3.txt", "второй контрольный набор");
@@ -158,7 +158,7 @@ class BenchmarkTest {
? new Pipeline(
new RuleRegistry(),
new Masker(),
- new PayloadStore(10_000_000L, 30),
+ new PayloadStore(30),
new NameCascade(ENGINE, Optional.of(MODEL_PATH), 16, 4))
: pipeline;
Result result = measure(stage, "/benchmark-holdout2.txt", "второй отложенный набор");
@@ -206,7 +206,7 @@ class BenchmarkTest {
? new Pipeline(
new RuleRegistry(),
new Masker(),
- new PayloadStore(10_000_000L, 30),
+ new PayloadStore(30),
new NameCascade(ENGINE, Optional.of(MODEL_PATH), 16, 4))
: pipeline;
Result result = measure(stage, "/benchmark-generated.txt", "сгенерированный набор");
@@ -232,7 +232,7 @@ class BenchmarkTest {
new Pipeline(
new RuleRegistry(),
new Masker(),
- new PayloadStore(10_000_000L, 30),
+ new PayloadStore(30),
new NameCascade(ENGINE, Optional.of(MODEL_PATH), 16, 4));
Result result =
measure(withCascade, "/benchmark-holdout.txt", "отложенный набор, вторая ступень включена");
diff --git a/src/test/java/ru/pdguard/ContextDetectionTest.java b/src/test/java/ru/pdguard/ContextDetectionTest.java
index 89bc763..f21b081 100644
--- a/src/test/java/ru/pdguard/ContextDetectionTest.java
+++ b/src/test/java/ru/pdguard/ContextDetectionTest.java
@@ -16,7 +16,7 @@ import ru.pdguard.mask.Masker;
class ContextDetectionTest {
private final Pipeline pipeline =
- new Pipeline(new RuleRegistry(), new Masker(), new PayloadStore(1_000_000L, 30));
+ new Pipeline(new RuleRegistry(), new Masker(), new PayloadStore(30));
private String mask(String text) {
return pipeline.process(text, UUID.randomUUID().toString(), SystemPolicy.DEFAULT);
diff --git a/src/test/java/ru/pdguard/Dataset200Test.java b/src/test/java/ru/pdguard/Dataset200Test.java
index 278898c..bb4c90b 100644
--- a/src/test/java/ru/pdguard/Dataset200Test.java
+++ b/src/test/java/ru/pdguard/Dataset200Test.java
@@ -48,7 +48,7 @@ class Dataset200Test {
}
private void runCase(BenchmarkFixtures.Sample sample, int index) {
- Pipeline pipeline = new Pipeline(REGISTRY, MASKER, new PayloadStore(1_000_000L, 30));
+ Pipeline pipeline = new Pipeline(REGISTRY, MASKER, new PayloadStore(30));
String payloadId = "dataset200-" + index;
String masked = pipeline.process(sample.text(), payloadId, SystemPolicy.DEFAULT);
diff --git a/src/test/java/ru/pdguard/DateAndAddressTest.java b/src/test/java/ru/pdguard/DateAndAddressTest.java
index cc2cd50..cac1587 100644
--- a/src/test/java/ru/pdguard/DateAndAddressTest.java
+++ b/src/test/java/ru/pdguard/DateAndAddressTest.java
@@ -17,7 +17,7 @@ import ru.pdguard.mask.Masker;
class DateAndAddressTest {
private final Pipeline pipeline =
- new Pipeline(new RuleRegistry(), new Masker(), new PayloadStore(1_000_000L, 30));
+ new Pipeline(new RuleRegistry(), new Masker(), new PayloadStore(30));
private String mask(String text) {
return pipeline.process(text, UUID.randomUUID().toString(), SystemPolicy.DEFAULT);
diff --git a/src/test/java/ru/pdguard/FioTest.java b/src/test/java/ru/pdguard/FioTest.java
index 88d1f57..d37e666 100644
--- a/src/test/java/ru/pdguard/FioTest.java
+++ b/src/test/java/ru/pdguard/FioTest.java
@@ -16,7 +16,7 @@ import ru.pdguard.mask.Masker;
class FioTest {
private final Pipeline pipeline =
- new Pipeline(new RuleRegistry(), new Masker(), new PayloadStore(1_000_000L, 30));
+ new Pipeline(new RuleRegistry(), new Masker(), new PayloadStore(30));
private String mask(String text) {
return pipeline.process(text, UUID.randomUUID().toString(), SystemPolicy.DEFAULT);
diff --git a/src/test/java/ru/pdguard/HugeDatasetTest.java b/src/test/java/ru/pdguard/HugeDatasetTest.java
index 950cae8..766ba8c 100644
--- a/src/test/java/ru/pdguard/HugeDatasetTest.java
+++ b/src/test/java/ru/pdguard/HugeDatasetTest.java
@@ -110,7 +110,7 @@ class HugeDatasetTest {
private void runCase(int targetChars, int seed) {
Pipeline pipeline =
- new Pipeline(REGISTRY, MASKER, new PayloadStore(targetChars * 2L + 4096, 30));
+ new Pipeline(REGISTRY, MASKER, new PayloadStore(30));
BenchmarkFixtures.Sample sample = buildText(targetChars, seed);
String payloadId = "dataset-" + seed;
diff --git a/src/test/java/ru/pdguard/IdentityDocumentTest.java b/src/test/java/ru/pdguard/IdentityDocumentTest.java
index b04ee25..0a70533 100644
--- a/src/test/java/ru/pdguard/IdentityDocumentTest.java
+++ b/src/test/java/ru/pdguard/IdentityDocumentTest.java
@@ -15,7 +15,7 @@ import ru.pdguard.mask.Masker;
class IdentityDocumentTest {
private final Pipeline pipeline =
- new Pipeline(new RuleRegistry(), new Masker(), new PayloadStore(1_000_000L, 30));
+ new Pipeline(new RuleRegistry(), new Masker(), new PayloadStore(30));
private void assertHidden(String text, String secret) {
String masked = pipeline.process(text, UUID.randomUUID().toString(), SystemPolicy.DEFAULT);
diff --git a/src/test/java/ru/pdguard/LargeTextTest.java b/src/test/java/ru/pdguard/LargeTextTest.java
index 61bcd13..1266bf1 100644
--- a/src/test/java/ru/pdguard/LargeTextTest.java
+++ b/src/test/java/ru/pdguard/LargeTextTest.java
@@ -74,7 +74,7 @@ class LargeTextTest {
BenchmarkFixtures.Sample large = buildLargeText(TARGET_CHARS, 1);
Pipeline pipeline =
new Pipeline(
- new RuleRegistry(), new Masker(), new PayloadStore(large.text().length() * 2L, 30));
+ new RuleRegistry(), new Masker(), new PayloadStore(30));
long maskStarted = System.nanoTime();
String masked = pipeline.process(large.text(), "large-mixed-1", SystemPolicy.DEFAULT);
@@ -102,7 +102,7 @@ class LargeTextTest {
@Test
void recallHoldsAtScale() {
BenchmarkFixtures.Sample large = buildLargeText(TARGET_CHARS, 2);
- Pipeline pipeline = new Pipeline(new RuleRegistry(), new Masker(), new PayloadStore(1L, 30));
+ Pipeline pipeline = new Pipeline(new RuleRegistry(), new Masker(), new PayloadStore(30));
List found = pipeline.findPersonalData(large.text(), SystemPolicy.DEFAULT);
int hit = 0;
@@ -138,7 +138,7 @@ class LargeTextTest {
new Pipeline(
new RuleRegistry(),
new Masker(),
- new PayloadStore(large.text().length() * 2L, 30),
+ new PayloadStore(30),
new NameCascade(ENGINE, Optional.of(MODEL_PATH), 16, 4));
long started = System.nanoTime();
diff --git a/src/test/java/ru/pdguard/LeakDiagTest.java b/src/test/java/ru/pdguard/LeakDiagTest.java
index 83dd845..25d4c9a 100644
--- a/src/test/java/ru/pdguard/LeakDiagTest.java
+++ b/src/test/java/ru/pdguard/LeakDiagTest.java
@@ -31,7 +31,7 @@ class LeakDiagTest {
@Test
void checkLeaks() {
- Pipeline p = new Pipeline(new RuleRegistry(), new Masker(), new PayloadStore(1_000_000L, 30));
+ Pipeline p = new Pipeline(new RuleRegistry(), new Masker(), new PayloadStore(30));
List leaks = readDataset();
int fixed = 0;
diff --git a/src/test/java/ru/pdguard/LegalNerTest.java b/src/test/java/ru/pdguard/LegalNerTest.java
index 9d6167e..d92a519 100644
--- a/src/test/java/ru/pdguard/LegalNerTest.java
+++ b/src/test/java/ru/pdguard/LegalNerTest.java
@@ -25,7 +25,7 @@ class LegalNerTest {
"off", Optional.empty(),
"ru-legal-ner", Optional.of("models/ru-legal-ner")),
16, 4);
- Pipeline p = new Pipeline(new RuleRegistry(), new Masker(), new PayloadStore(1_000_000L, 30), cascade);
+ Pipeline p = new Pipeline(new RuleRegistry(), new Masker(), new PayloadStore(30), cascade);
return p.findPersonalData(text, SystemPolicy.DEFAULT);
}
diff --git a/src/test/java/ru/pdguard/MaskModeTest.java b/src/test/java/ru/pdguard/MaskModeTest.java
index b1ae168..58d332b 100644
--- a/src/test/java/ru/pdguard/MaskModeTest.java
+++ b/src/test/java/ru/pdguard/MaskModeTest.java
@@ -21,7 +21,7 @@ import ru.pdguard.mask.Masker;
class MaskModeTest {
private final Pipeline pipeline =
- new Pipeline(new RuleRegistry(), new Masker(), new PayloadStore(1_000_000L, 30));
+ new Pipeline(new RuleRegistry(), new Masker(), new PayloadStore(30));
private SystemPolicy policy(MaskMode mode) {
return new SystemPolicy(
diff --git a/src/test/java/ru/pdguard/NameCascadeTest.java b/src/test/java/ru/pdguard/NameCascadeTest.java
index 9d952d7..4e065c9 100644
--- a/src/test/java/ru/pdguard/NameCascadeTest.java
+++ b/src/test/java/ru/pdguard/NameCascadeTest.java
@@ -24,7 +24,7 @@ class NameCascadeTest {
private String mask(NameCascade cascade, String payloadId) {
Pipeline pipeline =
- new Pipeline(new RuleRegistry(), new Masker(), new PayloadStore(1_000_000L, 30), cascade);
+ new Pipeline(new RuleRegistry(), new Masker(), new PayloadStore(30), cascade);
return pipeline.process(TEXT, payloadId, SystemPolicy.DEFAULT);
}
diff --git a/src/test/java/ru/pdguard/NormalisedDigitsTest.java b/src/test/java/ru/pdguard/NormalisedDigitsTest.java
index 809ca68..b085ac7 100644
--- a/src/test/java/ru/pdguard/NormalisedDigitsTest.java
+++ b/src/test/java/ru/pdguard/NormalisedDigitsTest.java
@@ -18,7 +18,7 @@ import static org.junit.jupiter.api.Assertions.assertFalse;
class NormalisedDigitsTest {
private final Pipeline pipeline =
- new Pipeline(new RuleRegistry(), new Masker(), new PayloadStore(1_000_000L, 30));
+ new Pipeline(new RuleRegistry(), new Masker(), new PayloadStore(30));
private void assertHidden(String text, String secret) {
String masked = pipeline.process(text, UUID.randomUUID().toString(), SystemPolicy.DEFAULT);
diff --git a/src/test/java/ru/pdguard/OrganisationNamesTest.java b/src/test/java/ru/pdguard/OrganisationNamesTest.java
index 11ac6df..462acf8 100644
--- a/src/test/java/ru/pdguard/OrganisationNamesTest.java
+++ b/src/test/java/ru/pdguard/OrganisationNamesTest.java
@@ -18,7 +18,7 @@ import ru.pdguard.mask.Masker;
class OrganisationNamesTest {
private final Pipeline pipeline =
- new Pipeline(new RuleRegistry(), new Masker(), new PayloadStore(1_000_000L, 30));
+ new Pipeline(new RuleRegistry(), new Masker(), new PayloadStore(30));
private String mask(String text) {
return pipeline.process(text, UUID.randomUUID().toString(), SystemPolicy.DEFAULT);
diff --git a/src/test/java/ru/pdguard/PayloadCipherTest.java b/src/test/java/ru/pdguard/PayloadCipherTest.java
index 060f645..484fe99 100644
--- a/src/test/java/ru/pdguard/PayloadCipherTest.java
+++ b/src/test/java/ru/pdguard/PayloadCipherTest.java
@@ -35,7 +35,7 @@ class PayloadCipherTest {
void storeStoresEncryptedButReturnsPlaintext() {
PayloadCipher cipher = new PayloadCipher(KEY);
PayloadStore store =
- new PayloadStore(1_000_000L, 30, ru.pdguard.core.SharedIndex.disabled(), cipher);
+ new PayloadStore(30, ru.pdguard.core.SharedIndex.disabled(), cipher);
String original = "Клиент Иванов Иван Иванович, паспорт 4509 123456";
String masked = "Клиент И. И. И., паспорт 45** ****56";
diff --git a/src/test/java/ru/pdguard/PayloadStoreTest.java b/src/test/java/ru/pdguard/PayloadStoreTest.java
index 019d70a..b32b271 100644
--- a/src/test/java/ru/pdguard/PayloadStoreTest.java
+++ b/src/test/java/ru/pdguard/PayloadStoreTest.java
@@ -3,19 +3,18 @@ package ru.pdguard;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
import org.junit.jupiter.api.Test;
import ru.pdguard.core.PayloadStore;
-/** Ограничения хранилища соответствий: объём, срок жизни и разделение по системам. */
+/** Ограничения хранилища соответствий: срок жизни и разделение по системам. */
class PayloadStoreTest {
private static final String SYSTEM = "crm";
@Test
void returnsWhatWasStored() {
- PayloadStore store = new PayloadStore(1_000_000L, 30);
+ PayloadStore store = new PayloadStore(30);
store.put(SYSTEM, "id", "исходный текст", "маска");
PayloadStore.Entry entry = store.byId(SYSTEM, "id");
@@ -27,28 +26,16 @@ class PayloadStoreTest {
@Test
void forgetsEntriesAfterTheirLifetime() {
- PayloadStore store = new PayloadStore(1_000_000L, 0);
+ PayloadStore store = new PayloadStore(0);
store.put(SYSTEM, "id", "исходный текст", "маска");
assertNull(store.byId(SYSTEM, "id"), "запись с истёкшим сроком жизни не должна отдаваться");
assertNull(store.originalForMask(SYSTEM, "маска"));
}
- @Test
- void evictsOldestWhenOverSizeLimit() {
- PayloadStore store = new PayloadStore(100L, 30);
- for (int i = 0; i < 50; i++) {
- store.put(SYSTEM, "id" + i, "текст номер " + i, "маска номер " + i);
- }
-
- assertTrue(store.charsHeld() <= 100, "объём хранилища вышел за предел: " + store.charsHeld());
- assertNull(store.byId(SYSTEM, "id0"), "самая старая запись должна быть вытеснена");
- assertNotNull(store.byId(SYSTEM, "id49"), "последняя запись должна остаться");
- }
-
@Test
void unknownKeysReturnNothing() {
- PayloadStore store = new PayloadStore(1_000_000L, 30);
+ PayloadStore store = new PayloadStore(30);
assertNull(store.byId(SYSTEM, "нет такого"));
assertNull(store.originalForMask(SYSTEM, "нет такой маски"));
}
@@ -60,7 +47,7 @@ class PayloadStoreTest {
*/
@Test
void oneSystemCannotReadAnotherSystemData() {
- PayloadStore store = new PayloadStore(1_000_000L, 30);
+ PayloadStore store = new PayloadStore(30);
store.put("crm", "общий-id", "Иванов Иван Иванович", "И. И. И.");
assertNull(
diff --git a/src/test/java/ru/pdguard/PdnTypeEfficiencyTest.java b/src/test/java/ru/pdguard/PdnTypeEfficiencyTest.java
index 3427074..7bc4ea7 100644
--- a/src/test/java/ru/pdguard/PdnTypeEfficiencyTest.java
+++ b/src/test/java/ru/pdguard/PdnTypeEfficiencyTest.java
@@ -25,7 +25,7 @@ import ru.pdguard.mask.Masker;
class PdnTypeEfficiencyTest {
private final Pipeline pipeline =
- new Pipeline(new RuleRegistry(), new Masker(), new PayloadStore(10_000_000L, 30));
+ new Pipeline(new RuleRegistry(), new Masker(), new PayloadStore(30));
/** Накопитель посимвольных совпадений по одному типу. */
private static final class Score {
diff --git a/src/test/java/ru/pdguard/PerformanceBenchmarkTest.java b/src/test/java/ru/pdguard/PerformanceBenchmarkTest.java
index 367e7d8..acf7123 100644
--- a/src/test/java/ru/pdguard/PerformanceBenchmarkTest.java
+++ b/src/test/java/ru/pdguard/PerformanceBenchmarkTest.java
@@ -60,7 +60,7 @@ class PerformanceBenchmarkTest {
private static final int MEASURE = 50_000;
private final Pipeline pipeline =
- new Pipeline(new RuleRegistry(), new Masker(), new PayloadStore(10_000_000L, 30));
+ new Pipeline(new RuleRegistry(), new Masker(), new PayloadStore(30));
private void warmup() {
for (int i = 0; i < WARMUP; i++) {
@@ -184,7 +184,7 @@ class PerformanceBenchmarkTest {
new Pipeline(
new RuleRegistry(),
new Masker(),
- new PayloadStore(10_000_000L, 30),
+ new PayloadStore(30),
new NameCascade(
"rubert", Optional.of(model.toString()), "off", Optional.empty(), 16, 4, meters));
diff --git a/src/test/java/ru/pdguard/PipelineTest.java b/src/test/java/ru/pdguard/PipelineTest.java
index bdfb181..5bcf8c0 100644
--- a/src/test/java/ru/pdguard/PipelineTest.java
+++ b/src/test/java/ru/pdguard/PipelineTest.java
@@ -22,7 +22,7 @@ class PipelineTest {
private static final String VALID_SNILS = "112-233-445 95";
private Pipeline pipeline() {
- return new Pipeline(new RuleRegistry(), new Masker(), new PayloadStore(1_000_000L, 30));
+ return new Pipeline(new RuleRegistry(), new Masker(), new PayloadStore(30));
}
private String mask(Pipeline pipeline, String text) {
diff --git a/src/test/java/ru/pdguard/PlacementVariantsTest.java b/src/test/java/ru/pdguard/PlacementVariantsTest.java
index ee02cf1..cde1600 100644
--- a/src/test/java/ru/pdguard/PlacementVariantsTest.java
+++ b/src/test/java/ru/pdguard/PlacementVariantsTest.java
@@ -74,7 +74,7 @@ class PlacementVariantsTest {
/** Демаскирование обязано восстановить исходный текст всегда, независимо от утечек. */
private void runRoundTrip(BenchmarkFixtures.Sample sample, int index) {
- Pipeline pipeline = new Pipeline(REGISTRY, MASKER, new PayloadStore(1_000_000L, 30), CASCADE);
+ Pipeline pipeline = new Pipeline(REGISTRY, MASKER, new PayloadStore(30), CASCADE);
String payloadId = "placement-" + index;
String masked = pipeline.process(sample.text(), payloadId, SystemPolicy.DEFAULT);
@@ -90,7 +90,7 @@ class PlacementVariantsTest {
*/
@Test
void leakSummary() {
- Pipeline pipeline = new Pipeline(REGISTRY, MASKER, new PayloadStore(10_000_000L, 30), CASCADE);
+ Pipeline pipeline = new Pipeline(REGISTRY, MASKER, new PayloadStore(30), CASCADE);
int leaked = 0;
int checked = 0;
java.util.Map byType = new java.util.LinkedHashMap<>();
diff --git a/src/test/java/ru/pdguard/SettlementTest.java b/src/test/java/ru/pdguard/SettlementTest.java
index 4032497..95606b7 100644
--- a/src/test/java/ru/pdguard/SettlementTest.java
+++ b/src/test/java/ru/pdguard/SettlementTest.java
@@ -20,7 +20,7 @@ import ru.pdguard.mask.Masker;
class SettlementTest {
private final Pipeline pipeline =
- new Pipeline(new RuleRegistry(), new Masker(), new PayloadStore(1_000_000L, 30));
+ new Pipeline(new RuleRegistry(), new Masker(), new PayloadStore(30));
private String mask(String text) {
return pipeline.process(text, UUID.randomUUID().toString(), SystemPolicy.DEFAULT);
diff --git a/src/test/java/ru/pdguard/StreetDenylistTest.java b/src/test/java/ru/pdguard/StreetDenylistTest.java
index acc00ec..43b2c66 100644
--- a/src/test/java/ru/pdguard/StreetDenylistTest.java
+++ b/src/test/java/ru/pdguard/StreetDenylistTest.java
@@ -21,7 +21,7 @@ import ru.pdguard.mask.Masker;
class StreetDenylistTest {
private final Pipeline pipeline =
- new Pipeline(new RuleRegistry(), new Masker(), new PayloadStore(1_000_000L, 30));
+ new Pipeline(new RuleRegistry(), new Masker(), new PayloadStore(30));
private String mask(String text) {
return pipeline.process(text, UUID.randomUUID().toString(), SystemPolicy.DEFAULT);
diff --git a/src/test/java/ru/pdguard/TwoModelBenchmarkTest.java b/src/test/java/ru/pdguard/TwoModelBenchmarkTest.java
index d1013fd..c9d31d8 100644
--- a/src/test/java/ru/pdguard/TwoModelBenchmarkTest.java
+++ b/src/test/java/ru/pdguard/TwoModelBenchmarkTest.java
@@ -29,7 +29,7 @@ class TwoModelBenchmarkTest {
new Pipeline(
new RuleRegistry(),
new Masker(),
- new PayloadStore(10_000_000L, 30),
+ new PayloadStore(30),
new NameCascade(
new NameCascade.EngineConfig(
"wikineural", Optional.of("models/wikineural-ner"),
diff --git a/src/test/java/ru/pdguard/TwoModelCascadeTest.java b/src/test/java/ru/pdguard/TwoModelCascadeTest.java
index 5872b0f..1d93215 100644
--- a/src/test/java/ru/pdguard/TwoModelCascadeTest.java
+++ b/src/test/java/ru/pdguard/TwoModelCascadeTest.java
@@ -27,7 +27,7 @@ class TwoModelCascadeTest {
16,
4);
Pipeline p =
- new Pipeline(new RuleRegistry(), new Masker(), new PayloadStore(1_000_000L, 30), cascade);
+ new Pipeline(new RuleRegistry(), new Masker(), new PayloadStore(30), cascade);
return p.findPersonalData(text, SystemPolicy.DEFAULT);
}