2014-11-25 47 views
0

我設置一個系統組成riak,riak-cs和支柱到服務器,我用s3tool把對象放入riak,但是當我刪除對象時,它通知「文件s3://桶/對象刪除「,我檢查大小 /var/lib/riak然後它不會增加。雖然,我加入{delete_mode,立即進入}文件/etc/riak/app.config桶中的刪除對象,但大小存儲不增加到riak

文件中配置:

[ 
{riak_api, [ 
    {pb_backlog, 64}, 
    {pb, [ {"192.168.1.223", 8087 } ]} 
      ]}, 
      {riak_core, [ 
      {default_bucket_props, [{allow_mult, true}]}, {ring_state_dir, "/var/lib/riak/ring"}, 
       {ring_creation_size, 64},  
       {http, [ {"192.168.1.223", 8098 } ]}, 
       {handoff_port, 8099 }, 
       {dtrace_support, false},   
       {platform_bin_dir, "/usr/sbin"}, 
       {platform_data_dir, "/var/lib/riak"}, 
       {platform_etc_dir, "/etc/riak"}, 
       {platform_lib_dir, "/usr/lib64/riak/lib"}, 
       {platform_log_dir, "/var/log/riak"} 
      ]}, 
{riak_kv, [ 

     {map_js_vm_count, 0}, 
    {reduce_js_vm_count, 0}, 
    {hook_js_vm_count, 0}, 
       {delete_mode, immediate}, 
      {add_paths, ["/usr/lib64/riak-cs/lib/riak_cs-1.5.0/ebin"]}, 
       {storage_backend, riak_cs_kv_multi_backend}, 
       {multi_backend_prefix_list, [{<<"0b:">>, be_blocks}]}, 
       {multi_backend_default, be_default}, 
       {multi_backend, [ 
        {be_default, riak_kv_eleveldb_backend, [ 
         {max_open_files, 50}, 
         {data_root, "/var/lib/riak/leveldb"} 
        ]}, 
        {be_blocks, riak_kv_bitcask_backend, [ 
         {data_root, "/var/lib/riak/bitcask"} 
        ]} 
       ]},  
      {anti_entropy, {on, []}}, 
      {anti_entropy_build_limit, {1, 3600000}}, 
      {anti_entropy_expire, 604800000}, 
      {anti_entropy_concurrency, 2}, 
      {anti_entropy_tick, 15000},  
      {anti_entropy_data_dir, "/var/lib/riak/anti_entropy"}, 
      {anti_entropy_leveldb_opts, [{write_buffer_size, 4194304}, 
             {max_open_files, 20}]}, 
      {mapred_name, "mapred"}, 
      {mapred_2i_pipe, true}, 
      {js_max_vm_mem, 8}, 
      {js_thread_stack, 16}, 
      {http_url_encoding, on},  
      {vnode_vclocks, true}, 
      {listkeys_backpressure, true}, 
      {fsm_limit, 50000}, 
      {object_format, v1} 
      ]}, 
{riak_search, [ 
       {enabled, false} 
       ]}, 
{merge_index, [ 

       {data_root, "/var/lib/riak/merge_index"}, 
       {buffer_rollover_size, 1048576}, 
       {max_compact_segments, 20} 
       ]}, 
{bitcask, [ 
      {io_mode, erlang}, 

      {data_root, "/var/lib/riak/bitcask"} 
      ]}, 
{eleveldb, [ 
      {data_root, "/var/lib/riak/leveldb"} 
      ]}, 
{lager, [ 
      {handlers, [ 
          {lager_file_backend, [ 
           {"/var/log/riak/error.log", error, 10485760, "$D0", 5}, 
           {"/var/log/riak/console.log", info, 10485760, "$D0", 5} 
          ]} 
         ] }, 
      {crash_log, "/var/log/riak/crash.log"}, 
      {crash_log_msg_size, 65536},  
      {crash_log_size, 10485760},   
      {crash_log_date, "$D0"}, 
      {crash_log_count, 5}, 
      {error_logger_redirect, true}, 
      {error_logger_hwm, 100} 
     ]}, 
{riak_sysmon, [ 
     {process_limit, 30}, 
     {port_limit, 2}, 
     {gc_ms_limit, 0}, 
     {heap_word_limit, 40111000}, 
     {busy_port, true}, 
     {busy_dist_port, true} 
     ]}, 
{sasl, [ 
     {sasl_error_logger, false} 
     ]}, 
{riak_control, [ 
       {enabled, false}, 
       {auth, userlist}, 
       {userlist, [{"user", "pass"} 
          ]}, 
       {admin, true} 
       ]} 
]. 

任何幫助嗎?

乾杯,
Nghiep

回答

0

了Riak CS也有leeway_seconds設置。目的是保留已刪除對象的數據塊,以允許在刪除命令之前開始下載的較慢客戶端完成下載。默認設置是24小時。這意味着在Riak CS中刪除的對象在24小時過後纔會有資格進行垃圾回收。在此之後,下一次GC運行將從Riak中刪除數據塊,並將其替換爲墓碑。如果將delete_mode設置爲immediate,則Riak墓碑將立即從後端刪除。

但是,Bitcask後端將不會釋放磁盤空間,直到合併操作處理包含舊值的文件。 riak-admin vnode-status命令將顯示每個Bitcask後端中每個數據文件的碎片百分比,死區字節數和總大小。

+0

感謝您的幫助。 現在,我需要immediataly刪除數據。所以,你有辦法立即刪除數據? – 2014-12-02 11:27:19

+0

也許將leeway_seconds設置爲0 – Joe 2014-12-05 21:41:49

+0

我嘗試過但未完成:( – 2014-12-17 10:37:28