Real-time table

A Real-time table is a main type of table in Manticore, allowing you to add, update, and delete documents with immediate availability of the changes. The settings for a Real-time Table can be defined in a configuration file or online using CREATE/UPDATE/DELETE/ALTER commands.

A Real-time Table is comprised of one or multiple plain tables called chunks. There are two types of chunks:

  • multiple disk chunks - These are stored on disk and have the same structure as a Plain Table.
  • single ram chunk - This is stored in memory and is used as an accumulator of changes.

The size of the RAM chunk is controlled by the rt_mem_limit setting. Once this limit is reached, the RAM chunk is flushed to disk in the form of a disk chunk. If there are too many disk chunks, they can be merged into one for better performance using the OPTIMIZE command or automatically.

‹›
  • SQL
  • JSON
  • PHP
  • Python
  • Javascript
  • Java
  • C#
  • CONFIG
📋
CREATE TABLE products(title text, price float) morphology='stem_en';
‹›
Response
Query OK, 0 rows affected (0.00 sec)
‹›
Creating a real-time table via JSON over HTTP:

👍 What you can do with a real-time table:

  • Add documents using the Add feature.
  • Update attributes and full-text fields through the Update process.
  • Delete documents using the Delete feature.
  • Emptying the table using the Truncate process.
  • Change the schema online using the ALTER command as described in Change schema online.
  • Define the table in a configuration file as described in Define table.
  • Use the UUID feature for automatic ID provisioning.

⛔ What you cannot do with a real-time table:

  • Index data using the indexer feature.
  • Connect it to sources for easy indexing from external storage.
  • Update the killlist_target, as it is automatically managed by the real-time table.

Real-time table files structure

The following table outlines the different file extensions and their respective descriptions in a real-time table:

Extension Description
.lock A lock file that ensures that only one process can access the table at a time.
.ram The RAM chunk of the table, stored in memory and used as an accumulator of changes.
.meta The headers of the real-time table that define its structure and settings.
.*.sp* Disk chunks that are stored on disk with the same format as plain tables. They are created when the RAM chunk size exceeds the rt_mem_limit.

For more information on the structure of disk chunks, refer to the plain table format)