Zdá se, že daný úkol nelze vyřešit v daných omezeních. Pokud jsem to správně pochopil, počet databází a řádkové schéma jsou konstanty.
Takže proměnné, které zbyly:
- Další "injekce" do databáze
- Dočasné triky
- Triky se spouštěči
- „Pozdní vazba“ změn, které se nereplikovaly včas
V současné době jsem našel pouze jeden nápad, který, jak se zdá, funguje:
- Přidejte spouštěč do tabulky "Řádky", chcete-li upravit časové razítko záznamu "Objednávka" (last_line_time)
- V replice počkejte, až se objeví řádek s časem, který se rovná last_line_time.
- Pokud je max(lines.line_time)> order.last_line_time, pak je objednávka zastaralá
- Pokud max(lines.line_time)
- Pokud max(lines.line_time) ==order.last_line_time, tak je zatím vše v pořádku :)
Tento případ však může selhat do nekonečné smyčky, pokud jsou řádky neustále upravovány a replika tabulky řádků vždy zaostává.