001
014
015 package com.liferay.portal.dao.shard;
016
017 import com.liferay.portal.kernel.dao.shard.ShardUtil;
018 import com.liferay.portal.util.PortalInstances;
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 String[] availableShardNames = ShardUtil.getAvailableShardNames();
032
033 int instances = PortalInstances.getCompanyIds().length;
034 int shards = availableShardNames.length;
035
036 return availableShardNames[instances % shards];
037 }
038 else {
039 return ShardUtil.getDefaultShardName();
040 }
041 }
042
043 }