标签: aerospike

Aerospike 特定于 setName 的配置

我是 Aerospike 的新手。我的命名空间有多个集合。我试图在 aerospike dB 命名空间中为不同的集合设置不同的 TTL。

我不想使用分配给命名空间的默认 ttl,而是想为每个集合设置它。

我的配置

namespace test {
        replication-factor 1
        memory-size 1G
        default-ttl 0 
}
Run Code Online (Sandbox Code Playgroud)

我提到了此链接https://docs.aerospike.com/server/operations/configure,其中指出可以设置特定的记录策略。

namespace <name> {       # Define namespace record policies and storage engine
    storage {}           # Configure persistence or lack of persistence
    set {}               # (Optional) Set specific record policies
}
Run Code Online (Sandbox Code Playgroud)

但我不确定应该使用哪个字段来设置每组的 ttl。比如说,我在这个“测试”命名空间中有两个名为 - 的集合order,并且name我希望它们的 ttl 分别为 2 小时和 6 小时。任何帮助,将不胜感激。

提前致谢

caching aerospike

2
推荐指数
1
解决办法
158
查看次数

Aerospike 列表操作:如何从一组中的所有列表箱中删除一项

我有一个 Set,它有两个 Bin(pId 是 long ,值是列表),并且列表索引应用于值。现在我想从所有记录的值列表中删除指定值。

我用过ListOperation.removeByValue,它可以工作,但是当记录大小超过 100000 条记录时,速度并不快。循环操作大约需要 11 秒。

WritePolicy clientWritePolicy = new WritePolicy();
clientWritePolicy.commitLevel = CommitLevel.COMMIT_MASTER;
clientWritePolicy.recordExistsAction = RecordExistsAction.UPDATE;
clientWritePolicy.expiration = 300;
              
Statement statement = new Statement();
statement.setIndexName("values_index");
statement.setNamespace("test");
statement.setSetName("setTest");
               
statement.setFilter(Filter.contains("values", IndexCollectionType.LIST, value));
QueryPolicy queryPolicy = new QueryPolicy();
RecordSet recSet = client.query(queryPolicy, statement);
    
recSet.forEach(rec->{
   client.operate(clientWritePolicy, rec.key,ListOperation.removeByValue("values",Value.get(value), ListReturnType.NONE));
   });

Run Code Online (Sandbox Code Playgroud)

我如何优化这段代码?是否还有其他类似 use 的解决方案UDF

更新1:我在文件中编写了以下函数lua

function removeListByValue(rec,v)
    local l = list()
    for value in list.iterator(rec["values"]) do
        if(value ~= v) then
             list.append(l, value)
        end
     end …
Run Code Online (Sandbox Code Playgroud)

lua user-defined-functions nosql aerospike

2
推荐指数
1
解决办法
446
查看次数

Aerospike REST 网关,构建失败但出现异常

我正在尝试安装 Aerospike REST Gateway,在运行第一个命令 ./gradlew build (并等待 2 小时)后,它显示如下内容:

2142 tests completed, 1660 failed

> Task :test FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':test'.
> There were failing tests. See the report at: file:///home/andalabs/aerospike-rest-gateway/build/reports/tests/test/index.html

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

* Get more help at …
Run Code Online (Sandbox Code Playgroud)

java rest gradle spring-boot aerospike

2
推荐指数
1
解决办法
67
查看次数

使用LDT时的子记录错误

我正在使用LDT地图,并且最初得到了这个错误.

com.aerospike.client.AerospikeException: Error Code 1424: LDT-Sub Record Create Error
Run Code Online (Sandbox Code Playgroud)

我能够ldt-enabled true在in 的帮助下删除它,aerospike.conf
但现在我遇到了

com.aerospike.client.AerospikeException: Error Code 1422: LDT-Sub Record Open Error
Run Code Online (Sandbox Code Playgroud)

代码段:

for (Entry<String, Map<String, Object>> myLdtBin: myLdtMap.entrySet()) {
    LargeMap lmap = client.getLargeMap(myWritePolicy, myKey, myLdtBin.getKey() , null);
    lmap.put(myLdtBin.getValue()); //<-- Error here
}
Run Code Online (Sandbox Code Playgroud)

有什么指针吗?

java nosql aerospike

1
推荐指数
1
解决办法
284
查看次数

Aerospike default.dat文件无缘无故

我有一个正在运行的Aerospike服务器,在一组中有大约36,000条记录.所有我存储的都是这个集合的几个箱子.我已经配置了我的aerospike.conf文件来保存磁盘上的数据:

namespace default {
        replication-factor 2
        memory-size 4G
        default-ttl 0

        storage-engine device {
                file /opt/aerospike/data/default.dat
                filesize 2T
                data-in-memory true
        }
}
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是我的/opt/aerospike/data/default.dat文件在我的系统中列为大约2TB:

/opt/aerospike/data# ls -lh
total 10M
-rw------- 1 root root 2.0T Jun  5 19:01 default.dat
Run Code Online (Sandbox Code Playgroud)

我的问题是:

  1. 当我在Aerospike中使用的数据现在很小时,为什么这个.dat文件必须是2TB?

  2. 我的硬盘限制为78GB,为什么我的Ubuntu系统不能让我没有驱动器空间错误?

系统磁盘空间看起来很好:

df -h --total
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1       79G  4.2G   72G   6% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
udev            2.0G  8.0K  2.0G   1% /dev
tmpfs           395M  424K  395M   1% /run
none            5.0M     0  5.0M …
Run Code Online (Sandbox Code Playgroud)

aerospike

1
推荐指数
1
解决办法
145
查看次数

如何以编程方式确定Aerospike中的记录大小

有没有办法以编程方式确定Aerospike记录的存储大小?client.info或get()中的元数据似乎都没有.

aerospike

1
推荐指数
1
解决办法
798
查看次数

执行 put through java 客户端时出现 Aerospike 异常错误代码 4 参数错误

我正在处理一个包含记录列表的 avro 文件,并对每条记录执行 client.put 到我本地的 Aerospike 商店。

由于某种原因,放置一定数量的记录是成功的,而对于其余的记录则不然。我正在这样做——

client.put(writePolicy, recordKey, bins);

失败调用的相关值是 -

命名空间=测试

集合名称 = 测试集

用户密钥 = some_string

写入策略=空

垃圾箱-

是用户:1

prof_loc:530049,530046,530032,530031,530017,530016,500046

rfm:白金

store_browsed:some_string

store_purch:some_string

城市ID:空

日志片段 -

com.aerospike.client.AerospikeException: Error Code 4: Parameter error at com.aerospike.client.command.WriteCommand.parseResult(WriteCommand.java:72) at com.aerospike.client.command.SyncCommand.execute(SyncCommand.java:56) at com.aerospike.client.AerospikeClient.put(AerospikeClient.java:338)

可能是什么问题?

java client aerospike

1
推荐指数
1
解决办法
3263
查看次数

在Aerospike中使用btree作为主要索引有什么优势?

我正在查看Aerospike的文档。并发现对于存储主键,Aerospike使用散列,并且散列指向BTree,而bTree包含指向实际记录的指针。据我所知,Redis只使用哈希(为了解决冲突,他们维护一个哈希列表)。哈希指向实际记录。

Aerospike使用Btree有什么优势?这不是意味着通过其主键Aerospike访问记录将花费O(logn)吗?而redis只需要O(1)。

我可能是错的,但是我从文档中了解到了全部。有人可以在这个话题上发表更多意见吗?

b-tree nosql aerospike

1
推荐指数
1
解决办法
250
查看次数

如何解决 Aerospike::Exceptions::Aerospike: Ruby 客户端不支持的服务器功能?

当我尝试使用 ruby​​ 客户端写入 aerospike 时,出现以下异常:-

Aerospike::异常::Aerospike:不支持的服务器功能

细节:-

Aerospike version:- 4.3
Client: [Ruby] aerospike - 2.4.0
namespaces: NS1, NS2, NS3 
Run Code Online (Sandbox Code Playgroud)

注意:NS2 和 NS3 具有 single-bin true data-in-index true

代码(导致异常):-

client = Aerospike::Client.new('aerospike:3000')
key = Aerospike::Key.new('NS2', 'set name', 'this is the key')
data = { 'record'  => 1 }
client.put(key, data) # this line raises the exception
Aerospike::Exceptions::Aerospike: Unsupported Server Feature
Run Code Online (Sandbox Code Playgroud)

如果我将密钥中的 NS2 更改为 NS1,则不会引发异常。

ruby aerospike

1
推荐指数
1
解决办法
767
查看次数

Areospike 处理对同一索引的大量请求

我们有一个用例,其中可能有大量对同一密钥的请求。Aerospike 根据主键的哈希将请求路由到分区。可以进行额外的分区和重新平衡以支持更高的流量。但是,Aerospike如何处理单个按键导致热点的情况呢?

对于这种情况,有更好的数据库解决方案吗?

database autoscaling aerospike

1
推荐指数
1
解决办法
102
查看次数

Aerospike Kubernetes Operator 在 EKS 集群中安装错误

强文本直到证书经理每个吊舱都工作良好,如 aerospike 文档所示。但在安装操作员时,操作员吊舱会发生崩溃循环退避。

安装操作员使用:

git clone https://github.com/aerospike/aerospike-kubernetes-operator.git
git checkout 2.5.0
cd aerospike-kubernetes-operator/helm-charts
helm install aerospike-kubernetes-operator ./aerospike-kubernetes-operator --set replicas=3
Run Code Online (Sandbox Code Playgroud)

Pod 运行:

PS C:\Users\B.Jimmy\aerospike-kubernetes-operator-1.0.0> kubectl get pods -A
NAMESPACE      NAME                                             READY   STATUS             RESTARTS         AGE
cert-manager   cert-manager-576c79cb45-xkr88                    1/1     Running            0                4h41m
cert-manager   cert-manager-cainjector-664f76bc59-4b5kz         1/1     Running            0                4h41m
cert-manager   cert-manager-webhook-5d4fd5cb7f-f96qx            1/1     Running            0                4h41m
default        aerospike-kubernetes-operator-7bbb8745c8-86884   1/2     CrashLoopBackOff   36 (59s ago)     159m
default        aerospike-kubernetes-operator-7bbb8745c8-jzkww   1/2     Error              36 (5m14s ago)   159m
kube-system    aws-node-7b4nb                                   1/1     Running            0                21h
kube-system    aws-node-llnzh                                   1/1     Running            0                21h
kube-system …
Run Code Online (Sandbox Code Playgroud)

aerospike kubernetes kubernetes-helm cert-manager amazon-eks

1
推荐指数
1
解决办法
132
查看次数

从 aql 获取 Aerospike 中的整个 Json 字符串(从 java 客户端插入)

我已经通过 java 客户端将 Json 字符串插入 Aerospike Bin 中,并通过 java 检索它,效果很好,工作正常。

现在我有兴趣在 aql bin 中查看我的 Json 字符串,但我只能看到字符串的一半,例如

+------------------------------------------------ -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------+----------------------------------------------------+ | abcList
------------------------------------------------- -------------------------------------------------- --+----------------------------------------------------+ | “[{“abc”:假,“abc”:“7871248”,“abc”:1423114706392,“abc”:1423114706392,“abc”:5,“abc”:“12345”,“abc”:0,” OriginalCartItemSequenceNumber":0,"abc":false,"abc":"","sourceCustomerId":nu | "d016cf2a-cf8f-435a-b9d5-de486da4737b" | +------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------------+------ ----------------------------------+ 1 行一组(0.001 秒)

如果你在某个时间点后观察,我只会得到点。那么我怎样才能得到所有结果,是否需要进行任何配置更改?

请有人帮助我

aerospike

0
推荐指数
1
解决办法
1416
查看次数

内存数据库的性能取决于它是用c ++还是java编写的

我们正在尝试找到一个具有索引支持的内存数据库,我们可以将它用于我们的应用程序.我们正在研究Aerospike,Apache Ignite,Geode,Voltdb.没有太多区别,每个人都声称速度快,并且有很好的社区支持.

其中,Aerospike和VoltDB是基于C/C++的,Apache Ignite和Geode是基于Java的.

考虑到数据库在性能方面几乎没有什么选择,而且很难测试哪个数据库对我们的生产有更好的作用,试图找出内存数据库的性能是否也取决于它是否是基于java或基于c/c ++的.考虑垃圾收集问题是非常频繁的,并且很难根据您的用例(可能会在一段时间后改变)正确调整它,基于java的dbs是否会处于劣势.

谢谢

in-memory-database voltdb aerospike geode ignite

0
推荐指数
1
解决办法
1015
查看次数