Is it possible to have different namespace configurations by node?

#1

Hi,
Is the following configuration work correctly?

  • cluster: host1 ~ host6

  • namespace config of host1 ~ host3

namespace ns1 {
        replication-factor 3
        memory-size 2G
        default-ttl 1d
        high-water-memory-pct 60
        high-water-disk-pct 70
        stop-writes-pct 80

        storage-engine device {
        file /data/aerospike/aerospike-ns1-data
        filesize 20G
        }
}
namespace ns2 {
        replication-factor 3
        memory-size 3G
        default-ttl 1d
        high-water-memory-pct 60
        high-water-disk-pct 70
        stop-writes-pct 80

        storage-engine device {
        file /data/aerospike/aerospike-ns2-data
        filesize 30G
        }
}
  • namespace config of host4 ~ host6
namespace ns3 {
        replication-factor 3
        memory-size 5G
        default-ttl 1d
        high-water-memory-pct 60
        high-water-disk-pct 70
        stop-writes-pct 80

        storage-engine device {
        file /data/aerospike/aerospike-ns3-data
        filesize 50G
        }
}
#2

Why do you want to do this? Aerospike has a feature that will allow you to ‘roll in’ a new namespace, so in theory I think it will work… but it’s not recommended.

#3

Thanks Albot.

I have an Aerospike cluster(host1~host3) as above config(ns1,ns2). ns1 and ns2 configuration is full resource of host.

And then I want to add new namespace (ns3) with new host(host4 ~ host6) without resource increase of host1~host3.

#4

Yes, this should work but, as @Albot mentioned, this isn’t a configuration that we recommend.

The request normally involves a namespace on a set of nodes and another on a subset of those nodes. This isn’t recommended since it can non-homogeneous performance characteristics across the cluster.

Your description should have describes non-overlapping namespaces so this doesn’t quite apply. Another concern is that the ability to run long term with non-homogeneous namespace configurations was a side-effect of allowing a namespace to be added via a rolling restart. We may, in the future, disable namespaces not on all nodes if a feature requires it - though, this wouldn’t be required for anything being discussed at this time.

I would like to further understand your need for this functionality. Why not run two clusters?