In multi-component mode (cluster), microservices can be launched separately, even with diversity on different nodes.In monolithic mode, All microservices are linked in an executable file, run in a process, and interact directly with each other.Threads (go routines) are used to parallelize operations in the code, which allow the resources of all CPU cores to be used without dividing them into separate processes.ĭendrite supports work in two modes: monolithic and multi-component (polylith). The load balancer is responsible for sending calls to microservices. About Dendriteĭendrite is ahead of Synapse in terms of performance, it requires much less memory to operate and can scale by load balancing across multiple nodes.ĭendrite architecture supports horizontal scaling and is based on the separation of controllers in the form of microservices, where each instance of a microservice has its own tables in the database. The new server aims to achieve high efficiency, reliability and scalability. Both official implementations are distributed under the Apache 2.0 license.Īs part of the Ruma project, a separate version of the Matrix server is being developed in the Rust language, which is distributed under the MIT license. Unlike the Synapse reference server written in Python, the Dendrite code is developed in Go. This new behaviour can be disabled with the federation_api.Dendrite is a communications server that is being developed by the Matrix team and it is positioned as an implementation of the second generation of Matrix server components.This should reduce the amount of time spent on TLS handshakes and often speed up requests to remote servers.Dendrite will now try to keep HTTP connections open to remote federated servers for a few minutes after a request and attempt to reuse those connections where possible.A bug has been fixed when updating push rules which could result in database is locked on SQLite.The client API will now return an M_UNRECOGNIZED error for unknown endpoints/methods, which should help with client error handling.A database index has been added to speed up finding room memberships in the sync API (contributed by PiotrKozimor).Room versions 8 and 9 will now correctly evaluate "knock" join rules and membership states.The deprecated "origin" field in events will now be correctly ignored in all cases.A state resolution bug has been fixed which should help to prevent unexpected state resets.A number of bugs in the device list updater have been fixed, which should help considerably with federated device list synchronisation and E2EE reliability.A new /_dendrite/admin/fulltext/reindex admin endpoint has been added for rebuilding the search index (although this may take some time).A new /_dendrite/admin/downloadState/ admin endpoint has been added for forcing a refresh of a remote user's device lists without having to modify the database by hand.A new auto_join_rooms configuration option has been added for automatically joining new users to a set of rooms.It is now possible to use hCaptcha instead of reCAPTCHA for protecting registration.A bug which could cause a panic when converting events into the ClientEvent format has been fixed.Presence updates are now only sent to other servers for which the user shares rooms.A false membership leave event should no longer be sent down /sync as a result of retiring an accepted invite (contributed by tak-hntlabs).The room summary membership counts in /sync should now be calculated properly in more cases. The prev_batch token returned by /sync is now calculated after applying history visibility, so that the pagination boundaries are correct.The deduplication of the "timeline" and "state" sections in /sync is now performed after applying history visibility, so state events should not be dropped unexpectedly.The "state" section of the /sync response is no longer limited, so state events should not be dropped unexpectedly.A number of thirdparty endpoints have been added, improving support for appservices.Dendrite will now use a native SQLite port when building with CGO_ENABLED=0.NOTE: Docker users may need to change the ownership of the Dendrite files (config, JetStream, logs, media and fulltext index path) to the dendrite user (UID 1337) to complete this upgrade.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |