SAND

Performance

Home »  Nucleus »  Performance

Compression and Performance

SAND uses a range of techniques to ensure data is stored and accessed efficiently including:

  • Table decomposition (Columns)
  • Column decomposition (Domains)
  • Bit map encoding
  • Adaptive data compression

These techniques are utilized to ensure the best possible combination of compression and performance.  The result is a high speed Columnar Database Management System.


Columnar Database Management System

  • Store data as columns
  • Execute queries at the column level
    • Ideal for complex ad hoc analytics
  • Individual fields are scanned instead of entire record
    • Eliminates occurrence of moving un-needed fields in and out of memory
    • Greatly enhances performance for reporting queries
  • Data is optimized for performance at load
  • Optimized for MPP architectures
    • Cloud ready

Outstanding Performance

  • Sand Provides outstanding performance for
    • Wide tables
      • 4000 columns
    • Deep tables
      • Multi-billion rows
    • Mixed query types
      • Single row
      • Multiple level select
      • Matching data
      • Count and Count Distinct
      • Needle in a Haystack
      • Complex Queries
      • Queries with No Results
    • Thousands of concurrent users

Generation Based Concurrency Control

  • Supports thousands of concurrent users
  • No concept of dirty reads
  • Every user gets private version of the database
    • Public version represents committed work
    • Private version represents active transactions
  • Concurrency control is both lockless and optimistic
    • This scheme offers good concurrency in both read-mostly and mixed workload scenarios
  • Provides ACID Compliance
    • Atomicity — All of the tasks of a transaction are performed or none of them are. This means that if the entire transaction succeeds, it’s committed. If any part of the transaction fails, the entire transaction fails and is rolled back.
    • Consistency — Data integrity constraints are maintained. This ensures that the database remains in a consistent state before the start of the transaction and after the transaction is over (whether successful or not).
    • Isolation — Concurrent transactions do not interact with one another.
    • Durability — Short of catastrophic failure, the effects of committed transactions persist.