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 @Override
028 public String getShardName(
029 String scope, String shardName, Map<String, String> params) {
030
031 if (scope.equals(ShardSelector.COMPANY_SCOPE)) {
032 String[] availableShardNames = ShardUtil.getAvailableShardNames();
033
034 int instances = PortalInstances.getCompanyIds().length;
035 int shards = availableShardNames.length;
036
037 return availableShardNames[instances % shards];
038 }
039 else {
040 return ShardUtil.getDefaultShardName();
041 }
042 }
043
044 }