Commit Graph

519 Commits

Author SHA1 Message Date
d1ba050bfd Make housekeeper const correct. 2016-02-12 16:16:32 +02:00
8a814fbec4 Make log_manager self-contained.
log_manager.h now includes all necessary header files.
2016-02-10 15:32:48 +02:00
38db155fef Make mlist a separate component.
Mlist is now made available as a separate component instead of
being a part of skygw_utils.
2016-02-09 17:31:15 +02:00
2692d1081c Add slist.
Slist removed from skygw_utils and added as a separate component.
Nobody seems to be using it, so it could also simply be removed.
Left in place for the time being.
2016-02-09 15:30:27 +02:00
adbc2074de Remove log_manager as a separate component.
Log_manager files are now in server/core and the log manager test
files in server/core/test. The directory log_manager is removed.
2016-02-09 11:17:31 +02:00
c506559452 MXS-400: Servers that are both master and slave now work with readwritesplit
The check for the server status explicitly denied servers that are both master
and slave from being chosed as candidates for queries. This is only a problem
when a user manually sets the server states to both master and slave.

The monitors resolve the replication topology based on the servers that
the monitors see and this always results in at least one slave server.
2016-02-08 19:44:33 +02:00
4a4f22c9a7 Make query_classifier part of core.
The query classifier interface is now built as an integral
part of MaxScale core.
2016-02-08 11:44:07 +02:00
2bbe1b068a Allow the query classifier to be specified in maxscale.cnf 2016-02-01 20:44:36 +02:00
72f02164fc Reformat maxconfig.h 2016-02-01 19:22:07 +02:00
0d78b3f8cd Add extern "C" to gwdirs.h.
Fix line-length as well.
2016-02-01 15:25:08 +02:00
d054f5d7bd Cleanup of dbusers.[h|c]
- All functions used only in c-file declared as static.
- All module functions declared.
- A few camelClase names changed to underscore.
2016-01-29 10:54:41 +02:00
5ed58df9f6 Make hashtable const correct.
Hashtable need not modify the filename when loading or saving
the hashtable; consequently the filename can be passed as const.
2016-01-29 10:53:01 +02:00
743a1b1037 Removed unnecessary calls to atomic_add
The polling statistics collection used atomic_add to increment values. This
is not an optimal way to update statistical values. Moved to per thread
values which are summed up when they are read.

Moved the functions used to gather polling statistics to their own file and
created a specific data type for statistics.
2016-01-28 09:55:26 +02:00
0111df3767 Cleaned up the use of thread types
The THREAD type was not used everywhere and pthread_t was used instead.
The thread creation function also returned the address of a stack allocated
value which isn't guaranteed to be usable.
2016-01-27 09:07:55 +02:00
da1a717dd8 Add extern "C" to modules.h. 2016-01-26 14:50:41 +02:00
9a8838474c Add query classifier plugin.
Basic infrastructure added for being able to load query classifier
plugins using the same mechanism other plugins are loaded with.
2016-01-26 10:40:43 +02:00
80cee351c4 Add platform.h
Platform.h is intended to contain definitions and workarounds
for concepts that depend upon the used compiler and/or platform.

Currently it ensures that /thread_local/ is available irrespective
of whether the source is compiled in pre- or post C11 or C++11 mode.

This file should be included first by all MaxScale headers.
2016-01-25 11:20:16 +02:00
872d02db3e Finalized configuration processing cleanup
All parts of the configuration processing are now in their own functions.
This allows new objects to be created after MaxScale has started.
2016-01-20 09:25:03 +02:00
c6dfcb66f5 Cleaned up service configuration processing
Moved the allocation and configuration of services into their own function.
Moved SSL parameter validation into a separate function.
2016-01-19 14:23:44 +02:00
c2310327fc Fixed idle session processing
The current implementation of idle connection timeouts is not safe. The sessions
are handled in a way which is not thread-safe and the checking is done from
a non-polling thread.

With this change, the checks for the session timeouts are done in one of the
polling threads in a thread-safe manner only if at least one service has enabled
the timing out of idle client connections.
2016-01-19 10:53:55 +02:00
5515c71988 Reapply MXS-504 changes subsequent to optimisation changes. Merge SSL processing into non-SSL processing so far as possible, correct usage of OpenSSL, simplify where possible. 2016-01-13 10:08:37 +00:00
fb5fdb17db Switch bitmask_clear to be locking and offer bitmask_clear_without_spinlock for non-locking version, in response to review comments. Revert poll.c to use bitmask_clear (with locking) and amend dcb.c to use the non-locking version and to take advantage of the return of an indication of whether the whole bitmask is then clearn. 2016-01-08 13:47:34 +00:00
aa79e61aac Various optimisations of bitmask processing. External change is that bitmask_clear() does not apply a spinlock, so must be called with exclusive access to the bitmask. This affects the call in shutdown processing in poll management. The call from DCB processing is safe because zombie processing has exclusive access to DCBs. 2016-01-08 13:47:34 +00:00
78b363aec7 Enhance buffer handling by changing gwbuf_free to free the whole list of buffers (although it could contain only one buffer). Add gwbuf_count to give number of buffers in a buffer list (for convenience in debugging). Add gwbuf_alloc_and_load to simplify putting data into a new buffer. 2016-01-08 13:47:34 +00:00
4ef89d213b MXS-463: Filepaths are now properly formatted for printing
The various global directory setter functions now process the input they receive
and remove redundant and trailing forward slashes from the directory paths.
2016-01-04 18:40:00 +02:00
8d969aadd1 Changed default number of threads and added auto value.
Changed default number of threads to 1 instead of autoconfigured value and
added a new `auto` variable which enables autoconfiguration of thread count.

The number of threads used when autoconfiguratio fails was changed from 4 to 1.

The default value of using N threads where N is the number of CPU cores was
not optimal as the possibility of rescheduling was higher the more utility
threads there were. Due to this, N-1 is deemed to be the better autoconfigured
value for thread count.
2015-12-15 15:08:43 +02:00
d054cb1595 Correct logic errors in bitmask_set and extend initial/increment size to reduce likelihood of any risk of realloc failure. 2015-12-01 15:16:12 +00:00
74bb291961 Reindent server/core/monitor.c 2015-12-01 09:40:07 +02:00
fbecf128dd Reindent server/core/users.c 2015-12-01 09:29:52 +02:00
8bbc3e8086 Reindent server/core/thread.c 2015-12-01 09:29:03 +02:00
a95be21266 Reindent of server/core/spinlock.c 2015-12-01 09:28:19 +02:00
15df33a93f Reindent server/core/session.c 2015-12-01 09:26:26 +02:00
8601068dc2 Reindent server/core/service.c 2015-11-30 21:25:10 +02:00
ed06d4f14c Reindent server/core/server.c 2015-11-30 19:47:29 +02:00
0aa38cad4c Reindented server/core/resultset.c 2015-11-30 18:58:43 +02:00
6c401b9085 Reindent server/core/poll.c 2015-11-30 18:57:19 +02:00
c0615408aa Reindented server/core/modutil.c 2015-11-30 18:53:42 +02:00
17eb80072f Reindent server/core/secrets.c 2015-11-30 18:48:14 +02:00
233f50f3e6 Reindent server/core/random_jkiss.c 2015-11-30 16:04:18 +02:00
72dd159f98 Reindented server/core/memlog.c 2015-11-30 15:18:51 +02:00
3189a47fc5 Reindented server/core/housekeeper.c 2015-11-30 15:16:44 +02:00
486f724dc1 Reindented server/core/hint.c 2015-11-30 14:10:15 +02:00
255a5b53c1 Reindented server/core/hashtable.c 2015-11-30 13:54:46 +02:00
26d1cf0c1f Reindented server/core/gw_utils.c 2015-11-30 13:53:52 +02:00
9482ccb8c6 Reindented server/core/gwbitmask.c 2015-11-30 13:41:32 +02:00
20c4a0aa67 Reindented server/core/filter.c 2015-11-30 13:40:11 +02:00
bd94d8967a Reindented server/core/externcmd.[c|h]
Reindented server/core/externcmd.[c|h] and added copyright
message.
2015-11-30 12:42:49 +02:00
2afe60dd0e Reindent server/core/dcb.c 2015-11-30 12:42:13 +02:00
17760bb3e6 Reindent server/core/buffer.c 2015-11-30 12:38:53 +02:00
f6e8662933 Reindent server/core/adminusers.c 2015-11-30 10:56:38 +02:00