Uploaded image for project: 'Hive'
  1. Hive
  2. HIVE-16425

Vectorization: unload old hashtables before reloadHashTable

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 3.0.0
    • Vectorization
    • None

    Description

        @Override
        protected void reloadHashTable(byte pos, int partitionId)
                throws IOException, HiveException, SerDeException, ClassNotFoundException {
      
          // The super method will reload a hash table partition of one of the small tables.
          // Currently, for native vector map join it will only be one small table.
          super.reloadHashTable(pos, partitionId);
      
          MapJoinTableContainer smallTable = spilledMapJoinTables[pos];
      
          vectorMapJoinHashTable = VectorMapJoinOptimizedCreateHashTable.createHashTable(conf,
              smallTable);
          needHashTableSetup = true;
          LOG.info("Created " + vectorMapJoinHashTable.getClass().getSimpleName() + " from " + this.getClass().getSimpleName());
      
          if (isLogDebugEnabled) {
            LOG.debug(CLASS_NAME + " reloadHashTable!");
          }
        }
      

      The super call causes an OOM because of existing memory usage by vectorMapJoinHashTable.

      Attachments

        1. HIVE-16425.1.patch
          0.9 kB
          Gopal Vijayaraghavan

        Activity

          People

            gopalv Gopal Vijayaraghavan
            gopalv Gopal Vijayaraghavan
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: