CSS技術預覽版特性:基于OBS的存算分離

      網友投稿 898 2022-05-29

      什么是ES存算分離技術

      云搜索服務對存儲在服務里面的數據,可以通過接口操作,將數據從EVS、直通盤的儲存數據直接轉移到對象存儲OBS里面。將數據轉儲到OBS的過程稱為冷凍。

      技術原理

      這項技術并非簡單的將存儲轉移到對象存儲,重點是如何實現Shadow Replica可靠的消除存儲副本,以及消除超大存儲帶來的Cache開銷,否則無法實現小節點帶大存儲。

      緩存及其優化辦法

      將數據轉儲到OBS后,為了盡可能的減少對OBS的訪問請求,并提升ES的查詢性能,系統會將緩存部分數據。第一次獲取到數據時,會直接訪問OBS,之后將獲取到的數據緩存在內存中,后續訪問會先檢查是否有緩存。數據緩存在堆外內存中。

      ES訪問不同的文件訪問的模式是不一樣的,緩存系統支持多級緩存,分別使用不同的block大小來緩存不同的文件,如對fdx,tip文件,使用大量的小block緩存,對fdt文件,使用較少的大block緩存。

      以下為針對緩存的所有配置:

      配置名

      類型

      默認值

      說明

      low_cost.obs.blockcache.names

      Array

      default

      緩存系統支持多級緩存,分別用來緩存不同訪問粒度的數據,此配置列出所有緩存的名字。即使不配置,系統也會默認有一個緩存,名字為default,如果自定義配置,請確保有一個名字為default的緩存,其他名字任意。

      low_cost.obs.blockcache..blockshift

      Int

      13

      緩存每個block的大小,為字節左移數,如配置為16,表示block大小為65536字節,即64K.默認8K

      low_cost.obs.blockcache..bank.count

      Int

      1

      緩存分區數

      CSS技術預覽版特性:基于OBS的存算分離

      low_cost.obs.blockcache..number.blocks.perbank

      Int

      8192

      每個緩存分區中包含的block數

      low_cost.obs.blockcache. .exclude.file.types

      Array

      不緩存的文件后綴名。如果某些后綴既不包含中exclude列表,又不包含中include列表,則會使用default緩存。

      low_cost.obs.blockcache. .file.types

      Array

      緩存的文件后綴名。如果某些后綴既不包含中exclude列表,又不包含中include列表,則會使用default緩存。

      以下為一個較為常見的緩存配置,該配置使用兩級緩存,名字分別為default和large,其中default緩存使用64K的block大小,并且一共有6*4096個block,default緩存用于緩存除fdt后綴的其他文件。large緩存使用4M的block大小,一共有3*500個block,large緩存用于緩存fdx,dvd,tip后綴的文件。

      low_cost.obs.blockcache.names: ["default", "large"]

      low_cost.obs.blockcache.default.blockshift: 16

      low_cost.obs.blockcache.default.number.blocks.perbank: 4096

      low_cost.obs.blockcache.default.bank.count: 6

      low_cost.obs.blockcache.default.exclude.file.types: ["fdt"]

      low_cost.obs.blockcache.large.blockshift: 22

      low_cost.obs.blockcache.large.number.blocks.perbank: 500

      low_cost.obs.blockcache.large.bank.count: 3

      low_cost.obs.blockcache.large.file.types: ["fdx", "dvd", "tip"]

      如何使用

      1、??通過接口直接使用

      指定要操作的索引,使用接口

      POST {index}/_freeze_low_cost

      該請求為異步請求,下發下去后會啟動轉儲任務,并返回task id:

      可以使用tasks接口查看任務是否已完成:

      GET _tasks/{taskId}

      返回樣例:

      2、??結合索引生命周期,參考章節1.2.3

      3、??其他接口

      1)??????列出集群中已冷凍的索引

      GET _cat/freeze_indices?v

      返回樣例:

      2)??????執行冷凍

      POST {index}/_freeze_low_cost

      3)??????查看冷凍進度

      GET {index}/_freeze_low_cost_progress

      返回樣例:

      {

      "shards" : [

      {

      "index" : "log2",

      "uuid" : "J_yYlVHxSd-E-EL9r5oyjA",

      "shard" : 0,

      "start_ms" : 1583837699953,

      "end_ms" : 1583837702103,

      "total_bytes" : 3004,

      "finished_bytes" : 3004,

      "total_files" : 4,

      "finished_files" : 4

      }

      ]

      4)??????查看緩存狀態

      {

      "_nodes" : {

      "total" : 2,

      "successful" : 2,

      "failed" : 0

      },

      "cluster_name" : "Es-0111",

      "nodes" : {

      "C-CPEm-QSueKR4bhuqoT2Q" : {

      "name" : "Es-0111-ess-esn-1-1",

      "transport_address" : "192.168.115.115:9300",

      "host" : "192.168.115.115",

      "ip" : "192.168.115.115",

      "large" : {

      "block_cache_capacity" : 1500,

      "block_cache_blocksize" : 4194304,

      "block_cache_size" : 1499,

      "block_cache_hit" : 240284719,

      "block_cache_miss" : 14356,

      "block_cache_eviction" : 12314,

      "block_cache_store_fail" : 738

      },

      "default" : {

      "block_cache_capacity" : 24576,

      "block_cache_blocksize" : 65536,

      "block_cache_size" : 24575,

      "block_cache_hit" : 705825,

      "block_cache_miss" : 328788,

      "block_cache_eviction" : 301871,

      "block_cache_store_fail" : 3065

      },

      "obs_list_count" : 4080,

      "obs_get_meta_count" : 28406,

      "obs_get_obj_count" : 195829,

      "obs_put_obj_count" : 0,

      "obs_list_ms" : 53754,

      "obs_get_meta_ms" : 132073,

      "obs_get_obj_ms" : 3391771,

      "obs_put_obj_ms" : 0,

      "obs_op_total_ms" : 3577598,

      "obs_op_total_count" : 228315

      }

      }

      }

      注意事項

      確保在執行冷凍操作前

      1、??需冷凍的索引沒有數據寫入。在冷凍操作執行前,會將索引配置為read only,會導致寫入數據出錯。

      2、??在執行冷凍索引時,不能同步在執行force merge,如果在冷凍索引時該索引在force merge,則會先將索引close,再open后進行冷凍。建議在執行冷凍前執行一次徹底的force merge,將小的segment文件合并成大文件能有效提升冷凍以后的查詢性能。

      執行冷凍操作后

      1、索引變為只讀。

      2、索引數據將會轉儲到OBS,轉移過程中,會占用網絡帶寬。

      3、轉儲后的索引,查詢時延會增加,聚合時由于查詢復雜,數據讀取多,時延邊長會體現的更明顯。

      4、?已冷凍的索引不支持解凍,即不能回退可寫的索引。

      CSS 對象存儲服務 OBS

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:UNIX 環境高級編程|標準 I/O 庫
      下一篇:Java的異常處理
      相關文章
      国产亚洲成在线播放va| 亚洲精品第一国产综合精品99 | jjzz亚洲亚洲女人| 亚洲国产高清在线精品一区| 亚洲香蕉成人AV网站在线观看| 欧美激情综合亚洲一二区| 亚洲精品av无码喷奶水糖心| 亚洲色偷偷综合亚洲AV伊人蜜桃| 亚洲成人黄色网址| 亚洲剧情在线观看| 亚洲另类春色国产精品| 亚洲国产成AV人天堂无码| 亚洲欧洲综合在线| 亚洲乱码无限2021芒果| 亚洲一区二区三区精品视频 | 亚洲国产成人超福利久久精品| 亚洲经典在线观看| 亚洲国产精品久久网午夜| 亚洲一级高清在线中文字幕| 亚洲深深色噜噜狠狠网站| 久久亚洲精品国产精品婷婷| 亚洲欧洲专线一区| 精品久久久久久亚洲中文字幕| 亚洲?v无码国产在丝袜线观看| 亚洲精品国产精品乱码不卡| 亚洲综合国产精品第一页| 亚洲线精品一区二区三区| 亚洲AV永久无码精品成人| 久久久久亚洲av无码专区导航| 亚洲色av性色在线观无码| 亚洲综合色区中文字幕| 亚洲色偷偷综合亚洲AV伊人蜜桃| 色婷婷亚洲一区二区三区| 亚洲日韩在线中文字幕第一页| 亚洲日韩精品一区二区三区无码| 久久亚洲精品中文字幕无码| 亚洲高清日韩精品第一区| 亚洲免费在线视频播放| 亚洲精品美女久久7777777| 亚洲AV蜜桃永久无码精品| 亚洲线精品一区二区三区|