senthilkv opened a new pull request #10705:
URL: https://github.com/apache/druid/pull/10705


   
   
   
   ### Description
   
   **Compressed Big Decimal** is an extension which provides support for 
Mutable big decimal value that can be used to accumulate values without losing 
precision or reallocating memory. This type helps in absolute precision 
arithmetic on large numbers in applications, where  greater level of accuracy 
is required, such as financial applications, currency based transactions.  This 
helps avoid rounding issues where in potentially large amount of money can be 
lost.
   
   Accumulation requires that the two numbers have the same scale, but does not 
require that they are  of the same size. If the value being accumulated has a 
larger underlying array than this value (the result), then the higher order 
bits are dropped, similar to  what happens when adding a long to an int and 
storing the result in an int. A compressed big decimal that holds its data with 
an embedded array.
   
   Compressed big decimal is an absolute number based complex type based on big 
decimal in Java. This supports all the functionalities supported by Java Big 
Decimal.  Java Big Decimal is not mutable in order to avoid big garbage 
collection issues.   Compressed big decimal is needed to mutate the value in 
the accumulator.
   
   This is in reference to the Issue 
https://github.com/apache/druid/issues/10668.
   
   <hr>
   
   This PR has:
   - [ x] been self-reviewed.
      - [ ] using the [concurrency 
checklist](https://github.com/apache/druid/blob/master/dev/code-review/concurrency.md)
 (Remove this item if the PR doesn't have any relation to concurrency.)
   - [x ] added documentation for new or modified features or behaviors.
   - [ x] added Javadocs for most classes and all non-trivial methods. Linked 
related entities via Javadoc links.
   - [x ] added or updated version, license, or notice information in 
[licenses.yaml](https://github.com/apache/druid/blob/master/licenses.yaml)
   - [x ] added comments explaining the "why" and the intent of the code 
wherever would not be obvious for an unfamiliar reader.
   - [ x] added unit tests or modified existing tests to cover new code paths, 
ensuring the threshold for [code 
coverage](https://github.com/apache/druid/blob/master/dev/code-review/code-coverage.md)
 is met.
   - [ ] added integration tests.
   - [ x] been tested in a test Druid cluster.
   
   
   <hr>
   
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to