Skip to main content

Create projection without specifying KSAFE value not respecting system designed_fault_tolerance

  • November 19, 2015
  • 3 replies
  • 22 views

Emanuel_Pordes_1
Forum|alt.badge.img+1

Hi All,

 

Has anyone here ever encountered a problem where the creation of a projection does not respect the system designed_fault_tolerance for the default ksafety?

 

We are experiencing the following issue on Vertica 7.1.1-0:

 

1- adgear_vertica=> select designed_fault_tolerance from system;
   designed_fault_tolerance
  --------------------------
                          1
  (1 row)

 

 

2- CREATE PROJECTION without a KSAFE clause

 

3- adgear_vertica=> SELECT projection_name, verified_fault_tolerance FROM projections WHERE projection_schema='production' AND anchor_table_name='test_fact_table';
      projection_name       | verified_fault_tolerance
----------------------------+--------------------------
test_fact_table_b0 |                        1
test_fact_table_b1 |                        1
test_fact_table_p  |                        0
(3 rows)

 

Note that test_fact_table_b0 and test_fact_table_b1 are the default superprojection from the CREATE TABLE statement.

 

The docs state the following, but this is not the behavior we are seeing:

 

"If you omit the KSAFE parameter or a KSAFE value, HP Vertica creates a single projection at the current system K-safety level. Unless you are creating a projection on a single-node database, the default KSAFE value is at least 1. "

 

Thanks,

 

Emanuel

3 replies

Emanuel_Pordes_1
Forum|alt.badge.img+1
  • Author
  • Participating Frequently
  • November 19, 2015

For completeness, the current_default_tolerance also lists as 1:

 

adgear_vertica=> SELECT designed_fault_tolerance, current_fault_tolerance FROM system;
 designed_fault_tolerance | current_fault_tolerance
--------------------------+-------------------------
                        1 |                       1
(1 row)


Emanuel_Pordes_1
Forum|alt.badge.img+1
  • Author
  • Participating Frequently
  • November 19, 2015

FYI, found the following forum post which states that specifying KSAFE without a safety level accomplishes what we need.

 

https://community.dev.hpe.com/t5/Vertica-Forum/Create-buddy-projections-based-on-k-safety-with-a-single-CREATE/td-p/216461

 

So the docs are definitely wrong since they say that the KSAFE parameter can also be omitted to achieve this.


Emanuel_Pordes_1
Forum|alt.badge.img+1
  • Author
  • Participating Frequently
  • November 23, 2015

It seems that this is caused by the following Vertica bug:

 

VER-35796-Projections created without the KSAFE keyword are not at system ksafety level
This is fixed in 7.2
However documentation was not updated properly and it will be fixed in 7.2.1