Details
-
Bug
-
Status: Resolved
-
Normal
-
Resolution: Fixed
-
None
-
Normal
Description
For some reason most of the Hadoop code (ColumnFamilyRecordReader, CqlStorage, ...) uses the Cell and CellName classes. That dependency is entirely artificial: all this code is really client code that communicate with Cassandra over thrift/native protocol and there is thus no reason for it to use internal classes. And in fact, thoses classes are used in a very crude way, as a Pair<ByteBuffer, ByteBuffer> really.
But this dependency is really painful when we make changes to the internals. Further, every time we do so, I believe we break some of those the APIs due to the change. This has been painful for CASSANDRA-5417 and this is now painful for CASSANDRA-8099. But while I somewhat hack over it in CASSANDRA-5417, this was a mistake and we should have removed the depency back then. So let do that now.
Attachments
Attachments
Issue Links
- blocks
-
CASSANDRA-8099 Refactor and modernize the storage engine
-
- Resolved
-
- is blocked by
-
CASSANDRA-9419 CqlRecordWriter does not adequately determine if driver failed to connect due to interrupt
-
- Resolved
-
- is depended upon by
-
CASSANDRA-9353 Remove deprecated legacy Hadoop code in 3.0
-
- Resolved
-