global secondary index
: 클러스터 환경에서 서로 다른 장비의 동일한 row 를 식별하기 위함. 

cluster 환경에서 table 생성 시 자동으로 global secondary index를 생성하는데
이것을 (자동으로) 생성할지 여부는 프로퍼티와 create table 옵션으로 컨트롤할 수 있다.
이 global secondary index는 테이블 당 하나만 생성 가능.
(DEFAULT_GLOBAL_SECONDARY_INDEX_CREATION / table 생성 후 별도로 생성, 삭제 가능)
생성된 global secondary index는 USER_GSI_PLACE, USER_GLOBAL_SECONDARY_INDEXES 에서 조회할 수 있음 (ALL_, DBA_)


global secondary index 를 생성하지 않은 테이블에 대한 non-deterministic 질의는 실패한다

non-deterministic query
: cluster member 들이 동일한 row 에 대해 동일한 값으로 변경한다고 보장할 수 없는 질의

seq_name.currval / seq_name.nextval / next value for seq_name
currval(), nextval()
random()
clock_date(), clock_time(), clock_timestamp(), clock_localtime(), clock_localtimestamp()
psm - schema level function
offset limit clause

ex)
DELETE FROM t1 FETCH 3;
UPDATE t1 SET c1 = seq.nextval;
DELETE FROM t1 WHERE c1 = random( 1, 100 );
SELECT * FROM t1 WHERE shard_key = func( c1 );
DELETE FROM t1 OFFSET 1;
UPDATE t1 SET c1 = c1 + 1 LIMIT 10;

ERR-42000(16423): does not support non-deterministic DML in the cluster system : global secondary index expected





+ Recent posts