04. Index APIs - 04 :: 2015/05/19 09:05

TTL


Document 그와 관련된 ttl (Time To Live) 값을 가지고 index 있다. 폐기된 document 자동으로 삭제된다. Ttl값으로 제공되는 document 폐기 일자는 document index되는 시점이나 값으로 제공되는 어느 특정 시간의 timestamp 관련되어 있다. 값으로 제공되는 ttl값은 양수값이어야만 하고, milliseconds 단위의 숫자나 다음 예제에서 보여지는 적합한 시간 값이어야 한다.


curl -XPUT 'http://localhost:9200/twitter/tweet/1?ttl=86400000' -d '{
  
"user": "kimchy",
  
"message": "Trying out elasticsearch, so far so good?"
}'


curl -XPUT 'http://localhost:9200/twitter/tweet/1?ttl=1d' -d '{
  
"user": "kimchy",
  
"message": "Trying out elasticsearch, so far so good?"
}'


curl -XPUT 'http://localhost:9200/twitter/tweet/1' -d '{
  
"_ttl": "1d",
  
"user": "kimchy",
  
"message": "Trying out elasticsearch, so far so good?"
}'


많은 정보는 _ttl mappling page (https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-ttl-field.html) 에서 찾아볼 있다.


Distributed


Index operation routing section에서 것처럼 직접적으로 primary shard 기반 route하고, shard 있는 실제 노드에서 수행된다. Primary shard에서 operation 완료되면, 필요한 경우에, 업데이트는 replica 분산처리 된다.


Write Consistency


잘못된 network side write하는 것을 방지하기 위해서, 기본적으로 index operation active shard 수가 quorum (replicas 2분의 1 + 1) 성공적으로 수행된다. 기본값은 action.write_consistency 설정을 통해서 node-by-node별로 덮어쓸 있다. Operation별로 consistency parameter 보내면 값을 변경시킬 있다.

유효한 write consistency 값으로는 one, quorum, all 있다.

Replica 숫자가 1 경우 (전체 데이터 복제본이 2) 에는 기본 동작은 1개의 copy (primary)에서 write 발생하면, 성공한다.


Asynchronous Replication


[WARNING]

1.5.0에서 삭제되었음. Asynch replication 지정하는 것은 deprecated ( 이상 사용되지 않고 앞으로 사라질 것으로 마크) 되었고, 2.0.0에서는 삭제될 것이다.


기본적으로 index operation replication group 있는 모든 shard document index하고 나서 리턴한다. (sync replication임). Asynchronous replication 사용하기 위해서는 background replication process 일어나기 때문에 replication parameter async 설정해야 한다. Asynchronous replication 사용될 , index operation primary shard 성공적으로 operation 수행되었을 경우에 바로 결과를 리턴할 것이다.


Replication 설정의 기본 값은 sync이다. 그리고 기본 값은 action.replication_type 설정을 사용하여 노드별 기본 설정값으로 덮어쓸 있다. Replication type 유효한 값으로는, sync async가 있다. Operatio별로 동작을 다르게 하기 위해서는 replication request parameter 이용할 있다.


Refresh


Operation 발생한 이후 즉시 (전체 인덱스가 아니라) shard refresh하기 위해서, 그리고 즉시 검색 결과에 operation 적용된 document 나타나게 하기 위해서는 refresh parameter true 설정하면 된다. 옵션을 true 설정하는 것은, indexing하는 것과 검색하는 양쪽 상황에서 성능상 문제를 일으키지 않는다는 주의 깊은 생각과 확신 속에서 수행되어야만 한다. Get API 통해서 document 조회하는 것은 realtime으로 이루어진다는 것을 유의하라.


Timeout


Index operation 수행하도록 할당된 primary shard index operation 실행되고 있을 때는 이용할 없다. 여기에는 가지 이유가 있는데, primary shard gateway로부터 바로 기록되고 재배치가 일어나기 때문이다. 기본적으로 index operation primary shard 사용할 있을 때까지 1 정도를 기다린다. 1 이후에는 실패로 간주하고 오류를 응답한다. Timeout parameter 얼마나 오래 응답을 기다릴 것인지를 명시적으로 설정하는데 사용된다. 다음 예제에서는 5분으로 설정하고 있다.


$ curl -XPUT 'http://localhost:9200/twitter/tweet/1?timeout=5m' -d '{
  
"user" : "kimchy",
  
"post_date" : "2009-11-15T14:12:12",
  
"message" : "trying out Elasticsearch"
}'

2015/05/19 09:05 2015/05/19 09:05
Trackback Address :: http://www.yongbi.net/trackback/726
[로그인][오픈아이디란?]
오픈아이디로만 댓글을 남길 수 있습니다
Name
Password
Homepage

Secret
< PREV |  1  |  ...  77  |  78  |  79  |  80  |  81  |  82  |  83  |  84  |  85  |  ...  566  |  NEXT >