Přejít k navigační liště

Zdroják » Zprávičky » Asynchronní triggery v Cassandře

Asynchronní triggery v Cassandře

NoSQL databáze Cassandra je poměrně jednoduché úložiště co se týče komfortu, který vývojářům poskytuje (narozdíl třeba od MongoDB). Vývojáři používající Cassandru tedy jistě uvítají patch, který přidává podporu pro asynchronní triggery. Triggery mají několik aplikací a jednou z nejzajímavějších je automatická tvorba sekundárních indexů.

Implementace triggerů byla zvolena jako asynchronní kvůli zachování malých latencí při zápisu, tj. při zápisu do ColumnFamily je trigger pouze naplánován, nečeká se na jeho provedení. To samozřejmě může vést ke chvilkové nekonzistenci, ale to není u Cassandry coby eventuálně-konzistentního úložiště problém.

Triggery se iplementují v Javě jako třída, která implementuje rozhraní ITrigger s jedinou metodou execute, která obdrží jako parametry klíč a měněnou ColumnFamily. Který trigger se má spouštět pro jakou ColumnFamily se definuje ve standardním konfiguračním yaml souboru.

Tento patch je zatím „under submission“ a je plánován pro verzi 0.8. Nyní je dostupná verze 0.6.4, verze 0.7 (přinášející řadu novinek) bude pravděpodobně dostupná v řádu týdnů. A možná už v této verzi se dočkáme plné podpory pro sekundární indexy.

Komentáře

Odebírat
Upozornit na
guest
2 Komentářů
Nejstarší
Nejnovější Most Voted
Inline Feedbacks
Zobrazit všechny komentáře
typo

patch!

Jak funguje WordPress Cron a proč občas selhává

„Cron mi nějak neběhá." Klasická věta, která ve WordPress světě může znamenat cokoli od špatně nastavené WP_SITEURL, přes loopback zablokovaný Cloudflarem, až po fatal error v callbacku, který nechal viset transient doing_cron. WP-Cron totiž není skutečný scheduler — je to pseudo-cron závislý na návštěvnosti webu a HTTP loopbacku, se všemi pastmi, které si dokážete představit. Tenhle článek je hloubkový průchod jeho vnitřnostmi: co se reálně děje při spawn_cron(), kde vznikají race conditions, proč selhává a čím ho v produkci nahradit.