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); }