[ 
https://issues.apache.org/jira/browse/IMPALA-12373?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Zoltán Borók-Nagy updated IMPALA-12373:
---------------------------------------
    Description: 
Implement Small String Optimization for StringValue.

Current memory layout of StringValue is:
{noformat}
  char* ptr;  // 8 byte
  int len;    // 4 byte
{noformat}
For small strings with size up to 8 we could store the string contents in the 
bytes of the 'ptr'. Something like that:
{noformat}
  union {
    char* ptr;
    char small_buf[sizeof(ptr)];
  }
  int len;
{noformat}
Many C++ string implementations use the {{Small String Optimization}} to speed 
up work with small strings. For example: {code}Microsoft STL, libstdc++, 
libc++, Boost, Folly.{code}


  was:
Implement Small String Optimization for StringValue.

Current memory layout of StringValue is:
{noformat}
  char* ptr;  // 8 byte
  int len;    // 4 byte
{noformat}
For small strings with size up to 8 we could store the string contents in the 
bytes of the 'ptr'. Something like that:
{noformat}
  union {
    char* ptr;
    char small_buf[sizeof(ptr)];
  }
  int len;
{noformat}
Many C++ string implementations use the {{Small String Optimization}} to speed 
up work with small strings. For example: {{{}Microsoft STL{}}}, 
{{{}libstdc++{+}{+}{}}}, {{{}libc++{}}}, {{{}Boost{}}}, {{{}Folly{}}}.


> Implement Small String Optimization for StringValue
> ---------------------------------------------------
>
>                 Key: IMPALA-12373
>                 URL: https://issues.apache.org/jira/browse/IMPALA-12373
>             Project: IMPALA
>          Issue Type: Improvement
>            Reporter: Zoltán Borók-Nagy
>            Priority: Major
>
> Implement Small String Optimization for StringValue.
> Current memory layout of StringValue is:
> {noformat}
>   char* ptr;  // 8 byte
>   int len;    // 4 byte
> {noformat}
> For small strings with size up to 8 we could store the string contents in the 
> bytes of the 'ptr'. Something like that:
> {noformat}
>   union {
>     char* ptr;
>     char small_buf[sizeof(ptr)];
>   }
>   int len;
> {noformat}
> Many C++ string implementations use the {{Small String Optimization}} to 
> speed up work with small strings. For example: {code}Microsoft STL, 
> libstdc++, libc++, Boost, Folly.{code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

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

Reply via email to