Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-16439

Row mutation: missing rows with Put contains thousands of columns

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Not A Problem
    • 0.98.6
    • None
    • None
    • None
    • Cloudera CDH 5.3.3

    Description

      Some rows is missing when put them into a table using mutateRow method and each row has thousands of columns. The code excerpt:

      try (HConnection hc = HConnectionManager.createConnection(conf)) {
      	try (HTableInterface table = hc.getTable(tableName)) {
      		final LocalDate startDate = LocalDate.of(1980, 01, 01); 
      		for (int i = 0; i < 15000; i++) {
      			byte[] row = Bytes.toBytes(Integer.toString(i));
      
      			long ts = System.currentTimeMillis();
      			Put put = new Put(row, ts + 1);
      			LocalDate date = startDate; 
      			for (int j = 0; j < 5000; j++) {
      				put.add(
      					family,
      					Bytes.toBytes(DateTimeFormatter.BASIC_ISO_DATE.format(date)),
      					Bytes.toBytes(Integer.toString(j))
      				);
      				date = date.plusDays(1);
      			}
      			
      			RowMutations rm = new RowMutations(row);
      
      			rm.add(put);
      			
      			table.mutateRow(rm);
      		}
      	}
      }
      

      Resulting number of rows varies - sometimes it 200, sometimes it 8000. But never expected 15000.
      The full code of test application is attached.

      Attachments

        1. HBaseAtomic.zip
          3 kB
          Stas Makutin

        Activity

          People

            Unassigned Unassigned
            stas.makutin Stas Makutin
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: