Class: Roma::Storage::DbmStorage
- Inherits:
-
BasicStorage
- Object
- BasicStorage
- Roma::Storage::DbmStorage
- Defined in:
- lib/roma/storage/dbm_storage.rb
Constant Summary
Constants inherited from BasicStorage
BasicStorage::PACK_HEADER_TEMPLATE, BasicStorage::PACK_TEMPLATE
Instance Attribute Summary
Attributes inherited from BasicStorage
#cleanup_regexp, #dbs, #divnum, #do_each_vn_dump, #each_clean_up_sleep, #each_vn_dump_sleep, #each_vn_dump_sleep_count, #error_message, #ext_name, #hdb, #hdiv, #logic_clock_expire, #option, #st_class, #storage_path, #vn_list
Instance Method Summary collapse
- #each_clean_up(t, vnhash) ⇒ Object
-
#initialize ⇒ DbmStorage
constructor
A new instance of DbmStorage.
Methods inherited from BasicStorage
#add, #append, #cache_file_name, #cas, #close_log, #closedb, #db_get, #db_put, #decr, #delete, #dump, #each_cache_by_keys, #each_cache_dump_pack, #each_hdb_dump, #each_vn_dump, #flush_db, #get, #get_context, #get_keys_in_cache, #get_logfile_list, #get_raw, #get_raw2, #get_stat, #incr, #load, #load_stream_dump, #load_stream_dump_for_cachecleaning, #open_log, #opendb, #out, #out_cache, #prepend, #rdelete, #replace, #rset, #set, #set_db_stat, #set_expt, #stop_clean_up, #true_length, #write_log
Constructor Details
#initialize ⇒ DbmStorage
Returns a new instance of DbmStorage.
16 17 18 19 |
# File 'lib/roma/storage/dbm_storage.rb', line 16 def initialize super @ext_name = 'dbm' end |
Instance Method Details
#each_clean_up(t, vnhash) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/roma/storage/dbm_storage.rb', line 21 def each_clean_up(t, vnhash) @do_clean_up = true nt = Time.now.to_i @hdb.each{ |hdb| delkey = [] hdb.each{ |k, v| return unless @do_clean_up vn, last, clk, expt = unpack_header(v) vn_stat = vnhash[vn] if vn_stat == :primary && ( (expt != 0 && nt > expt) || (expt == 0 && t > last) ) delkey << [vn, k, v] elsif vn_stat == nil && t > last delkey << [vn, k, v] end sleep @each_clean_up_sleep } delkey.each{ |vn, k, v| yield k, vn hdb.out(k) if hdb.get(k) == v } } end |