Remove listmanager code
The code prevented scaling by imposing global spinlocks for the DCBs and SESSIONs. Removing this list means that a thread-local list must be taken into use to replace it.
This commit is contained in:
@ -48,7 +48,6 @@
|
||||
#include <maxscale/cdefs.h>
|
||||
#include <maxscale/spinlock.h>
|
||||
#include <maxscale/buffer.h>
|
||||
#include <maxscale/listmanager.h>
|
||||
#include <maxscale/gw_protocol.h>
|
||||
#include <maxscale/gw_authenticator.h>
|
||||
#include <maxscale/gw_ssl.h>
|
||||
@ -216,7 +215,6 @@ typedef enum
|
||||
*/
|
||||
typedef struct dcb
|
||||
{
|
||||
LIST_ENTRY_FIELDS
|
||||
skygw_chk_t dcb_chk_top;
|
||||
bool dcb_errhandle_called; /*< this can be called only once */
|
||||
bool dcb_is_zombie; /**< Whether the DCB is in the zombie list */
|
||||
@ -326,7 +324,6 @@ void dcb_global_init();
|
||||
|
||||
int dcb_write(DCB *, GWBUF *);
|
||||
DCB *dcb_accept(DCB *listener, GWPROTOCOL *protocol_funcs);
|
||||
bool dcb_pre_alloc(int number);
|
||||
DCB *dcb_alloc(dcb_role_t, struct servlistener *);
|
||||
void dcb_free(DCB *);
|
||||
void dcb_free_all_memory(DCB *dcb);
|
||||
|
@ -37,7 +37,6 @@
|
||||
#include <time.h>
|
||||
#include <maxscale/atomic.h>
|
||||
#include <maxscale/buffer.h>
|
||||
#include <maxscale/listmanager.h>
|
||||
#include <maxscale/spinlock.h>
|
||||
#include <maxscale/resultset.h>
|
||||
#include <maxscale/log_manager.h>
|
||||
@ -160,7 +159,6 @@ typedef enum
|
||||
*/
|
||||
typedef struct session
|
||||
{
|
||||
LIST_ENTRY_FIELDS
|
||||
skygw_chk_t ses_chk_top;
|
||||
SPINLOCK ses_lock;
|
||||
session_state_t state; /*< Current descriptor state */
|
||||
@ -205,7 +203,6 @@ typedef struct session
|
||||
(sess)->tail.session, (buf))
|
||||
|
||||
SESSION *session_alloc(struct service *, struct dcb *);
|
||||
bool session_pre_alloc(int number);
|
||||
SESSION *session_set_dummy(struct dcb *);
|
||||
bool session_free(SESSION *);
|
||||
int session_isvalid(SESSION *);
|
||||
@ -220,7 +217,6 @@ void dprintSession(struct dcb *, SESSION *);
|
||||
void dListSessions(struct dcb *);
|
||||
char *session_state(session_state_t);
|
||||
bool session_link_dcb(SESSION *, struct dcb *);
|
||||
SESSION* get_session_by_router_ses(void* rses);
|
||||
void session_enable_log_priority(SESSION* ses, int priority);
|
||||
void session_disable_log_priority(SESSION* ses, int priority);
|
||||
RESULTSET *sessionGetList(SESSIONLISTFILTER);
|
||||
|
Reference in New Issue
Block a user