Sequoia

Distributed SQL Database Architecture


Description

Distributed SQL Database prototype is based on Sequoia.
  • SQL tables can be spread over several database Servers, some tables may be replicated. User sees a single front-end.
  • Sequoia acts as a (Proxy) Virtual SQL Server forwarding all requests to appropriate databases (real or another virtual). Replicated and/or complementary tables are supported (even on heterogeneous Serbers), similar to RAID disks.
  • Sequoia is used via its JDBC driver, so any application using JDBC API can directly use Sequoia. No application modification is required to use Sequoia.
  • C-JDBC directly handles any SQL query. No pre-knowledge is needed. No specified interface is required.
  • Standard Sequoia features are:
    • Load balancing
    • Caching
    • Connection Pooling
    • Failover
      • Horizontal Scaling
      • Vertical Scaling
    • Backup/Restore
    • Journaling/CheckPointing
    • Monitoring
    • Synchronisation
    • Authentication

How To

# Download (or use) and install Sequoia distribution from /afs/cern.ch/sw/lcg/external/Java/Sequoia/3.0-beta3-Atlas.
# (version 3.0.x) and Sequoia configuration,
# untar them somewhere.

# Go to Sequoia distribution directory and modify bin/start.sh script to reflect
# your setup.

# Start the Virtual Server Controller
# - it will open an xterm window with constroller
# - it will open another xterm window with interactive console
bin/start.sh  

# In the console window, initialise database backends:
Launching the Sequoia controller console
Initializing Controller module...
Initializing VirtualDatabase Administration module...
Initializing SQL Console module...
Sequoia driver (Sequoia core v3.0-beta2) successfully loaded.
localhost:1090 > admin mydb
Virtual database Administrator Login > admin
Virtual database Administrator Password > 
Ready to administrate virtual database mydb
mydb(admin) > initialize CERN force
Virtual Database mydb has been successfully initialized from backend CERN
mydb(admin) > initialize RAL force
Virtual Database mydb has been successfully initialized from backend RAL
mydb(admin) > initialize GRIDKA force
Virtual Database mydb has been successfully initialized from backend GRIDKA
mydb(admin) > enable *
Enabling all backends from their last known checkpoints
mydb(admin) >                   

Now you can connect to your Virtual Server from any JDBC-aware application on URL jdbc:sequoia://localhost:25322/mydb using driver from Sequoia distribution under drivers/sequoia-driver.jar.

Configuration files

Those file can be modified to change the Virtual Server behaviour, add other databases, etc. They are placed in the conf directory.

Usefull Console Commands

The complete description of the console commands is available from the Sequoia Manuals page.
help gives list of available commands (may be different in other modes)
admin <virtual db>starts administration mode
debug on starts debugging (inside admin mode)
dump parsing cache show parsing cache (inside admin mode with debug on)
shutdown virtualdatabase <virtual db>cleanly shutdown virtual database (so it doesn't have to be initialised and enebled next time)
sql client <url> starts sql client

References