У меня есть cassandra db и семейство столбцов с компаратором TimeUUIDType. Я использую Hector и имею пространство ключей, используя RandomPartitioner.Срезанный запрос на столбцах TimeUUID
Я хотел бы сделать запрос на срез, чтобы получить результаты, упорядоченные по таймеру TimeUUID.
SliceQuery<String, UUID, UserLike> query = HFactory.createSliceQuery(getKeyspace(), StringSerializer.get(), TimeUUIDSerializer.get(), UserLikesSerializer.get());
query = query.setKey(username);
query.setColumnFamily(SOME_CF);
Когда я конфигурирую запрос с этим кодом:
query.setRange(new UUID(UUIDGen.createTime(Long.MAX_VALUE),UUIDGen.getClockSeqAndNode()), null, true, maxResults);
я получающий данными с неверной последовательностью (возможно, потому что я использую RandomPartitioner - правильно?) Когда я конфигурирую запрос с этим кодом:
query.setRange(new UUID(UUIDGen.createTime(Long.MAX_VALUE),UUIDGen.getClockSeqAndNode()), new UUID(UUIDGen.createTime(0),UUIDGen.getClockSeqAndNode()), true, maxResults);
я получает ошибку:
InvalidRequestException(why:range finish must come after start in the order of traversal)
at me.prettyprint.hector.api.exceptions.HInvalidRequestException
Любые идеи?
нет точно. Была ли проблема с интервалом времени (я имею в виду значение Long.MAX_VALUE). Я заменил его System.currentTimeInMillis(), и теперь он работает как шарм – tomekkup