Avi Kivity
83430355c2
Merge branch 'master' of github.com:cloudius-systems/seastar into db
...
LICENSE moved to LICENSE.seastar, since (at least for now) urchin is
not open source.
Conflicts:
apps/seastar/main.cc
2015-02-22 16:23:59 +02:00
Avi Kivity
7f8d88371a
Add LICENSE, NOTICE, and copyright headers to all source files.
...
The two files imported from the OSv project retain their original licenses.
2015-02-19 16:52:34 +02:00
Avi Kivity
7c5755e76c
Merge branch 'master' of github.com:cloudius-systems/seastar into db
2015-02-18 20:01:12 +02:00
Gleb Natapov
f7cade107b
seawreck: abort on a connection error
2015-02-18 16:52:56 +02:00
Avi Kivity
8a94845e78
Merge branch 'master' of github.com:cloudius-systems/seastar into db
2015-02-17 12:40:20 +02:00
Gleb Natapov
9ee05fdddc
seawreck: exit after test is done
2015-02-16 09:54:08 +02:00
Avi Kivity
39596a0334
Merge branch 'master' of github.com:cloudius-systems/seastar into db
...
Conflicts:
configure.py
2015-02-15 09:58:29 +02:00
Avi Kivity
a258f290b5
seawreck: fix include
2015-02-12 14:43:12 +02:00
Avi Kivity
ebc2ebbf12
Upgrade http_client to an application, not a test
...
and rename it to 'seawreck', after wrk.
2015-02-12 14:21:44 +02:00
Raphael S. Carvalho
20151b7b2a
memcached: capture port by value
...
Signed-off-by: Raphael S. Carvalho <raphaelsc@cloudius-systems.com >
2015-02-12 10:00:37 +02:00
Raphael S. Carvalho
c725014614
memcached: add option to listen on a different port
...
useful when testing multiple memcached servers.
Signed-off-by: Raphael S. Carvalho <raphaelsc@cloudius-systems.com >
2015-02-10 19:27:43 +02:00
Avi Kivity
ee58c77008
httpd: fix unbounded memory use in eerror handling
...
httpd uses recursion for its read loop:
future<> read() {
_read_buf.consume().then([] {
...
if more work:
return read();
});
}
However, after error handling was added, it looks like this:
future<> read() {
_read_buf.consume().then([] {
...
if more work:
return read();
}).rescue(...);
}
The problem is that rescue() is called for every iteration of the loop,
instead of for the loop in its entirety. This means that a rescue
continuation is allocated for every processed request, but they will only
be called after the entire loop terminates. This results in tons of
allocated memory.
Fix by moving error handling to the end of the loop (and incidentally using
do_until() instead of recursion).
2015-02-10 12:00:32 +02:00
Tomasz Grabiec
911c514a70
Merge branch 'master' of github.com:cloudius-systems/seastar
2015-02-09 10:11:15 +01:00
Avi Kivity
4b28eb638f
Merge branch 'asias/tcp_v1' of github.com:cloudius-systems/seastar-dev
...
tcp queue from Asias: "Contains both fixes and improvemnts".
2015-02-07 20:20:57 +02:00
Raphael S. Carvalho
2195f77879
memcached: stats: rename evicted to evictions
...
Change for compliance with stock memcached.
Signed-off-by: Raphael S. Carvalho <raphaelsc@cloudius-systems.com >
2015-02-07 19:57:19 +02:00
Asias He
2289b03354
httpd: Fix RST handling
...
I found wrk sometimes sends RST instead a FIN to close a connection. In
this case, we will reset the connection and go to CLOSED state. However
httpd will not delete this, so we will have leaked connections in CLOSED
state.
Fix by handling the exception and sending an empty response as we do in
EOF case. Here we do not pass the exception to upper layer again,
otherwise httpd will be very noise.
2015-02-05 16:57:58 +08:00
Tomasz Grabiec
5049ed8ae6
Merge branch 'master' of github.com:cloudius-systems/seastar
2015-01-30 09:34:58 +01:00
Avi Kivity
24d5c319a3
httpd: return Server and Date headers
...
Required by some benchmarks.
2015-01-27 18:57:59 +02:00
Avi Kivity
d5540bf3da
Merge branch 'master' into db
2015-01-27 15:09:31 +02:00
Gleb Natapov
7a92efe8d1
core: add local engine accessor function
...
Do not use thread local engine variable directly, but use accessor
instead.
2015-01-27 14:46:49 +02:00
Avi Kivity
0f14fdab68
Merge branch 'master' of github.com:cloudius-systems/seastar into db
2015-01-20 13:03:58 +02:00
Gleb Natapov
57bcec15c7
memcached: flush cache during destruction.
...
Also add assert to item's cancel() function. It cannot be called after
cache is flushed.
Reviewed-by: Tomasz Grabiec <tgrabiec@gmail.com >
2015-01-15 18:25:30 +02:00
Avi Kivity
cf8161b532
Merge branch 'master' of github.com:cloudius-systems/seastar into db
2015-01-14 17:02:12 +02:00
Takuya ASADA
e1552ad3b6
core: rename smp.hh to distributed.hh
...
Signed-off-by: Takuya ASADA <syuu@cloudius-systems.com >
2015-01-14 11:16:09 +02:00
Avi Kivity
b1f67fa2af
Merge branch 'master' of github.com:cloudius-systems/seastar into db
2015-01-05 11:43:56 +02:00
Avi Kivity
f2e25b8442
Merge branch 'shared_ptr'
...
Split shared_ptr into a traditional polymorphic shared_ptr implementation,
and a lighter-weight, non polymorphic lw_shared_ptr.
2015-01-05 11:29:35 +02:00
Avi Kivity
87f63f7b90
shared_ptr: rename to lw_shared_ptr (for light-weight)
...
The current shared_ptr implementation is efficient, but does not support
polymorphic types.
Rename it in order to make room for a polymorphic shared_ptr.
2015-01-04 22:38:49 +02:00
Avi Kivity
db256216ec
Merge branch 'master' into db
...
Merge latest seastar fixes into db.
2014-12-28 13:39:15 +02:00
Raphael S. Carvalho
48019c2df2
memcache: fix cache::item_footprint()
...
size of the sstring _ascii_prefix should also be added when computing
item footprint. Without this change, reclaimer would end up evicting
more than needed.
Signed-off-by: Raphael S. Carvalho <raphaelsc@cloudius-systems.com >
2014-12-28 10:24:09 +02:00
Gleb Natapov
466acedcb2
timer: cancel all timers during reactor destruction
...
If a timer is not canceled it will try to cancel itself during
destruction which may happen after engine is already destroyed.
2014-12-25 09:14:42 +02:00
Avi Kivity
094329a95e
Move apps/seastar/* to top level
2014-12-22 16:15:37 +02:00
Avi Kivity
619da6da1d
thrift: wire up thrift connection handler and thrift server
...
With this, a Cassandra client can connect (only to receive an
unimplemented exception immediately).
2014-12-22 13:38:42 +02:00
Avi Kivity
47a4084b81
thrift: basic server
...
As thrift does not support pipelining, the server is very simple. It
implements the thrift framed transport, where each message is preceded
by a four-byte message size header.
2014-12-22 10:33:45 +02:00
Avi Kivity
fc3188913f
thrift: throw exceptions in unimplemented services
...
Where possible, throw an exception instead of returning an uninitialized
value.
Where not possible (if the method does not throw), return a "dummy" string.
2014-12-22 10:33:45 +02:00
Avi Kivity
52c8866db1
thrift: add skeleton handler
...
Generated by thrift and massaged to compile.
2014-12-22 10:33:45 +02:00
Asias He
0242d402b7
timer: Drop Clock template parameter in time_set
2014-12-15 19:39:33 +08:00
Asias He
62fff15e54
timer: Make timer a template
2014-12-15 19:39:33 +08:00
Tomasz Grabiec
8bfca6f740
memcached: convert 'get' to use zero-copy send.
2014-12-04 13:51:35 +01:00
Tomasz Grabiec
c4335c49f6
core: convert output APIs to work on packets
...
This way zero-copy supporting code can put data directly to packet
object and pass it through all layers efficiently.
2014-12-04 13:51:26 +01:00
Tomasz Grabiec
b6cb2b7477
memcached: add missing return
2014-12-04 13:37:35 +01:00
Tomasz Grabiec
e4583699fd
memcached: make sure datagrams are below the size limit
2014-12-04 13:37:35 +01:00
Avi Kivity
6b5973af70
app-template: don't alias boost::program_options as bpo in a header file
...
We only have one global namespace, let's work together to keep it free
of pollution.
2014-12-01 17:56:34 +02:00
Raphael S. Carvalho
0653a9f3f7
flashcache: fix _total_mem_disk accounting when erasing mem-disk items
...
Signed-off-by: Raphael S. Carvalho <raphaelsc@cloudius-systems.com >
2014-12-01 10:30:23 -02:00
Raphael S. Carvalho
9de9f34423
flashcache: fix erase on disk-based items
...
Fixed by adding missing break statement.
Signed-off-by: Raphael S. Carvalho <raphaelsc@cloudius-systems.com >
2014-12-01 10:28:42 -02:00
Avi Kivity
9c7fc9d5d1
memcache: massage init capture to satisfy clang
2014-11-26 14:56:18 +02:00
Avi Kivity
05e8ee5e0c
memcache: remove unneeded use of variable length array
...
Noticed by clang.
2014-11-26 14:55:30 +02:00
Avi Kivity
239f4a3bf5
memcache: remove unused subdevice::_length
...
Noticed by clang.
2014-11-26 14:55:01 +02:00
Raphael S. Carvalho
35f37a4235
memcache: generate flashcache
...
flashcached.cc and memcached.cc files were created to generate
flashcached and memcached respectively through a template parameter.
2014-11-25 09:10:33 -02:00
Raphael S. Carvalho
300b310a27
memcache: move ./memcached.cc to ./memcache.cc
...
Actual purpose is explained by the subsequent commit.
2014-11-25 09:10:33 -02:00
Raphael S. Carvalho
087038bd47
memcache: flashcache integration
...
flashcached isn't generated by the build process yet, please check
subsequent commits.
2014-11-25 09:05:13 -02:00