Výsledky 1 až 16 z 16

Téma: [delphi] Lokalni SQL "cache"

Hybrid View

Předcházející příspěvek Předcházející příspěvek   Další příspěvek Další příspěvek
  1. #1

    Standardní Re: [delphi] Lokalni SQL "cache"

    jenze ja nemuzu mit aplikaci, ktera nejde, kdyz nejde "hlavni SQL" server - takze pres RDP nebo jakoukoliv vzdalenou cestu by to slo, ale neresilo by to autonomii aplikace. Nejde o to, ze by PC s aplikaci bylo mimo dosah site - ma to byt spis ochrana proti tomu, kdyz napr. je potreba ten hlavni SQL server restartovat a nebo nahodne sel do kytek. Resenim by byl samozrejme robustni serverovy HW dedikovany pouze pro SQL. Nicmene v soucasne praci na tohle muzu zapomenout - i kdybych to virtualizaoval s dalsimi servery, tak stejne potrebuji licenci na OS atd. Proto take hledam jak se vyhnout kupovani MSSQL serveru na PC aplikace.
    Predstavoval jsem si to tak, ze by cache logika byla na aplikaci. V pripade nedostupnosti hlavniho SQL by proste nejakou dobu cekala s pokusem o dalsi spojeni. Zatimco apliakce by si dal jela z vlastnich dat. Hrozi tu minimalne problem z neaktualnosti dat tech pravidel a nasledne v navaznosti nejaka moznost nekonzistence dat v prehledech. Ale myslim, ze to by se dalo ozelet - proste pokud nebude spojeni, tak vsechen log transakci pujde do cache. Jedine co muze byt problem je jak efektivne udelat log tech zaznamu. Ted to mam udelane tak, ze se proste zapisuje radek, ve kterem je kod operace, osoba a cas. Tim padem ja musim parovat pomoci vnorenych selectu a joinu na vlastni tabulku vypujcku a vraceni. Kdosi chytrejsi mi poradil, ze v radku by mel byt cely zaznam - tj. pujceni, osoba, kdy a vraceni, osoba, kdy. Tim odpadne prace DB na strane informacniho systemu, ktery zobrazuje vystup (i kdyz me napadlo, ze bych na to mohl rovnou udelat view - zatim jsem to zkusil postelovat pomoci indexu a tim vyrazne zkratil cas provedeni, ale treba by to pohled jeste vylepsil).
    Black panther - Intel E8400 (SLB9J), GigaByte EP45-UD3R, A-Data 2x2GB Vitesta, Gainward ATi/AMD Radeon 4870 512MB Gold Sample, Creative Audigy2 ZS, Samsung HD642JJ (AJ26 SMART error) + WD 6400AAKS + Samsung HD 322HJ, NEC 4571A DVD-RW, Enermax PRO82+ 525W, BenQ FP241W 24" 1920x1200, Microsoft Wheel Mouse Optical, Chicony KU-0108 mm keyboard, Microsoft VX-1000 camera, Microsoft Windows Vista Home Premium 64bit
    My gadgets : custom CIR receiver, RDS receiver (for TV card), no-more-screwdriver-mobo-powerup, Atmel 89cx051 LPTprog, N3310 LCD, ...

  2. #2
    Administrátor マツダ mince Avatar uživatele Marty
    Založen
    07.10.2002
    Bydliště
    Praha, Sanctuary
    Věk
    43
    Příspěvky
    8 225
    Vliv
    300

    Standardní Re: [delphi] Lokalni SQL "cache"

    Nebo rovnou indexovaný view

    Mám trochu obavu, že se snažíš vyřešit problém workaroundem, kterým si přiděláš starosti.
    Hlavní problém, který v případě výpadku SQL budeš řešit je synchronizace dávkových příspěvků uživatelů... Tohle dnes vůbec nemusíš řešit, protože na SQL máš vždy aktuální a konzistentní data. Případná lokální cache, kterou vymýšlíš, ti do toho všeho zavede nový rozměr konfliktů, které se mohou objevit - a ne všechny jdou vyřešit bez ztráty dat nebo zásahu admina! (typicky např. když různí uživatelé ve své cache změní stejná data)

    Osobně bych se k této problematice postavil nejdříve analyticky a až poté programátorsky (ostatně to je moje práce ) - vyhodnotil si klady a zápory stávajícího řešení a shrnul rizika a přínosy variant nového řešení (vč. zajištění vysoké dostupnosti velkého SQL atd.). Uvažuj i náklady na programování a následnou údržbu složitého kódu. Výsledek pak předlož sponzorovi, možná se budeš divit
    CUBE> Ryzen 7 7700X + Arctic Lq Frzr III 64 GB DDR5-6000 ◦ ASUS TUF B650PLUS ◦ ASUS RTX3060 OC 12GB ◦ Kingston KC3000 2TB ◦ SS G12 GM-650 Gold ◦ Samsung S27A800 4K
    WORK> HP EliteBook 845 G9 ◦ Ryzen 5 PRO 6550 ◦ 32 GB DDR3 ◦ 2048 GB nVME SSD ◦ 14.1" 1920x1080 LED + 2x 32" Dell 4K ◦ Win11 Enterprise
    SERVER> HP ProLiant Microserver Gen8 ◦ Intel Core i5-3540T ◦ 16 GB DDR3 ◦ 180 GB SSD + 2x4 TB WD RED + 2x16 TB Toshiba ◦ 10GbE NIC
    PHOTO> Canon EOS 70D ◦ EF 70-200/4L ◦ EF-S 10-18 STM ◦ EF 50/1.8II ◦ EF-S 40/2.8 STM ◦ Yongnuo YN-568EX ◦ Tamrac 5534
    HOMECINEMA> TV Samsung UE55Q55T 55" 4K ◦ DVD Pioneer DV-310K ◦ AVR Yamaha RX-V359 ◦ SPK Dexon Allegro 5.0
    OTHERSTUFF> Mikrotik RB760iGS ◦ Mikrotik CSS610
    ◦ Mikrotik CRS326 ◦ UniFi WLAN ◦ Xerox B235 ◦ Canon PiXMA MG5350

  3. #3

    Standardní Re: [delphi] Lokalni SQL "cache"

    tak mas pravdu, ze v pripade konkurencniho pristupu zapisu dat by v tom byl obrovsky problem. Takze bud se rekne, ze data aktualizuje jen jedna apliakce nebo se to bude muset vyresit v programu.

    Prvni co me napadlo byla samozrejme replikace na urovni SQL serveru - ale vzhledem k tomu, ze tu apliakci pisu v podtstate zdarma, tak i naklady na dalsi veci musi byt velmi male. Zkusim si rozmyslet nejakou implementaci a kdyztak se uvidi.
    Black panther - Intel E8400 (SLB9J), GigaByte EP45-UD3R, A-Data 2x2GB Vitesta, Gainward ATi/AMD Radeon 4870 512MB Gold Sample, Creative Audigy2 ZS, Samsung HD642JJ (AJ26 SMART error) + WD 6400AAKS + Samsung HD 322HJ, NEC 4571A DVD-RW, Enermax PRO82+ 525W, BenQ FP241W 24" 1920x1200, Microsoft Wheel Mouse Optical, Chicony KU-0108 mm keyboard, Microsoft VX-1000 camera, Microsoft Windows Vista Home Premium 64bit
    My gadgets : custom CIR receiver, RDS receiver (for TV card), no-more-screwdriver-mobo-powerup, Atmel 89cx051 LPTprog, N3310 LCD, ...

  4. #4

    Standardní Re: [delphi] Lokalni SQL "cache"

    Pokud se jedná pouze o "nekolik set radku", resil bych to trosku jinak. Ta kriticka data bych pri startu aplikace nacetl do nejake objektove struktury v pameti a nepracoval bych s tim jako s SQL. Zde uz by nebyl velky problem problem s ulozenim na lokal a opetovnym nactenim (napr. nejakou jednoduchou serializaci). Pokud by byl dostupny hlavni server , nalil bych to tam primo z nej a soucasne ulozil na lokal do nejakeho souboru.

  5. #5

    Standardní Re: [delphi] Lokalni SQL "cache"

    no jo, ale ono nejde o to stahnout si data (ala F@H) a pracovat s nima jako s jednotkou dat. Ty data se musi prubezne aktualizovat. Nejlepe v 0 case - tj. v aktualnim programu rovnou z puvodniho SQL serveru.
    Na druhou stranu je potreba co nejcasteji dodavat na (hlavni) SQL server data, ze kterych se tvori prehledy. Vse by melo behat s co nejaktualnejsimi daty - tj. na strane aplikace musi mit co nejcerstvejsi pristup k udajum o lidech a o pravidlech (nevim jestli jsem tu jiz psal o strukture tech dat) a posilat co nejcastejsi informace o stavu (vypujckach/vraceni). To prvni uz jsem delal v jine aplikaci pomoci kolekce stringu - protoze tam to nebylo tak slozita struktura a pak jsem pouzival asociativni pristup k tomu "poli", takze jsem tovnou vyuzil to co mi nabizi delphi. Ale tady bude potreba mit vic informaci (coz bych si napr. predem pripravil do pohledu a ten bych jen stahoval) a pak odesilal potrebna data. Marty ma pravdu v tom, synchronizace spravncy dat, ktera se budou menit bude velmi obtizna...
    Black panther - Intel E8400 (SLB9J), GigaByte EP45-UD3R, A-Data 2x2GB Vitesta, Gainward ATi/AMD Radeon 4870 512MB Gold Sample, Creative Audigy2 ZS, Samsung HD642JJ (AJ26 SMART error) + WD 6400AAKS + Samsung HD 322HJ, NEC 4571A DVD-RW, Enermax PRO82+ 525W, BenQ FP241W 24" 1920x1200, Microsoft Wheel Mouse Optical, Chicony KU-0108 mm keyboard, Microsoft VX-1000 camera, Microsoft Windows Vista Home Premium 64bit
    My gadgets : custom CIR receiver, RDS receiver (for TV card), no-more-screwdriver-mobo-powerup, Atmel 89cx051 LPTprog, N3310 LCD, ...

  6. #6

    Standardní Re: [delphi] Lokalni SQL "cache"

    V tom bych nevidel problem. V normalnim rezimu se prece bude neustale pracovat s aktualnimi daty ze serveru (jde jen o napsani nejakeho interface mezi objekt-SQL, pripadne pouzit nejaky ORM mapovaci nastroj). Pri ukonceni programu nebo v nejakem casovem intervalu se zapise cely aktualni stav do souboru na lokal (vzhledem k malemu objemu dat se to muze prepsat cele a nedelat nejakou rozdilovou logiku, zatez bude minimalni). Pokud nebude server dostupny a struktura nebude naplnena, nacte se to z toho souboru, to je cele. Tzn. ze v pripade nedostupnosti serveru budou k dispozici vzdy posledni pouzita data.

  7. #7
    Member Avatar uživatele JoeBoB
    Založen
    11.03.2005
    Bydliště
    Kladno-Praha
    Věk
    39
    Příspěvky
    214
    Vliv
    256

    Standardní Re: [delphi] Lokalni SQL "cache"

    On ale pise, ze potrebuje udelat par set transakci lokalne, kolik transakci ma ta vzdalena databaze? Jestli navrhujes napsat interface, kterej bude udrzovat delta rozdily lokalne, muze to bejt docela pekna naloz...
    Home: Core i5-2500k @ 4,2, Gelis Solution Tranquillo r.2, Patriot 2x8GB 1600MHz DDR3, Gigabyte Z77 D3H, Gigabyte R9 290 4GB GDDR5 + Windforce 3X, ASUS ASUS Xonar DX/XD, OCZ Vertex3 128GB, Samasung Spinpoint 1TB HD103UJ, Samasung Spinpoint 2TB HD204UI, Pioneer DVR-212, Corsair VX550, Thermaltake Wing RS100, Logitech UltraX Premium, A4Tech Bloody V7, Dell Ultrasharp U2412M
    Mobile: E6420, Core i-7 2720QM, RAM 4GB 1333MHz, SSD 128GB, NVIDIA NVS 420M, 1600x900
    ...default, zatim

Informace o tématu

Users Browsing this Thread

Toto téma si právě prohlíží 1 uživatelů. (0 registrovaných a 1 anonymních)

Podobná témata

  1. "(2)" nebo "(3)" v názvu systémových souborů Win XP
    Založil Torontik v sekci fóra Ostatní operační systémy
    Odpovědí: 2
    Poslední příspěvek: 10.10.2008, 20:23
  2. error calling "unlink" in "GLOBAL"
    Založil Lopan v sekci fóra Operační systémy na bázi Unixu
    Odpovědí: 8
    Poslední příspěvek: 10.11.2003, 16:14
  3. "Nove celerony" (478p;128k/256k cache) >2G
    Založil Polo v sekci fóra Intel procesory
    Odpovědí: 11
    Poslední příspěvek: 14.03.2003, 09:22

Pravidla přispívání

  • Nemůžete zakládat nová témata
  • Nemůžete zasílat odpovědi
  • Nemůžete přikládat přílohy
  • Nemůžete upravovat své příspěvky
  •