Method: Roma::Command::SystemCommandReceiver#ev_rzset
- Defined in:
- lib/roma/command/sys_command_receiver.rb
#ev_rzset(s) ⇒ Object
<command name> <key> <digest> <exptime> <bytes> [noreply]rn <compressed data block>rn
336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 |
# File 'lib/roma/command/sys_command_receiver.rb', line 336 def ev_rzset(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 zdata = 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 data = Zlib::Inflate.inflate(zdata) # @log.debug("data = #{data}") if @storages[hname].rset(vn, key, d, s[3].to_i, s[4].to_i, data) send_data("STORED\r\n") else @log.error("rzset NOT_STORED:#{@storages[hname].} #{vn} #{s[1]} #{d} #{s[3]} #{s[4]}") send_data("NOT_STORED\r\n") end @stats.redundant_count += 1 rescue Zlib::DataError => e @log.error("rzset NOT_STORED:#{e} #{vn} #{s[1]} #{d} #{s[3]} #{s[4]}") send_data("NOT_STORED\r\n") end |