What is block weight and how is it different from block size? While reading about BIP141, I have encountered the following options:

Block creation options:
-blockmaxweight=&lt;n&gt; Set maximum BIP141 block weight (default: 3000000)
-blockmaxsize=&lt;n&gt;   Set maximum block size in bytes (default: 750000)


What is a block weight? Is it a integer representation of the size?
Block weight is defined in BIP 141 itself:


  Block weight is defined as Base size * 3 + Total size. (rationale[3])
  
  Base size is the block size in bytes with the original transaction
  serialization without any witness-related data, as seen by a
  non-upgraded node.
  
  Total size is the block size in bytes with transactions serialized as
  described in BIP144, including base data and witness data.


The given rationale is:


  Rationale of using a single composite constraint, instead of two separate limits such as 1MB base data and 3MB witness data: Using two separate limits would make mining and fee estimation nearly impossible. Miners would need to solve a complex non-linear optimization problem to find the set of transactions that maximize fees given both constraints, and wallets would not be able to know what to pay as it depends on which of the two conditions is most constrained by the time miners try to produce blocks with their transactions in. Another problem with such an approach is freeloading. Once a set of transactions hit the base data 1MB constraint, up to 3MB extra data could be added to the witness by just minimally increasing the fee. The marginal cost for extra witness space effectively becomes zero in that case.