0

Our project requirement is to have certain tables to be present on only one/two nodes out of the currently available 5 nodes.

Is it possible to keep the tables on a specific node in a K-1 safe cluster?

NitheshKHP
  • 381
  • 1
  • 2
  • 13

1 Answers1

2

You can never have all of a single data set only exist on one node and still have k-1 safety. The idea of k-1 safety is that a node can go down without a reduction in data availability (and in fact, Vertica will never allow this to happen, if data is not available on a primary or buddy node, then it will shut down).

You can however specify specific nodes to unsegment on. Quite honestly, this is really not a good idea at all, though. You're going to create hot spots (concentrated data, concentrated workload). You're also going to create situations where if a person is logged into other nodes, more data will likely have to travel the private network to get to the initiator.

I've never seen anyone do this in practice and I'd caution against it. If one node in your cluster is slow, it could impact the whole cluster's performance.

To answer your question, though... to unsegment to specific nodes, this is the clause for the CREATE PROJECTION command.

UNSEGMENTED { NODE node | ALL NODES } ]

Just create two projections, one for each node. You'll need a minimum of 2 nodes to satisfy k-safety. This k-safety check won't happen until first insert (or if you try to drop other existing projections before enough new ones are refreshed that satisfies k-safety).

Only do this if you really know what you are doing, though. If this cluster is going to grow and get more workload, doing this type of config is a management nightmare.

woot
  • 7,406
  • 2
  • 36
  • 55