001
014
015 package com.liferay.portal.dao.shard;
016
017 import com.liferay.portal.util.PortalInstances;
018 import com.liferay.portal.util.PropsValues;
019
020 import java.util.Map;
021
022
025 public class RoundRobinShardSelector implements ShardSelector {
026
027 public String getShardName(
028 String scope, String shardName, Map<String, String> params) {
029
030 if (scope.equals(ShardSelector.COMPANY_SCOPE)) {
031 int instances = PortalInstances.getCompanyIds().length;
032 int shards = PropsValues.SHARD_AVAILABLE_NAMES.length;
033
034 return PropsValues.SHARD_AVAILABLE_NAMES[instances % shards];
035 }
036 else {
037 return PropsValues.SHARD_DEFAULT_NAME;
038 }
039 }
040
041 }