code: private void doPut(List<Event> data) {
          long current = putSequence.get();
          long end = current + data.size();
  
          // 先写数据，再更新对应的cursor,并发度高的情况，putSequence会被get请求可见，拿出了ringbuffer中的老的Entry值
          for (long next = current + 1; next <= end; next++) {
              entries[getIndex(next)] = data.get((int) (next - current - 1));
          }
  
          putSequence.set(end);
  
          // 记录一下gets memsize信息，方便快速检索
          if (batchMode.isMemSize()) {
              long size = 0;
              for (Event event : data) {
                  size += calculateSize(event);
              }
  
              putMemSize.getAndAdd(size);
          }
          profiling(data, OP.PUT);
          // tell other threads that store is not empty
          notEmpty.signal();
      }
docs: 执行具体的put操作