Hi all,
GCC 6.1 was relased late last month, and it was failing to build latest
MonetDB, with the below 3 errors:
stream.c:2116:24: error: logical ‘or’ of equal expressions
[-Werror=logical-op]
(errno == EAGAIN || errno == EWOULDBLOCK) && /* it was!
*/
^~
stream.c:2142:24: error: logical ‘or’ of equal expressions
[-Werror=logical-op]
(errno == EAGAIN || errno ==
EWOULDBLOCK)
^~
mal_module.c: In function ‘getHelp’:
mal_module.c:455:3: error: this ‘for’ clause does not guard...
[-Werror=misleading-indentation]
for(s= m->subscope[j]; s; s= s->peer)
^~~
mal_module.c:513:4: note: ...this statement, but the latter is misleadingly
indented as if it is guarded by the ‘for’
m= m->sibling;
^
The first two appear to be because EAGAIN, EWOULDBLOCK have the same value
on my machine (x86_64, Fedora 23 64bit). I don't know in what situation
they would be different from each other, so I'm removing the check for
EWOULDBLOCK and checking only for EAGAIN, as suggested by some on the
Internet.
The third error is due to bad indentation. If we reduce indentation of
mal_module.c:513 by two levels, that solves it.
It works for me with these changes, could someone confirm my solution to
first two errors won't cause regressions, of suggest alternative solutions?
Thanks,
Sahas
Hi Guys,
I've just noticed the cache functions in the mapi code what do these
actually do and also look interesting ?
mapi_export MapiMsg mapi_cache_limit(Mapi mid, int limit);
mapi_export MapiMsg mapi_cache_shuffle(MapiHdl hdl, int percentage);
mapi_export MapiMsg mapi_cache_freeup(MapiHdl hdl, int percentage);
Regards,
Brian Hood
Hi,
We have been running tests on Memory management with the latest version of
MonetDB on a CentOS installation. The machine has 1TB hard disk and 128 GB
RAM space. The swap memory configured is 2GB.
We were aware that MonetDB completely relies on the OS for Memory
Management and is prone to OOM Killer crash and hence we wanted to simulate
the crash. Hence we ran hundreds of threads executing various queries and
noticed the following pattern of memory handling.
1. Initially, RAM was filled.
2. Upon RAM overflow, swap memory (2 GB) was used.
3. Upon swap overflow, the swap memory got extended and the 1TB memory
that was free on the machine was used completely.
4. The OOM killer got invoked only when this 1TB memory got filled.
5. On consecutive executions, swap memory was started to be used even
when RAM had 70GB of memory unused and free (not even used for cache
files).
6. The /tmp partition was never used. Memory got overfilled only in the
current partition.
These observations led to the following questions about the memory
management with CentOS.
1. Does MonetDB has no influence on the above behaviour and is it that
only the OS is responsible for this?
2. Will the swap memory be expanded from the committed size by the OS if
swap is running out of memory? In our case it expanded from 2GB to 1 TB.
Our OS setting of overcommit is 0 (sysctl vm.overcommit_memory = 0)
3. When will the OOM Killer be invoked usually? Upon Swap fill or upon
Hard disk space full?
4. Why was memory swapped even when there is 70GB free space in RAM? We
tried reducing the swappiness to 10 (sysctl vm.swappiness=10), even then
memory was swapped with 70 GB free space in RAM.
5. Does the OS writes intermediate results to /tmp directory? Or is it
that MonetDB is bypassing this?
6. Is there any other OS configurations that we need to cross check
regarding memory management?
Any help much appreciated. Thanks in advance.
Regards,
Vijay.
Sjoerd,
there is a plan for imprints to become a keyword in SQL such that one
may do the following:
CREATE IMPRINTS INDEX idx_id ON table_id(column_id)
just as ORDERED index.
This is needed in many cases where for example Romulo wants to be able
to create and drop imprints at will.
On Wed, May 4, 2016 at 11:25 AM, Sjoerd Mullender
<commits+sjoerd=acm.org(a)monetdb.org> wrote:
> Changeset: 390e25b31196 for MonetDB
> URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=390e25b31196
> Modified Files:
> sql/server/sql_parser.y
> Branch: default
> Log Message:
>
> No need for IMPRINTS being a full-blown keyword.
>
>
> diffs (11 lines):
>
> diff --git a/sql/server/sql_parser.y b/sql/server/sql_parser.y
> --- a/sql/server/sql_parser.y
> +++ b/sql/server/sql_parser.y
> @@ -5089,6 +5089,7 @@ non_reserved_word:
> | TIME { $$ = sa_strdup(SA, "time"); }
> | TIMESTAMP { $$ = sa_strdup(SA, "timestamp"); }
> | INTERVAL { $$ = sa_strdup(SA, "interval"); }
> +| IMPRINTS { $$ = sa_strdup(SA, "imprints"); }
>
> | PREPARE { $$ = sa_strdup(SA, "prepare"); }
> | EXECUTE { $$ = sa_strdup(SA, "execute"); }
> _______________________________________________
> checkin-list mailing list
> checkin-list(a)monetdb.org
> https://www.monetdb.org/mailman/listinfo/checkin-list