- předchozí článek - následující článek - obsah - úvodní stránka -

Linuxové noviny 11/99

Solid

Jakub Dadák

Databázový server Solid vyvinula finská firma Solidtech a nyní je k dispozici ve verzích 2.3 a 3.0. Solid je SQL server, který nabízí robustní transakční zpracování dat od malých databází až po velké databáze rozmístěné na více mediích. Je velmi nenáročný na administraci a pracuje na většině běžných platforem. Podporuje množství komunikačních protokolů pro komunikaci klienta se serverem, klientský přístup přes ODBC (CLI API), JDBC a je navržen v souladu se standardy ANSI SQL2. Pro uživatele Linuxu je zajímavý tím, že jako jeden z prvních zahrnoval Linux do podporovaných platforem již dlouho před ostatními firmami a jejich RDBMS (Oracle, Informix, ADABAS,...) a umožnil tak na Linuxu vyvíjet komerční aplikace s robustní databázovou podporou, která do té doby byla jen velmi slabá (Postgress, MySQL atd.).

Solid může být provozován jak na běžném notebooku, tak na velmi výkonných víceprocesorových strojích. Multithreadová architektura, podpora uložených procedur a "row-level" transakce z něj dělají databázový stroj použitelný i pro velmi náročné aplikace.

Databázový stroj

Vývojáři Solidu si kladli za cíl vyvinout robustní databázi s velmi malými nároky na systémové zdroje se snahou o jejich maximální využití. Stroj zpracovává dotazy přes Solid CLI API, poté jsou zpracovány SQL parserem a optimizerem. Databázový stroj získává a ukládá data do databázových souborů. Databázový stroj podporuje:

  • SMP multi-threadovou architekturu a paralelní zpracování
  • Inteligentní row-level zamykání
  • Unikátní kombinaci pesimistického a optimistického zamykání
  • "Multiversioning" pro zajištění konzistentního pohledu na data bez potřeby zamykání pro klientské procesy
  • Podpora textových sloupců
  • Komprimované indexy
  • Automatické "roll-forward" zotavení
  • Škálovatelnost od notebooku po SMP RISC
  • Minimální požadavky na operační paměť (min 300 kb)
  • Binární kompatibilitu databáze na všech podporovaných platformách

Solid server využívá unikátní technologii "Bonsai Tree". Jedná se o indexovací technologii, která uchovává informace o aktuálně prováděných změnách dat. Index umožňuje velmi rychle detekovat konflikty transakcí a snižuje tak nároky na ověření validity transakcí. Server podporuje dávkové inserty, které opět snižují vytížení harddisku. Pro permanentní uložení dat je použita varianta B stromu jak pro primární, tak pro cizí (foreign) klíče. Všechna data jsou ukládána do databázového souboru, který je mezi checkpointy (promítnutí transakčního logu do databáze) pouze pro čtení. Informace o probíhajících a potvrzených transakcích se ukládají do log souborů. Databáze může být tvořena více soubory na různých mediích. Maximální velikost jednoho atributu (sloupce) jsou 2GB a velikost databáze je omezena 32 TB. Server umožňuje explicitně nastavovat optimistické nebo pesimistické zamykání na úrovni tabulek a poskytuje celou řadu možností pro izolaci transakcí (read uncommitted, read commited, repeatable read, serializable).

Aplikační rozhraní

Klientské aplikace používají pro komunikaci se serverem jazyk SQL založený na syntaxi SQL89 Level 2 a ANSI SQL2 rozšíření.

SOLID SQL API je založeno na SQL Access Group's call level interface standardu (SAG CLI), specifikaci pro dynamický SQL přístup k databázím. Solid CLI API je kompatibilní s ODBC specifikací, což činí databázi velmi dobře přístupnou win32 vývojářským systémům, které stále na Linuxu zatím k dispozici nejsou a velmi tak usnadňují vývoj, který může probíhat na win32 a je pak zcela bezproblémově portován na Unix (Linux). K dispozici je též JDBC rozhraní pro přístup k databázi z Javy. CLI API je k dispozici ve statické i dynamické verzi C knihovny. Nad nativním API solidu byla napsána celá řada dalších rozhraní, např. pro Perl či PHP.

Instalace

Instalace serveru je velmi jednoduchá a zvládne ji i začátečník. Celý proces instalace je popsán v několikakilobytovém souboru. Instalační balík ve formátu tgz se rozbalí do zvoleného adresáře a instalační program pouze vyžaduje zadat jméno a heslo pro administrátora a licenční klíč. Automaticky je vytvořena prázdná databáze podle defaultního konfiguračního souboru, která naprosto dostačuje pro běžné aplikace nebo testování. Tím instalace končí, narozdíl od několikahodinové práce např. u Oracle či Informixu, kdy se zvláště začátečník prokousává tunami často zavádějící dokumentace (u Linuxových portací je to zvykem). Firma Solidtech umožňuje získat jejich databázový server pro testovací účely přímo z jejich www serveru http://www.solidtech.com. Jedná se o plně funkční verzi omezenou pouze platností 30-ti denní testovací licence.

Správa

Správa serveru je stejně jednoduchá jako instalace. Administrátor se de facto stará pouze o zálohování záloh databáze, které se vytvářejí automaticky podle konfigurace do speciálního adresáře. Zálohuje se vždy konfigurační soubor, soubor(y) databáze a soubor(y) transakčního logu. Obnova poškozené databáze znamená tedy pouze obnovu těchto souborů. Správa databáze je prováděna aplikací solcon (Solid Console), která umožňuje kromě záloh a checkpointů sledovat stav serveru, zapnout monitoring, sledovat uživatele a restartovat server. Samotný server je pouze jeden binární soubor, jehož spuštěním s parametrem adresáře databáze se startuje i celý databázový systém.

Podporované platformy a OS

Solid v současné době podporuje značné množství hardwarových platforem a OS. Přehledně to znázorňuje Tabulka hardware Solid převzatá z WWW firmy Solidtech.

Operating System Version     Supported network protocols
----------------------------------------------------------------------
AIX 3.2                      TCP/IP, UNIX Pipes                    ST
ChorusOS Classix Intel 3.1   TCP/IP                                MT
Digital UNIX 4.0             TCP/IP, UNIX Pipes                    MT
FreeBSD 2.2.2                TCP/IP, UNIX Pipes                    ST
HP-UX 11.x                   TCP/IP, UNIX Pipes                    MT
Irix 6.3                     TCP/IP, UNIX Pipes                    MT
Linux Intel (glibc2) 2.0.34  TCP/IP, UNIX Pipes                    MT
Linux Intel (libc5) 2.0.34   TCP/IP, UNIX Pipes                    ST
Netware 4 4.1                IPX/SPX                               ST
Netware 5 5.0                TCP/IP, IPX/SPX                       ST
OpenVMS Alpha 6.1            TCP/IP, DECnet                        ST
Sun Solaris Sparc 2.5, 2.6   TCP/IP, UNIX Pipes                    MT
UnixWare 2.1                 TCP/IP, UNIX Pipes                    ST
VxWorks 5.3                  TCP/IP                                ST
Windows NT Intel 4.0         DECnet Client, IPX/SPX Client,        MT
                             Named Pipes, NetBIOS, Shared Memory,
                             TCP/IP
Windows 95/98 4.0, 4.10      DECnet Client, IPX/SPX Client,        MT
                             Named Pipes, NetBIOS, Shared Memory,
                             TCP/IP
Windows NT Alpha 4.0         DECnet Client, IPX/SPX Client,        MT
                             Named Pipes, NetBIOS, Shared Memory,
                             TCP/IP

Default: Client and Server available;
Client = Client available Threads
MT=Multithreaded
ST=Singlethreaded

Výpis č. 2: Tabulka hardware Solid

Zkušenosti s provozem pod OS Linux

Solid v naší firmě provozujeme zhruba 2 roky a máme s ním velmi dobré zkušenosti. Server je velmi stabilní i při velké zátěži a i na databázích kolem 1GB vykazuje při poměrně složitých dotazech slušné výsledky, srovnatelné např. s MS SQL 6.5. Je pravda, že za Oraclem při větších objemech dat poněkud zaostává. Podle mého názoru se Solid nejlépe uplatní jako databázový server pro WWW servery a středně velké aplikace, které vyžadují bezpečné a spolehlivé uložení dat. Mezi hlavní výhody řadím i jeho nenáročnost na správu a rychlost nasazení. Ještě donedávna byly na WWW serveru firmy Solidtech uvedeny ceny (pro verzi 2.x), od verze 3.0 se však změnily i stránky a ceny už jsem nenašel. Obchodníci ze Solidu mi však sdělili, že cena Solidu pro 25 spojení a 1 CPU činí pro Linux a WinNT 1995$, pro ostatní platformy je to 3295$. Solid je ochoten udělat cenu i na míru v závislosti na aplikaci a počtu zakoupených licencí. Pokud jste se tedy ještě nerozhodli jaký SQL server na Linuxu používat, tak rozhodně Solid vyzkoušejte, určitě Vás nezklame. *


- předchozí článek - následující článek - obsah - úvodní stránka -