Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
T
trackrdrd
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
uplex-varnish
trackrdrd
Commits
6de8be9f
Commit
6de8be9f
authored
May 23, 2014
by
Geoff Simmons
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
trackrdrd: reader thread reads and stores shard keys
parent
9d137a61
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
44 additions
and
5 deletions
+44
-5
child.c
trackrdrd/src/child.c
+38
-5
monitor.c
trackrdrd/src/monitor.c
+4
-0
trackrdrd.h
trackrdrd/src/trackrdrd.h
+2
-0
No files found.
trackrdrd/src/child.c
View file @
6de8be9f
...
@@ -644,6 +644,27 @@ append(dataentry *entry, enum VSL_tag_e tag, unsigned xid, char *data,
...
@@ -644,6 +644,27 @@ append(dataentry *entry, enum VSL_tag_e tag, unsigned xid, char *data,
return
;
return
;
}
}
static
inline
void
addkey
(
dataentry
*
entry
,
enum
VSL_tag_e
tag
,
unsigned
xid
,
char
*
key
,
int
keylen
)
{
CHECK_OBJ_NOTNULL
(
entry
,
DATA_MAGIC
);
if
(
keylen
>
config
.
maxkeylen
)
{
LOG_Log
(
LOG_ALERT
,
"%s: Key too long, XID=%d, length=%d, "
"DISCARDING key=[%.*s]"
,
VSL_tags
[
tag
],
xid
,
keylen
,
keylen
,
key
);
dtbl
.
w_stats
.
key_overflows
++
;
return
;
}
memcpy
(
entry
->
key
,
key
,
keylen
);
entry
->
keylen
=
keylen
;
if
(
keylen
>
dtbl
.
w_stats
.
key_hi
)
dtbl
.
w_stats
.
key_hi
=
keylen
;
return
;
}
/*
/*
* rules for reading VSL:
* rules for reading VSL:
*
*
...
@@ -735,9 +756,15 @@ OSL_Track(void *priv, enum VSL_tag_e tag, unsigned fd, unsigned len,
...
@@ -735,9 +756,15 @@ OSL_Track(void *priv, enum VSL_tag_e tag, unsigned fd, unsigned len,
err
=
Parse_VCL_Log
(
&
ptr
[
TRACKLOG_PREFIX_LEN
],
len
-
TRACKLOG_PREFIX_LEN
,
err
=
Parse_VCL_Log
(
&
ptr
[
TRACKLOG_PREFIX_LEN
],
len
-
TRACKLOG_PREFIX_LEN
,
&
xid
,
&
data
,
&
datalen
,
&
data_type
);
&
xid
,
&
data
,
&
datalen
,
&
data_type
);
AZ
(
err
);
if
(
err
!=
0
)
{
LOG_Log
(
LOG_DEBUG
,
"%s: XID=%u, data=[%.*s]"
,
VSL_tags
[
tag
],
LOG_Log
(
LOG_ERR
,
xid
,
datalen
,
data
);
"Cannot parse VCL_Log entry, DISCARDING [%.*s]: %s"
,
datalen
,
data
,
strerror
(
err
));
htbl
.
drop_vcl_log
++
;
}
LOG_Log
(
LOG_DEBUG
,
"%s: XID=%u, %s=[%.*s]"
,
VSL_tags
[
tag
],
xid
,
data_type
==
VCL_LOG_DATA
?
"data"
:
"key"
,
datalen
,
data
);
he
=
hash_find
(
xid
);
he
=
hash_find
(
xid
);
if
(
he
==
NULL
)
{
if
(
he
==
NULL
)
{
...
@@ -751,8 +778,14 @@ OSL_Track(void *priv, enum VSL_tag_e tag, unsigned fd, unsigned len,
...
@@ -751,8 +778,14 @@ OSL_Track(void *priv, enum VSL_tag_e tag, unsigned fd, unsigned len,
check_entry
(
he
,
xid
,
fd
);
check_entry
(
he
,
xid
,
fd
);
de
=
he
->
de
;
de
=
he
->
de
;
if
(
data_type
==
VCL_LOG_DATA
)
{
append
(
de
,
tag
,
xid
,
data
,
datalen
);
append
(
de
,
tag
,
xid
,
data
,
datalen
);
de
->
hasdata
=
true
;
de
->
hasdata
=
true
;
}
else
addkey
(
de
,
tag
,
xid
,
data
,
datalen
);
break
;
break
;
case
SLT_ReqEnd
:
case
SLT_ReqEnd
:
...
...
trackrdrd/src/monitor.c
View file @
6de8be9f
...
@@ -56,7 +56,9 @@ log_output(void)
...
@@ -56,7 +56,9 @@ log_output(void)
"submitted=%u "
"submitted=%u "
"wait_room=%u "
"wait_room=%u "
"data_hi=%u "
"data_hi=%u "
"key_hi=%u "
"data_overflows=%u "
"data_overflows=%u "
"key_overflows=%u "
"done=%u "
"done=%u "
"open=%u "
"open=%u "
"load=%.2f "
"load=%.2f "
...
@@ -72,7 +74,9 @@ log_output(void)
...
@@ -72,7 +74,9 @@ log_output(void)
dtbl
.
w_stats
.
submitted
,
dtbl
.
w_stats
.
submitted
,
dtbl
.
w_stats
.
wait_room
,
dtbl
.
w_stats
.
wait_room
,
dtbl
.
w_stats
.
data_hi
,
dtbl
.
w_stats
.
data_hi
,
dtbl
.
w_stats
.
key_hi
,
dtbl
.
w_stats
.
data_overflows
,
dtbl
.
w_stats
.
data_overflows
,
dtbl
.
w_stats
.
key_overflows
,
dtbl
.
r_stats
.
done
,
dtbl
.
r_stats
.
done
,
dtbl
.
r_stats
.
open
,
dtbl
.
r_stats
.
open
,
(
100
.
0
*
(
1
.
0
*
dtbl
.
r_stats
.
done
+
1
.
0
*
dtbl
.
r_stats
.
open
)
/
dtbl
.
len
),
(
100
.
0
*
(
1
.
0
*
dtbl
.
r_stats
.
done
+
1
.
0
*
dtbl
.
r_stats
.
open
)
/
dtbl
.
len
),
...
...
trackrdrd/src/trackrdrd.h
View file @
6de8be9f
...
@@ -148,7 +148,9 @@ struct data_writer_stats_s {
...
@@ -148,7 +148,9 @@ struct data_writer_stats_s {
unsigned
submitted
;
/* Submitted to worker threads */
unsigned
submitted
;
/* Submitted to worker threads */
unsigned
wait_room
;
/* waits for space in dtbl */
unsigned
wait_room
;
/* waits for space in dtbl */
unsigned
data_hi
;
/* max string length of entry->data */
unsigned
data_hi
;
/* max string length of entry->data */
unsigned
key_hi
;
/* max string length of entry->key */
unsigned
data_overflows
;
/* config.maxdata exceeded */
unsigned
data_overflows
;
/* config.maxdata exceeded */
unsigned
key_overflows
;
/* config.maxkeylen exceeded */
unsigned
abandoned
;
/* Worker threads abandoned */
unsigned
abandoned
;
/* Worker threads abandoned */
};
};
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment