Как сделать одну базу (на Postgres) на двух физически раздельных серверах?
Как сделать одну базу (Postgres) на двух физически раздельных серверах?
Т.е. имеем два сервера. На каждом сервере размер дискового пространства равен 400ГБ. База данных выходит за рамки 400 ГБ, т.е. необходимо, что бы при достижении базой данных определенного размера(например в 370ГБ) на сервере 1, данные автоматически загружались на сервер 2. И при запросе (например select блаблабла) на сервер 1 данные также "занюхивались" с сервера 2.
Гуглил запросы на тему кластеризацию и репликацию, но под мою задачу статей не нашел.
Это не шардинг.
Шардинг подразумевает разделение части данных по определенному ключу идентифицируемых.
То есть, например, люди с фамилиями с А по К - на первом сервере, а с фамилиями Л по Я - на втором.
stul5tul, вам что-то мешает разделять данные по монотонно возрастающему идентификатору? Подобная стратегия, кстати, описана в книге Мартина Клеппмана "Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems", где он называет это шардингом.
stul5tul, во-первых, необязательно, клиенты могут обращаться с одинаковой частотой по всему диапазону записей. Во-вторых, можно подобрать другое условие разбивки на секции, обеспечивающее более равномерное распределение запросов между серверами. Принцип от этого не поменяется - разделение данных, которые не вмещаются на один сервер. В-третьих, Cassandra, MongoDB, да и Elasticsearhc, если мне память не изменяет, по умолчанию разбивают секции по хэшу первичного ключа, то есть распределяют записи по секциям почти случайным образом.
В-третьих, Cassandra, MongoDB, да и Elasticsearhc, если мне память не изменяет, по умолчанию разбивают секции по хэшу первичного ключа, то есть распределяют записи по секциям почти случайным образом.
Казалось бы, а при чему тут PostgreSQL.
Cassandra, Elasticsearch - от рождения на кластер заточены.
Будучи даже запущенными на одной машине - они тормознее решений, заточенных на одну машину (в случае с Elasticsearch можно сравнить SphinxSearch). Но именно превосходные умения этих систем работать в кластере - позволяют радоваться жизни.
Так что, при чем здесь PostgreSQL?