aboutsummaryrefslogtreecommitdiffstats
path: root/lib
AgeCommit message (Collapse)Author
2019-06-11ETS ordered_set: Improvements to the CA tree implementationKjell Winblad
This commit only affects the implementation of ETS `ordered_set` tables with the `write_concurrency` option enabled. Such tables are implemented with a data structure that is called the contention adapting search tree (CA tree). This commit introduces the following changes: * This commit causes a join to be triggered in one randomly selected base node in about one of 1000 read unlock calls for base node locks. No such joins happened before this commit. Before this commit, operations that only acquired looks in read-mode never triggered any contention adaptation. Therefore, the CA tree could get stuck in a sub-optimal state in certain scenarios. This could happen, for example, when a CA tree is first populated with parallel inserts (which will cause splits of base nodes) and then only read-only operations are applied to the data structure. Benchmark results from the `ets_SUITE:lookup_catree_par_vs_seq_init_benchmark/0` benchmark function (which is included in this commit) shows that this change can improve the throughput of the CA tree in the scenario described above. * Read-only operations will now also increase values of statistics counters when they detect that they need to wait for other operations. Only write operation changed statistics counters before this commit. This improves the statistics that the adaptation heuristics is based on. * Additionally, this commit adds an upper and lower limit to the contention statistics variables in the base nodes. Such limits did not exist before this commit. This should, for example, make the CA tree more responsive to contention after long periods of low contention.
2019-06-11Merge branch 'maint'Hans Nilsson
* maint: Remove duplication of SSH encoding macros Remove duplicate ssh_userauth.hrl
2019-06-11Merge branch 'hans/ssh/internal_cleaning/PR-2255/PR-2256/OTP-15876' into maintHans Nilsson
* hans/ssh/internal_cleaning/PR-2255/PR-2256/OTP-15876: Remove duplication of SSH encoding macros Remove duplicate ssh_userauth.hrl
2019-06-11Merge branch 'maint'Péter Dimitrov
* maint: ssl: Update standards compliance ssl: Fix alert handling (TLS 1.3) ssl: Add tests for ALPN in TLS 1.3 ssl: Implement ALPN in TLS 1.3 ssl: Add TLS 1.3 test group to ssl_certificate_verify_SUITE ssl: Fix negative tests in ssl_basic_SUITE
2019-06-11Merge pull request #2276 from peterdmv/ssl/tls13-alpnPéter Dimitrov
Implement ALPN in TLS 1.3
2019-06-11Merge branch 'maint'Ingela Anderton Andin
2019-06-11Merge branch 'ingela/public_key/PEBS2-AES/ERL-952/OTP-15870' into maintIngela Anderton Andin
* ingela/public_key/PEBS2-AES/ERL-952/OTP-15870: public_key: Add AES to PBE2
2019-06-11Merge branch 'maint'John Högberg
* maint: erts: Fix bad loader optimization of get_tuple_element beam_ssa_type: Fix incorrect bitstring unit determination
2019-06-11Merge branch 'john/erts/fix-bad-get_tuple_element-opt/OTP-15871/ERIERL-374' ↵John Högberg
into maint * john/erts/fix-bad-get_tuple_element-opt/OTP-15871/ERIERL-374: erts: Fix bad loader optimization of get_tuple_element
2019-06-11Merge branch 'john/compiler/fix-bad-bitstring-type-opt/OTP-15872' into maintJohn Högberg
* john/compiler/fix-bad-bitstring-type-opt/OTP-15872: beam_ssa_type: Fix incorrect bitstring unit determination
2019-06-10erts: Fix bad loader optimization of get_tuple_elementJohn Högberg
The following sequence would be wrongly optimized into a i_get_tuple_element2 instruction, reading an element from the wrong tuple: {get_tuple_element,{x,0},1,{x,0}}. {get_tuple_element,{x,0},2,{x,1}}.
2019-06-10beam_ssa_type: Fix incorrect bitstring unit determinationJohn Högberg
The compiler would treat the "Unit" of bs_init instructions as the unit of the result instead of the required unit of the input, causing is_binary checks to be wrongly optimized away.
2019-06-10Merge branch 'maint'Siri Hansen
2019-06-10Merge branch 'siri/ct/hook-terminated-not-initiated/ERIERL-370/OTP-15863' ↵Siri Hansen
into maint * siri/ct/hook-terminated-not-initiated/ERIERL-370/OTP-15863: [ct] Fix bug where Hook:terminate/1 was called before Hook:init/2
2019-06-10public_key: Add AES to PBE2Ingela Anderton Andin
2019-06-10Merge branch 'maint'Ingela Anderton Andin
2019-06-10Merge branch 'ingela/ssl/dtls-multiplxor/ERL-962/OTP-15864' into maintIngela Anderton Andin
* ingela/ssl/dtls-multiplxor/ERL-962/OTP-15864: ssl: Add missing gen_server return value in DTLS packet demux process
2019-06-10Testing two PRsHans Nilsson
Merge commit '508ddd5aaa189ddcf7a06f4342c187b07ec1734a'; commit '5160870a868bfcb29bd8f1a2c12b7b7b7963d946' into hans/ssh/PRs * commit '508ddd5aaa189ddcf7a06f4342c187b07ec1734a': Remove duplication of SSH encoding macros * commit '5160870a868bfcb29bd8f1a2c12b7b7b7963d946': Remove duplicate ssh_userauth.hrl
2019-06-07ssl: Add missing gen_server return value in DTLS packet demux processIngela Anderton Andin
2019-06-07ssl: Update standards compliancePéter Dimitrov
2019-06-07ssl: Fix alert handling (TLS 1.3)Péter Dimitrov
Server and client use different secrets when sending certificate related alerts. This is due to a change to the TLS protocol where clients send their 'certificate' message after they have received the server's 'finished' message.
2019-06-07ssl: Add tests for ALPN in TLS 1.3Péter Dimitrov
2019-06-07ssl: Implement ALPN in TLS 1.3Péter Dimitrov
2019-06-07ssl: Add TLS 1.3 test group to ssl_certificate_verify_SUITEPéter Dimitrov
2019-06-07ssl: Fix negative tests in ssl_basic_SUITEPéter Dimitrov
2019-06-06Remove duplication of SSH encoding macrosPaul Meinhardt
2019-06-06Remove duplicate ssh_userauth.hrlPaul Meinhardt
The `ssh_userauth.hrl` header file was a duplicate of `ssh_auth.hrl` not used anywhere except for the ssh benchmark suite.
2019-06-05Merge branch 'maint'Siri Hansen
2019-06-05Merge branch 'siri/logger/relatve-log-file-path/OTP-15850' into maintSiri Hansen
* siri/logger/relatve-log-file-path/OTP-15850: [logger] Store file name as absolute path in logger_std_h
2019-06-05Merge branch 'maint'Hans Bolinder
* maint: dialyzer: Correct indentation of field warnings
2019-06-05Merge branch 'hasse/dialyzer/fix_string_split/OTP-15861/ERL-953' into maintHans Bolinder
* hasse/dialyzer/fix_string_split/OTP-15861/ERL-953: dialyzer: Correct indentation of field warnings
2019-06-04Merge branch 'maint'Ingela Anderton Andin
2019-06-04Merge branch 'ingela/ssl/PR-2235/OTP-15851' into maintIngela Anderton Andin
* ingela/ssl/PR-2235/OTP-15851: Export sign_scheme/0 types
2019-06-04Merge branch 'maint'Ingela Anderton Andin
2019-06-04Merge pull request #2268 from IngelaAndin/ingela/ssl/DTLS-version-check/ERL-920Ingela Andin
ssl: Change check of DTLS record version OTP-15807 Merged as it is an confirmed improvement, however more work needs to be done on DTLS test framework.
2019-06-04[ct] Fix bug where Hook:terminate/1 was called before Hook:init/2Siri Hansen
This problem was introduced with commit acd87425acf7705328b01aa8f0a804207ffe4790, when the new hook function post_groups/2 and post_all/3 were added.
2019-06-04dialyzer: Correct indentation of field warningsHans Bolinder
See also https://bugs.erlang.org/browse/ERL-953.
2019-06-04Merge branch 'maint'Ingela Anderton Andin
2019-06-04Merge pull request #2269 from IngelaAndin/ingela/ssl/ret-ext/ERL-951Ingela Andin
ssl: Fix broken return value OTP-15862
2019-06-04Merge branch 'maint'Ingela Anderton Andin
* maint: Updated OTP version Prepare release
2019-06-04Merge branch 'maint-21' into maintIngela Anderton Andin
* maint-21: Updated OTP version Prepare release # Conflicts: # OTP_VERSION # erts/doc/src/notes.xml # erts/vsn.mk # lib/kernel/doc/src/notes.xml # lib/kernel/src/kernel.appup.src # lib/kernel/vsn.mk # lib/ssl/doc/src/notes.xml # lib/ssl/vsn.mk # lib/stdlib/doc/src/notes.xml # lib/stdlib/src/stdlib.appup.src # lib/stdlib/vsn.mk # make/otp_version_tickets # otp_versions.table
2019-06-03Merge branch 'maint'Hans Bolinder
* maint: Updated OTP version Prepare release # Conflicts: # OTP_VERSION # make/otp_version_tickets_in_merge
2019-06-03Merge branch 'maint-22' into maintHans Bolinder
* maint-22: Updated OTP version Prepare release # Conflicts: # make/otp_version_tickets
2019-06-03Merge branch 'maint'Björn Gustavsson
* maint: Teach ei_print_term() to print funs Teach ei_print_term() to print maps Correct decoding of old funs (FUN_EXT) Correct decoding of external funs
2019-06-03Prepare releaseErlang/OTP
2019-06-03Merge branch ↵Erlang/OTP
'sverker/seq-trace-label-old-heap-bug/ERL-700/OTP-15849/OTP-15858/OTP-15859' into maint-21 * sverker/seq-trace-label-old-heap-bug/ERL-700/OTP-15849/OTP-15858/OTP-15859: erts: Fix faulty spec for seq_trace:set_token/2 erts: Fix seq_trace:print/2 for arbitrary labels erts: Fix bug in seq_trace:set_token(label,_)
2019-06-03Merge branch 'hasse/stdlib/chars_limit_bug/OTP-15847/ERL-957' into maint-21Erlang/OTP
* hasse/stdlib/chars_limit_bug/OTP-15847/ERL-957: stdlib: Fix a bug concerning io_lib option 'chars_limit'
2019-06-03Merge pull request #2246 from bjorng/bjorn/erl_interface/term-printing/OTP-15814Björn Gustavsson
Support printing of maps and funs in ei_print_term()
2019-05-31ssl: Fix broken return valueIngela Anderton Andin
2019-05-29ssl: Change check of DTLS record versionIngela Anderton Andin
Retransmissions mechanism for upd makes it possible for handshakes and possible alerts to have another record version then the negotiated one in the states certify and abbreviated without beeing invalid messages.