Skip to main content

what is ROS containers exactly?

  • May 3, 2016
  • 1 reply
  • 8 views

Rajzz
Forum|alt.badge.img+1
  • Participating Frequently

Is it a data file present under catalog_dir/subdir/  or a sub-directory of catalogdir?

is it physically visible? 

1 reply

Adrian_Oprea_1
Forum|alt.badge.img+1
  • Participating Frequently
  • May 3, 2016

 Quite important topic this one ! 

   Read Optimized Store (ROS) is a highly optimized, read-oriented, disk storage structure, organized by projection. The ROS makes heavy use of compression and indexing.

A ROS container can be considered a file created by the following actions:

  •  A COPY DIRECT statement.
  •  An INSERT, DELETE or UPDATE statement with the /*+direct*/ hint.
  • A Moveout of WOS data to ROS by the Tuple Mover
  •  A Mergeout from a number of ROS files into a new ROS file.
  •  The MERGE_PARTITION() function.

Note:

- a ROS container is write once file, so if you have some data in the ROS you will need ot update then a new ROS container will be created with the new data version and the old ROS will be dropped. 

 

Vertica imposes a limit of 1024 ROS Containers per projection. This is well related to the operation system limits as i said before a ROS is a file.

 

For more info on your db ROS containters see STORAGE_CONTAINERS table. 

 

Let me make it more easy for you:

dbadmin=> \x
Expanded display is on.

-- take storage id 45036002965404849 for example

dbadmin=> select * from STORAGE_CONTAINERS where storage_oid='45036002965404849';
-[ RECORD 1 ]-------+-------------------------------------------------
node_name | v_db_node0004
schema_name | dev_db
projection_id | 45035998746403828
projection_name | Fact1_super_b0
storage_type | ROS
storage_oid | 45036002965404849
sal_storage_id | 0100000000000000000000000000000000a000018edb3cb1
total_row_count | 65
deleted_row_count | 0
used_bytes | 6862
start_epoch | 1600027
end_epoch | 1600027
grouping | PROJECTION
segment_lower_bound | 4294967295
segment_upper_bound | 1431655764
is_sorted | t
location_label | T1_DATA
delete_vector_count | 0

-- look for it in your operational system , look for the folder 849 (the last 3 digits of your storage_oid), and since i have my storage labeled i know is in the T1_DATA folder.


dbadmin=> \! find /vertica_storage/t1_data/ -name 849
/vertica_storage/t1_data/849

-- now see the content of the full path to the folder + the storage_oid, like below

dbadmin=> \! ls -la /vertica_storage/t1_data/849/45036002965404849 | grep 45036002965404849
-rw------- 1 dbadmin verticadba 133 Feb 12 16:34 45036002965404849_0.fdb
-rw------- 1 dbadmin verticadba 56 Feb 12 16:34 45036002965404849_0.pidx

-- there you go !
-- you have a .fdb file and a .pidx file
.fdb - file is the data itself (encoded and compressed)
.pidx - contains index/statistics info from the data file.

 I hope this was helpful :)