[ 
https://issues.apache.org/jira/browse/TS-3178?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14202104#comment-14202104
 ] 

Alan M. Carroll commented on TS-3178:
-------------------------------------

I think we may want to change the original proxy allocator configuration value 
so the pair is something like

{code}
proxy.config.allocator.thread_free_list.high_watermark
proxy.config.allocator.thread_free_list.low_watermark
{code}

We could do this for 5.X and put in some transitional code to read the old tag 
for size/high_watermark for compatibility.

Use pre-increment and decrement. That is, {{--(l.allocated);}} etc.

Rather than enclosing the {{return}} in the {{ifdef}}, why on enclose the rest 
in a {{#if !defined}}?

{code}
#if !defined(TS_USE_RECLAIMABLE_FREELIST)
  if (unlikely(count == 1)) {
    a.free(head);
  } else if (count > 0) {
    a.free_bulk(head, tail, count);
  }

  ink_assert(l.allocated >= thread_freelist_low_watermark);
#endif
}
{code}

You should put a comment on the count argument to the low level free functions 
that it is there only for accounting, to keep the memory counters correct.

> ProxyAllocator improvements
> ---------------------------
>
>                 Key: TS-3178
>                 URL: https://issues.apache.org/jira/browse/TS-3178
>             Project: Traffic Server
>          Issue Type: Improvement
>          Components: Core
>            Reporter: Brian Geffon
>            Assignee: Cynthia Gu
>         Attachments: patch.diff
>
>
> Currently when a ProxyAllocator (Thread Local) has more than a
> configurable number of elements it will return them one-by-one to a
> ClassAllocator (Global Freelist). Returning every item in this fashion is
> inefficient as we'll likely need more items in the future. Therefore we
> should maintain a low watermark (a minimum number) of items that should be in 
> a ProxyAllocator at any one time. When the number of elements reaches high 
> watermark, the free up is triggers to keep it below the low
> watermark. Additionally, the free should be a block free instead of
> one-by-one as we can reduce several hundred compare-and-swap operations to a 
> single CAS



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to