]> git.ipfire.org Git - thirdparty/asterisk.git/commit
Alternate Channel Storage Backends
authorGeorge Joseph <gjoseph@sangoma.com>
Tue, 31 Dec 2024 18:27:02 +0000 (11:27 -0700)
committergithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Wed, 7 May 2025 16:48:16 +0000 (16:48 +0000)
commitf75dc57006238b75fda860ba0ac1b09a0fdcc620
tree7b3752db9612737fa7914c7a149a1b82b7ec659e
parent76ab68b7e915f6ca2803c8e215ffce72250084a8
Alternate Channel Storage Backends

Full details: http://s.asterisk.net/dc679ec3

The previous proof-of-concept showed that the cpp_map_name_id alternate
storage backed performed better than all the others so this final PR
adds only that option.  You still need to enable it in menuselect under
the "Alternate Channel Storage Backends" category.

To select which one is used at runtime, set the "channel_storage_backend"
option in asterisk.conf to one of the values described in
asterisk.conf.sample.  The default remains "ao2_legacy".

UpgradeNote: With this release, you can now select an alternate channel
storage backend based on C++ Maps.  Using the new backend may increase
performance and reduce the chances of deadlocks on heavily loaded systems.
For more information, see http://s.asterisk.net/dc679ec3
16 files changed:
Makefile
configs/samples/asterisk.conf.sample
include/asterisk/channel.h
include/asterisk/channel_internal.h
include/asterisk/options.h
main/Makefile
main/asterisk.c
main/channel.c
main/channel_internal_api.c
main/channel_private.h [new file with mode: 0644]
main/channelstorage.c [new file with mode: 0644]
main/channelstorage.h [new file with mode: 0644]
main/channelstorage_ao2_legacy.c [new file with mode: 0644]
main/channelstorage_cpp_map_name_id.cc [new file with mode: 0644]
main/channelstorage_makeopts.xml [new file with mode: 0644]
main/options.c