hydro-project / anna Goto Github PK
View Code? Open in Web Editor NEWA low-latency, cloud-native KVS
License: Apache License 2.0
A low-latency, cloud-native KVS
License: Apache License 2.0
I wanted to test out a local build of anna following the steps in docs/building-anna.md
, but hit an immediate issue on compiling anna-cli:
anna % ./scripts/build.sh
...
[ 56%] Building CXX object client/cpp/CMakeFiles/anna-cli.dir/cli.cpp.o
/Users/chris.heller/hydro-project/anna/client/cpp/cli.cpp:28:8: error: no member named 'cout' in namespace 'std'
std::cout << "{ ";
~~~~~^
/Users/chris.heller/hydro-project/anna/client/cpp/cli.cpp:30:10: error: no member named 'cout' in namespace 'std'
std::cout << val << " ";
~~~~~^
/Users/chris.heller/hydro-project/anna/client/cpp/cli.cpp:33:8: error: no member named 'cout' in namespace 'std'
std::cout << "}" << std::endl;
~~~~~^
/Users/chris.heller/hydro-project/anna/client/cpp/cli.cpp:53:12: error: no member named 'cout' in namespace 'std'
std::cout << "Error: received more than one response" << std::endl;
~~~~~^
/Users/chris.heller/hydro-project/anna/client/cpp/cli.cpp:60:10: error: no member named 'cout' in namespace 'std'
std::cout << lww_lattice.reveal().value << std::endl;
~~~~~^
/Users/chris.heller/hydro-project/anna/client/cpp/cli.cpp:71:12: error: no member named 'cout' in namespace 'std'
std::cout << "Error: received more than one response" << std::endl;
~~~~~^
/Users/chris.heller/hydro-project/anna/client/cpp/cli.cpp:81:12: error: no member named 'cout' in namespace 'std'
std::cout << "{" << pair.first << " : "
~~~~~^
/Users/chris.heller/hydro-project/anna/client/cpp/cli.cpp:86:12: error: no member named 'cout' in namespace 'std'
std::cout << dep_key_vc_pair.first << " : ";
~~~~~^
/Users/chris.heller/hydro-project/anna/client/cpp/cli.cpp:88:14: error: no member named 'cout' in namespace 'std'
std::cout << "{" << vc_pair.first << " : "
~~~~~^
/Users/chris.heller/hydro-project/anna/client/cpp/cli.cpp:94:10: error: no member named 'cout' in namespace 'std'
std::cout << *(mkcl.reveal().value.reveal().begin()) << std::endl;
~~~~~^
/Users/chris.heller/hydro-project/anna/client/cpp/cli.cpp:109:12: error: no member named 'cout' in namespace 'std'
std::cout << "Invalid response: ID did not match request ID!"
~~~~~^
/Users/chris.heller/hydro-project/anna/client/cpp/cli.cpp:113:12: error: no member named 'cout' in namespace 'std'
std::cout << "Success!" << std::endl;
~~~~~^
/Users/chris.heller/hydro-project/anna/client/cpp/cli.cpp:115:12: error: no member named 'cout' in namespace 'std'
std::cout << "Failure!" << std::endl;
~~~~~^
/Users/chris.heller/hydro-project/anna/client/cpp/cli.cpp:145:12: error: no member named 'cout' in namespace 'std'
std::cout << "Invalid response: ID did not match request ID!"
~~~~~^
/Users/chris.heller/hydro-project/anna/client/cpp/cli.cpp:149:12: error: no member named 'cout' in namespace 'std'
std::cout << "Success!" << std::endl;
~~~~~^
/Users/chris.heller/hydro-project/anna/client/cpp/cli.cpp:151:12: error: no member named 'cout' in namespace 'std'
std::cout << "Failure!" << std::endl;
~~~~~^
/Users/chris.heller/hydro-project/anna/client/cpp/cli.cpp:170:12: error: no member named 'cout' in namespace 'std'
std::cout << "Invalid response: ID did not match request ID!"
~~~~~^
/Users/chris.heller/hydro-project/anna/client/cpp/cli.cpp:174:12: error: no member named 'cout' in namespace 'std'
std::cout << "Success!" << std::endl;
~~~~~^
/Users/chris.heller/hydro-project/anna/client/cpp/cli.cpp:176:12: error: no member named 'cout' in namespace 'std'
std::cout << "Failure!" << std::endl;
~~~~~^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
make[2]: *** [client/cpp/CMakeFiles/anna-cli.dir/cli.cpp.o] Error 1
make[1]: *** [client/cpp/CMakeFiles/anna-cli.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 57%] Linking CXX static library libanna-hash-ring.a
[ 57%] Built target anna-hash-ring
make: *** [all] Error 2
This is with the following git checkout:
anna % git rev-parse --short HEAD
53956c9
Happy to provide any other info that might help resolve this. Possibly I need to just run build.sh with a non-default set of options, but unsure how to decide what options to use.
$ scripts/run-tests.sh
Starting local server...
Running tests...
Output did not match expected output (tests/simple/expected.out). Observed output was:
10c10 < { 2 1 4 3 } --- > { 4 3 2 1 }
Stopping local server...
Running tests...
Test project /external/git/github/hydro-project/anna/build
Start 1: LatticeTest
1/3 Test #1: LatticeTest ...................... Passed 0.00 sec
Start 2: ServerTests
2/3 Test #2: ServerTests ......................***Failed 0.04 sec
Start 3: RouteTests
3/3 Test #3: RouteTests ....................... Passed 0.02 sec
67% tests passed, 1 tests failed out of 3
Total Test time (real) = 0.07 sec
The following tests FAILED:
2 - ServerTests (Failed)
Errors while running CTest
make: *** [Makefile:139: test] Error 8
Hello!
After I read the gossip sync:
for (const Key &key : local_changeset) {
...
res = process_get(key, serializers[type]); // read the state of the Key from MapLattice
prepare_put_tuple(gossip_map[address], key, type, res.first);
...
kZmqUtil->send_string(serialized, &pushers[gossip_pair.first]);
}
Since the SetLattice is increment-only, the size of SetLattice grows with more PUT updates, this will greatly increase the overhead of sync.
Is there any optimization ways, e.g. to use Delta state CRDTs? How to apply these optimizations?
htop
extract
VIRT RES SHR S CPU% MEM% TIME+ Command
95220 9564 6940 R 98.9 0.1 0:07.61 ./build/target/kvs/anna-monitor
96332 10856 7172 R 98.2 0.1 0:07.49 ./build/target/kvs/anna-kvs
96020 10712 7052 S 0.0 0.1 0:00.00 ./build/target/kvs/anna-route
strace
output for anna-monitor
and anna-kvs
respectively. These loop tightly with immediate timeouts despite no clients / no load.
poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=15, events=POLLIN}], 3, 0) = 0 (Timeout)
poll([{fd=11, events=POLLIN}], 1, 0) = 0 (Timeout)
poll([{fd=13, events=POLLIN}], 1, 0) = 0 (Timeout)
poll([{fd=15, events=POLLIN}], 1, 0) = 0 (Timeout)
poll([{fd=15, events=POLLIN}, {fd=17, events=POLLIN}, {fd=19, events=POLLIN}, {fd=21, events=POLLIN}, {fd=23, events=POLLIN}, {fd=25, events=POLLIN}, {fd=27, events=POLLIN}, {fd=29, events=POLLIN}, {fd=31, events=POLLIN}], 9, 0) = 0 (Timeout)
poll([{fd=15, events=POLLIN}], 1, 0) = 0 (Timeout)
poll([{fd=17, events=POLLIN}], 1, 0) = 0 (Timeout)
poll([{fd=19, events=POLLIN}], 1, 0) = 0 (Timeout)
poll([{fd=21, events=POLLIN}], 1, 0) = 0 (Timeout)
poll([{fd=23, events=POLLIN}], 1, 0) = 0 (Timeout)
poll([{fd=25, events=POLLIN}], 1, 0) = 0 (Timeout)
poll([{fd=27, events=POLLIN}], 1, 0) = 0 (Timeout)
poll([{fd=29, events=POLLIN}], 1, 0) = 0 (Timeout)
poll([{fd=31, events=POLLIN}], 1, 0) = 0 (Timeout)
@vsreekanti I enconuter a new issue.
When I use the same configuration with #38 and python client client.py
(from #27 ) like
from anna.client import AnnaTcpClient
from anna.lattices import SumLattice
client = AnnaTcpClient("10.1.2.66", "10.1.2.66", False)
#client = AnnaTcpClient("10.1.2.66", "10.1.2.66", True)
val = 32*[1.0]
lattice = LWWPairLattice(0, b'value')
client.put('key', lattice)
When I first run python3 client.py
, it works fine.
But it hooked when I run this command again.
When I ctrl+c
, it shows:
^CTraceback (most recent call last):
File "client.py", line 7, in <module>
client.put('key', lattice)
File "/usr/local/lib/python3.6/dist-packages/anna/client.py", line 165, in put
worker_address = self._get_worker_address(key)
File "/usr/local/lib/python3.6/dist-packages/anna/client.py", line 233, in _get_worker_address
addresses = self._query_routing(key, port)
File "/usr/local/lib/python3.6/dist-packages/anna/client.py", line 266, in _query_routing
KeyAddressResponse)[0]
File "/usr/local/lib/python3.6/dist-packages/anna/zmq_util.py", line 27, in recv_response
resp = rcv_sock.recv()
File "zmq/backend/cython/socket.pyx", line 791, in zmq.backend.cython.socket.Socket.recv
File "zmq/backend/cython/socket.pyx", line 827, in zmq.backend.cython.socket.Socket.recv
File "zmq/backend/cython/socket.pyx", line 186, in zmq.backend.cython.socket._recv_copy
File "zmq/backend/cython/checkrc.pxd", line 13, in zmq.backend.cython.checkrc._check_rc
KeyboardInterrupt
It looks like the project's root CMakeLists.txt makes assumptions about where clang and GCC are installed which doesn't match all configurations / distributions. In particular, I'm referring to the conditionals which guard appending "-pthread"
(and other flags) to the CMAKE_CXX_FLAGS_COMMON variable. The fix is likely as simple as changing the conditional guard by replacing instances of ${CMAKE_CXX_COMPILER} STREQUAL "/usr/bin/clang++"
with ${CMAKE_CXX_COMPILER_ID} MATCHES "(C|c?)lang"
(and similar for GCC).
The valid values of CMAKE_CXX_COMPILER_ID
can be found here
Tried to build anna locally as per docs.
Steps:
./common/scripts/install-dependencies-osx.sh
./scripts/build.sh
-bash-5.0$ ./scripts/build.sh
-- The C compiler identification is AppleClang 10.0.1.10010046
-- The CXX compiler identification is AppleClang 10.0.1.10010046
-- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc
-- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/clang++
-- Check for working CXX compiler: /usr/bin/clang++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Could NOT find Protobuf (missing: Protobuf_LIBRARIES Protobuf_INCLUDE_DIR)
CMake Error at /usr/local/Cellar/cmake/3.15.2/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
Could NOT find Protobuf (missing: Protobuf_LIBRARIES Protobuf_INCLUDE_DIR)
Call Stack (most recent call first):
/usr/local/Cellar/cmake/3.15.2/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
/usr/local/Cellar/cmake/3.15.2/share/cmake/Modules/FindProtobuf.cmake:599 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
CMakeLists.txt:70 (FIND_PACKAGE)
-- Configuring incomplete, errors occurred!
See also "/Users/kaviraj/src/github.com/hydro-project/anna/build/CMakeFiles/CMakeOutput.log".
make: *** No targets specified and no makefile found. Stop.
There's lots of place in the code where the explanation is sparse and/or not very helpful. Finding ways to make codepaths more visible: For each API call, which are the architecture components as well as the actual pieces of code being touched.
Hello, I have encountered an issue when using Anna (Sorry for my careless of closing the old issue #24 ):
anna/build/libanna-proto.a(anna.pb.cc.o): relocation R_X86_64_PC32 against symbol `_KeyTuple_default_instance_' can not be used when making a shared object; recompile with -fPIC
How can I recompile Anna libs with -fPIC?
I add -fPIC in the CMakefile but do not work:
IF(${CMAKE_CXX_COMPILER} STREQUAL "/usr/bin/g++")
SET(CMAKE_CXX_FLAGS_COMMON
"-std=c++11 -pthread -fPIC")
ENDIF()
SET(CMAKE_CXX_FLAGS_DEBUG
"${CMAKE_CXX_FLAGS_DEBUG} \
${CMAKE_CXX_FLAGS_COMMON} \
-g -O0 -fprofile-arcs -ftest-coverage")
SET(CMAKE_CXX_FLAGS_RELEASE
"${CMAKE_CXX_FLAGS_RELEASE} \
${CMAKE_CXX_FLAGS_COMMON} \
-O3")
Update:
It (the "-fPIC" issue) can be solved via manually modifying the file build/CMakeFiles/anna-proto.dir/flags.make and insert "-fPIC". How to generate it (via "Unix Makefiles" Generator, CMake Version 3.14) with "-fPIC" automatically?
Update: adding flags to CMAKE_CXX_FLAGS solves the issue.
IF(${CMAKE_CXX_COMPILER} STREQUAL "/usr/bin/g++")
SET(CMAKE_CXX_FLAGS_COMMON
"-fPIC -std=c++11 -pthread")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_COMMON}")
ENDIF()
2>
Then, it comes another issue about using GPU (nvcc)
[ 14%] Building NVCC (Device) object CMakeFiles/cuda_compile_1.dir/layers/cuda_compile_1_generated_exp_layer.cu.o
[ 14%] Building NVCC (Device) object CMakeFiles/cuda_compile_1.dir/layers/cuda_compile_1_generated_filter_layer.cu.o
anna/common/include/lattices/core_lattices.hpp(164): error: the object has type qualifiers that are not compatible with the member function "MapLattice<K, V>::at"
object type is: const MapLattice<K, V>
1 error detected in the compilation of "/tmp/tmpxft_0000502a_00000000-4_cudnn_conv_layer.cpp4.ii".
CMake Error at cuda_compile_1_generated_cudnn_conv_layer.cu.o.Release.cmake:275 (message):
Error generating file
CMakeFiles/cuda_compile_1.dir/layers/./cuda_compile_1_generated_cudnn_conv_layer.cu.o
make[2]: *** Waiting for unfinished jobs....
I have some questions about the replication mechanism in Anna:
Hello!
I am currently trying to setup cloudburst but when installing the dependencies via pip3 install -r requirements.txt
the following happens:
sudo pip3 install -r requirements.txt
Collecting cloudpickle==0.6.1
Downloading cloudpickle-0.6.1-py2.py3-none-any.whl (14 kB)
Collecting coverage==4.5.4
Downloading coverage-4.5.4.tar.gz (385 kB)
|████████████████████████████████| 385 kB 1.0 MB/s
Collecting flake8==3.7.7
Downloading flake8-3.7.7-py2.py3-none-any.whl (68 kB)
|████████████████████████████████| 68 kB 2.1 MB/s
Collecting numpy==1.16.1
Downloading numpy-1.16.1.zip (5.1 MB)
|████████████████████████████████| 5.1 MB 1.1 MB/s
Collecting pandas==0.25.1
Downloading pandas-0.25.1.tar.gz (12.6 MB)
|████████████████████████████████| 12.6 MB 1.6 MB/s
Collecting protobuf==3.6.1
Downloading protobuf-3.6.1-py2.py3-none-any.whl (390 kB)
|████████████████████████████████| 390 kB 2.7 MB/s
ERROR: Could not find a version that satisfies the requirement pyarrow==0.14.1 (from -r requirements.txt (line 7)) (from versions: 0.9.0, 0.10.0, 0.11.0, 0.11.1, 0.12.0, 0.12.1, 0.13.0, 0.14.0, 0.15.1, 0.16.0, 0.17.0, 0.17.1, 1.0.0, 1.0.1, 2.0.0, 3.0.0, 4.0.0, 4.0.1, 5.0.0, 6.0.0, 6.0.1, 7.0.0, 8.0.0)
ERROR: No matching distribution found for pyarrow==0.14.1 (from -r requirements.txt (line 7))
I am assuming, this happens because pyarrow 0.14.1 is pinned within protobuf 3.6.1 but is no longer available since :
sudo pip install pyarrow==0.14.1
ERROR: Could not find a version that satisfies the requirement pyarrow==0.14.1 (from versions: 0.9.0, 0.10.0, 0.11.0, 0.11.1, 0.12.0, 0.12.1, 0.13.0, 0.14.0, 0.15.1, 0.16.0, 0.17.0, 0.17.1, 1.0.0, 1.0.1, 2.0.0, 3.0.0, 4.0.0, 4.0.1, 5.0.0, 6.0.0, 6.0.1, 7.0.0, 8.0.0)
ERROR: No matching distribution found for pyarrow==0.14.1
can this be fixed by simply using a newer version of protobuf?
Best regards,
Florian
Hi,
is there any documentation about anna-kv clients (either cpp client or the python client)?
Best Regards
Hello, when I use the python client of Anna, I found there is some difference between cpp client, which has clear hint for user to use~(e.g., read config from a yaml file).
There are two issues of python client of Anna:
Thread 1 "python3" received signal SIGSEGV, Segmentation fault.
0x00007fffbf02a2a9 in GlobalError::PushToStack() () from /usr/lib/x86_64-linux-gnu/libapt-pkg.so.5.0
(gdb) bt
#0 0x00007fffbf02a2a9 in GlobalError::PushToStack() () from /usr/lib/x86_64-linux-gnu/libapt-pkg.so.5.0
#1 0x00007fffbf0ae082 in pkgInitConfig(Configuration&) () from /usr/lib/x86_64-linux-gnu/libapt-pkg.so.5.0
#2 0x00007fffbf34bed8 in ?? () from /usr/lib/python3/dist-packages/apt_pkg.cpython-36m-x86_64-linux-gnu.so
#3 0x000000000050a84f in ?? ()
#4 0x000000000050c549 in _PyEval_EvalFrameDefault ()
Related codes:
#include <fstream>
#include "client/kvs_client.hpp"
#include "yaml-cpp/yaml.h"
#define YAML_PATH "A CORRECT PATH"
unsigned kRoutingThreadCount;
ZmqUtil zmq_util;
ZmqUtilInterface *kZmqUtil = &zmq_util;
Address ip;
std::vector<UserRoutingThread>* threads;
KvsClient * client;
extern "C" {
void client_new(){
YamlConfig(YAML_PATH);
client = new KvsClient(*(threads), ip, 0, 10000);
}
}
When I comment out the client = new KvsClient(*(threads), ip, 0, 10000);
, such error disappears.
@vsreekanti
Is there any document about Anna (Cluster Mode), instead of using docker?
Can I directly change the configuration files to launch a cluster of Anna?
For example, I have two nodes with ips: n1, n2, and I want each key has two replications. What's the configuration files on these two nodes, respectively?
Just wondering if AWS Lambda with EFS (shared filesystem) could be used to run Anna?
@vsreekanti
Many thanks for your help.
I found KeyRequest
can bring multiple KeyTuple
s in once transmission, so I try to upgrade it:
string vget_async(const vector<Key>& keys, int size) {
# to simplify the process, or to jump the check of pending_get_response_map_
//if (pending_get_response_map_.find(keys[0])
// == pending_get_response_map_.end()) {
KeyRequest request;
request.set_request_id(get_request_id());
request.set_response_address(ut_.response_connect_address());
request.set_type(RequestType::GET);
for (int i = 0; i < size; i++) {
KeyTuple* tp = request.add_tuples();
tp->set_key(keys[i]);
}
try_request(request);
return request.request_id();
//}
//return "";
}
When I set size = 1, it works normal; when it is larger than 1.
The request_id cannot match
# size = 1
time: 164087
throughput: 6.09433e-06
time: 1348
throughput: 0.00074184
time: 318
throughput: 0.00314465
staleness of one key: 12
10.1.2.1:0_9=?10.1.2.1:0_9
number of keys: 1
10.1.2.1:0_11=?10.1.2.1:0_11
# size = 2
time: 103791
throughput: 1.92695e-05
time: 56
throughput: 0.0357143
time: 310
throughput: 0.00645161
staleness of one key: 0
10.1.2.1:0_11=?10.1.2.1:0_7
number of keys: 1
=?10.1.2.1:0_11
staleness: 15
[libprotobuf FATAL /usr/local/include/google/protobuf/repeated_field.h:1522] CHECK failed: (index) < (current_size_):
terminate called after throwing an instance of 'google::protobuf::FatalException'
what(): CHECK failed: (index) < (current_size_):
Aborted
Update:
I found the cause of this bug. It may not be related to the Multiple KeyTuples, but the receive function of batched put.
It is likes:
void receive(KvsClientInterface *client, int number) {
vector<KeyResponse> responses = client->receive_async();
while (responses.size() < number) {
responses = client->receive_async();
number = number - responses.size();
if (number == 0)
break;
}
}
Update II:
The Python client said:
# PUT only supports one key operations, we only ever have to look at
# the first KeyTuple returned.
But I see user_request_handler
goes through all tuples and handle all of them, then why it said PUT only supports one key operation?
for (const auto &tuple : request.tuples()) {
// first check if the thread is responsible for the key
Key key = tuple.key();
string payload = tuple.payload();
...
else if (request_type == RequestType::PUT) {
...
}
...
}
I have extended PUT
operation like GET
, but only the first key-value pair in the passed key vector is executed
x = client->vput_async(keys, values, count, LatticeType);
receive(client)
x = client->vget_async(keys, count);
only keys[0]
's value is returned.
@vsreekanti
Hello, I have a question about Background gossip/multicast protocol.
In Anna:
The user requests will be handled by user_request_handler
.
If the type is PUT
, it records it in local_changeset
for gossip sync periodically.
if (local_changeset.size() > 0) {
.....
// fetch current state from DB and this is a "PUT" request
send_gossip(addr_keyset_map, pushers, serializers, stored_key_map);
local_changeset.clear();
}
Is this "PUT" request handled by user_request_handler
or gossip_handler
? If it is handled by gossip_handler
, how it can achieve that (I mean how the server recongnize the PUT request is send by other replicas or the clients) ?
Hello!
In Anna, it supports Last-Write-Wins Lattice.
Does Anna or Lattice support other CRDTs, e.g., Grow-only Counter? Are there any examples?
Many thanks in advance!
Title is self-explanatory. I think fixing this should be as simple as adding a check to returrn an empty response if the request is empty.
$ build/cli/anna-cli conf/anna-config.yml
kvs> GET_CAUSAL doesnotexist
Segmentation fault
kvs> GET_CAUSAL q
Thread 1 "anna-cli" received signal SIGSEGV, Segmentation fault.
0x000055555556bc3b in handle_request(KvsClientInterface*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) ()
(gdb) bt
#0 0x000055555556bc3b in handle_request(KvsClientInterface*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) ()
#1 0x000055555556d27a in run(KvsClientInterface*) ()
#2 0x0000555555569f41 in main ()
Hello, I know Anna offers world-beating speed at many scales. To get down the details, I wanted to benchmark anna against Redis with YCSB. But I didn't find Anna's adapter in YCSB. Therefore, I was wondering how to connect to Anna using YCSB? Is there any documentation or package about it?
Best Regards
You can compare with redis fork Keydb and bemchmark again
Thanks and
Best regards.
@vsreekanti
Hello, there are four parameters when setting the replication
replication:
memory: 1
ebs: 0
minimum: 1
local: 1
I guess memory
means how many replicas are stored in memory and ebs
means how many replicas are stored in disk. How about minimum
and local
?
If I want to run a cluster of 12 anna nodes with each key has 8 replicas in memory-only mode, how to set these parameters?
My current setting likes:
replication:
memory: 8
ebs: 0
minimum: 8
local: 1
My concern is 12*1(local) > 8(memory), it seems not right.
Many thanks
Update: When I run Anna (local mode) with the following configuration, the client works fine.
I only runs route and server.
./build/target/kvs/anna-route &
./build/target/kvs/anna-kvs &
monitoring:
mgmt_ip: 127.0.0.1
ip: 127.0.0.1
routing:
monitoring:
- 127.0.0.1
ip: 10.1.2.66
user:
monitoring:
- 127.0.0.1
routing:
- 10.1.2.66
ip: 10.1.2.66
server:
monitoring:
- 127.0.0.1
routing:
- 10.1.2.66
seed_ip: 10.1.2.66
public_ip: 10.1.2.66
private_ip: 10.4.2.2
mgmt_ip: "NULL"
policy:
elasticity: false
selective-rep: false
tiering: false
ebs: ./
capacities: # in GB
memory-cap: 1
ebs-cap: 0
threads:
memory: 1
ebs: 1
routing: 1
benchmark: 1
replication:
memory: 1
ebs: 0
minimum: 1
local: 1
I'm trying to run anna server as disk node in local mode. I changed the SERVER_TYPE in start-anna-local.sh to "ebs". anna-kvs, anna-monitor, anna-route runs as seen in ps. When I run anna-cli and do some PUT or GET, it hangs for 10 seconds and then says "Failure!". Also anna-route crashes as soon as any PUT or GET is triggered from ana-cli.
Tried changing ebs-cap from 0 to 1 & set replication->ebs to 1 in config, but no luck. Am I missing something ? Is this incorrect procedure to run server as disk node. Any help is appreciated.
I encounter the following issue:
terminate called after throwing an instance of 'zmq::error_t'
what(): Too many open files
bash: line 1: 20404 Aborted ./build/target/kvs/anna-kvs
terminate called after throwing an instance of 'zmq::error_t'
what(): Too many open files
bash: line 1: 32208 Aborted ./build/target/kvs/anna-kvs
Can we connect with php redis or nginx redis modul to anna kvs, because of compatibility reasons?
Thanks and
Best regards
would it be a good idea to run anna under container and k8s where each instance can come and go at any time?
thank you for reading this.
regards,
-M
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.