[erlang-patches] Improving ETS performances

Francesco Lattanzio franz.lattanzio@REDACTED
Fri Jun 27 10:42:16 CEST 2014


Removed dots from commit messages.
A new pull request has been submitted. Here is the new patch:

  git fetch https://github.com/fltt/otp.git ets_nested_lht_4

  https://github.com/fltt/otp/compare/erlang:maint...ets_nested_lht_4
  https://github.com/fltt/otp/compare/erlang:maint...ets_nested_lht_4.patch

-- 
Francesco Lattanzio

On Wed, Jun 25, 2014 at 09:38:06PM +0200, Francesco Lattanzio wrote:
> Hello again Sverker,
>     I've made some progress with this patch. Briefly:
> 
> * set tables and bag/duplicate_bag tables are now managed by dedicated
>   code -- erl_db_hash.[ch] and erl_db_nested_hash.[ch] respectively
> * reduced memory overhead
> 
> You can compute the difference (in words) between the new and the old
> implementations' memory footprints (when nested LHT is not active) of a
> collection of 'n' objects sharing the same key as:
> 
>   MemDiff = 4 - n
> 
> I used this formula to fix the ets suite's memory test case.
> 
> With regard to the yielding problem, I deciced not to fix it now for the
> following reasons:
> 
> 1) it is unrelated to the nested LHT, as the problem manifests itself
>    even in the current (non-nested LHT) implementation
> 2) you offered to fix it yourself
> 
> The patch is available at:
> 
>   git fetch https://github.com/fltt/otp.git ets_nested_lht_3
> 
>   https://github.com/fltt/otp/compare/erlang:maint...ets_nested_lht_3
>   https://github.com/fltt/otp/compare/erlang:maint...ets_nested_lht_3.patch
> 
> It is based on the maint branch.
> 
> I've tested it on Linux x86_64, latest kernel (all the test suites) and
> FreeBSD/i386 9.2 (only the emulator, kernel and stdlib test suites).
> 
> Have another nice day.



More information about the erlang-patches mailing list