Method: Roma::Command::SystemCommandReceiver#ev_rset
- Defined in:
- lib/roma/command/sys_command_receiver.rb
#ev_rset(s) ⇒ Object
rset <key> <hash value> <timelimit> <length> “set” means “store this data”. <command name> <key> <digest> <exptime> <bytes> [noreply]rn <data block>rn
313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 |
# File 'lib/roma/command/sys_command_receiver.rb', line 313 def ev_rset(s) key,hname = s[1].split("\e") hname ||= @defhash d = s[2].to_i d = Digest::SHA1.hexdigest(key).hex % @rttable.hbits if d == 0 data = read_bytes(s[5].to_i) read_bytes(2) vn = @rttable.get_vnode_id(d) unless @storages.key?(hname) send_data("SERVER_ERROR #{hname} does not exists.\r\n") return end if @storages[hname].rset(vn, key, d, s[3].to_i, s[4].to_i, data) send_data("STORED\r\n") else @log.error("rset NOT_STORED:#{@storages[hname].} #{vn} #{s[1]} #{d} #{s[3]} #{s[4]}") send_data("NOT_STORED\r\n") end @stats.redundant_count += 1 end |