Tibero

Tibero is a commercial relational database management system developed TmaxSoft. It is currently owned/managed by TmaxData, an affiliate company of TmaxSoft.

History

Tibero was first released in June 2003 by TmaxSoft. Tibero 4 was the first version to introduce Tibero Active Cluster (TAC) for distributed database clustering, and this feature has carried onto newer versions since then. Tibero 6, its latest version as of Nov 2019, was released in 2015.

Query Interface

Custom API SQL PL/SQL

Tibero provides custom APIs such as tbJDBC (Java), Tibero Hadoop Connector, tbCLI (C/C++), tbESQL (ESQL for C and COBOL), and tbPSM (PL/SQL).

Concurrency Control

Multi-version Concurrency Control (MVCC)

Tibero uses Multi-version Concurrency Control. To manage Write-Write conflicts, it uses granulated locks on each row, which is Tibero's smallest unit of data. Tibero's background process runs a deadlock detection.

Logging

Physiological Logging

Tibero uses Write-Ahead Logging with multiple log buffers. One log buffer is chosen to be the active log buffer, and once it is full, another log buffer is selected to be the new active buffer. Log records created by the master DB is sent to the replica to replay the updates made. Tibero's background process called Database Write Process (DBWR) is responsible for writing redo logs to disk.

Joins

Nested Loop Join Hash Join Sort-Merge Join

Tibero supports Hash Join, Nested-Loop Join, and Sort-Merge Join. The query optimizer decides the order of join as well as the type of join to execute the given query. For joins on large data, the query optimizer performs star transformation.

Storage Model

N-ary Storage Model (Row/Record)

Tibero stores table rows in a disk block until the block's free space reaches a percentage below a configurable parameter. Large objects are stored in multiple blocks unless the parameter is configured to be sufficiently large.

Isolation Levels

Serializable

Tibero claims to ensure Serializable isolation level.

Query Execution

Tuple-at-a-Time Model

Tibero uses the pipeline model to connect two execution plans in inter-operator parallelism. It supports sequential table scan, index scan, and multi-index scan for access methods.

Indexes

B+Tree BitMap

Tibero uses B-Trees to create indexes. It also supports organizing tables with clustered indexes on primary keys. Searching on indexes can be done with single attributes or on a range. An index can be created and searched on composite key from multiple attributes. BitMap Indexing is supported for OLAP data warehouses.

Storage Architecture

Disk-oriented

Tibero stores data files on one or more non-volatile storages. However, in 2008 TmaxSoft released its own in-memory DBMS called Tibero MMDB. In 2012, the company has made an interview that it is currently considering amalgamating the original disk-oriented product with its in-memory DBMS in the future.

Checkpoints

Non-Blocking

Tibero's background process called Database Write Process (DBWR) is responsible for writing updates to disk and setting checkpoints. It periodically checks for dirty blocks and flushes them to storage. The most recent checkpoint is stored in a special control file.

Data Model

Relational

Tibero is a relational database management system.

System Architecture

Shared-Disk

Nodes created under Tibero Active Cluster (TAC) environment operate on shared-disk.

Compression

Dictionary Encoding

Tibero supports block-level compression. Duplicate attribute values within the same block are saved to a dictionary-like structure called a symbol table. The symbol table is saved within the block and is referred when the corresponding attribute value of a tuple is accessed. Tibero performs symbol table compression only on bulk-inserts. Therefore, the performance of insertion and/or deletion on a single row of a compressed table is equivalent to an insertion and/or deletion on an uncompressed table.

Storage Organization

Heaps

At a physical level, Tibero stores a control file that acts as a directory to keep track of all data files in the database. The data files each belong to a tablespace which refers to a specific table/index. At a logical level, data files are organized as a collection of blocks within a tablespace.

Parallel Execution

Intra-Operator (Horizontal) Inter-Operator (Vertical)

Tibero uses both intra-operator and inter-operator simultaneously for parallel execution. The query coordinator allocates worker threads to perform intra-operator parallelism. The number of worker threads allocated depends on a configurable parameter. These worker threads form a producer set. At the same time, another collection of worker threads called a consumer set is created. The producer set delivers rows to the consumer set to process the next execution plan simultaneously for inter-operator parallelism. The maximum number of worker sets run simultaneously in inter-operator parallelism is two.

Tibero Logo
Website

http://www.tmaxsoft.com/products/tibero/

Tech Docs

https://technet.tmaxsoft.com/upload/download/online/tibero/pver-20150504-000002/index.html

Developer

TmaxSoft/TmaxData

Country of Origin

KR

Start Year

2003

Project Type

Commercial

Written in

C

Supported languages

C, C++, Java, PL/SQL, SQL

Compatible With

Oracle RDBMS

Operating Systems

AIX, HP-UX, Linux, Solaris, Windows

Licenses

Proprietary

Wikipedia

https://en.wikipedia.org/wiki/Tibero