cd4592c220
Summary: SST Partitioner interface that allows to split SST files during compactions. It basically instruct compaction to create a new file when needed. When one is using well defined prefixes and prefixed way of defining tables it is good to define also partitioning so that promotion of some SST file does not cover huge key space on next level (worst case complete space). Pull Request resolved: https://github.com/facebook/rocksdb/pull/6957 Reviewed By: ajkr Differential Revision: D22461239 fbshipit-source-id: 9ce07bba08b3ba89c2d45630520368f704d1316e
43 lines
1.4 KiB
C++
43 lines
1.4 KiB
C++
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
|
// This source code is licensed under both the GPLv2 (found in the
|
|
// COPYING file in the root directory) and Apache 2.0 License
|
|
// (found in the LICENSE.Apache file in the root directory).
|
|
//
|
|
// This file implements the "bridge" between Java and C++ and enables
|
|
// calling C++ ROCKSDB_NAMESPACE::SstFileManager methods
|
|
// from Java side.
|
|
|
|
#include "rocksdb/sst_partitioner.h"
|
|
|
|
#include <jni.h>
|
|
|
|
#include <memory>
|
|
|
|
#include "include/org_rocksdb_SstPartitionerFixedPrefixFactory.h"
|
|
#include "rocksdb/sst_file_manager.h"
|
|
#include "rocksjni/portal.h"
|
|
|
|
/*
|
|
* Class: org_rocksdb_SstPartitionerFixedPrefixFactory
|
|
* Method: newSstPartitionerFixedPrefixFactory0
|
|
* Signature: (J)J
|
|
*/
|
|
jlong Java_org_rocksdb_SstPartitionerFixedPrefixFactory_newSstPartitionerFixedPrefixFactory0(
|
|
JNIEnv*, jclass, jlong prefix_len) {
|
|
auto* ptr = new std::shared_ptr<ROCKSDB_NAMESPACE::SstPartitionerFactory>(
|
|
ROCKSDB_NAMESPACE::NewSstPartitionerFixedPrefixFactory(prefix_len));
|
|
return reinterpret_cast<jlong>(ptr);
|
|
}
|
|
|
|
/*
|
|
* Class: org_rocksdb_SstPartitionerFixedPrefixFactory
|
|
* Method: disposeInternal
|
|
* Signature: (J)V
|
|
*/
|
|
void Java_org_rocksdb_SstPartitionerFixedPrefixFactory_disposeInternal(
|
|
JNIEnv*, jobject, jlong jhandle) {
|
|
auto* ptr = reinterpret_cast<
|
|
std::shared_ptr<ROCKSDB_NAMESPACE::SstPartitionerFactory>*>(jhandle);
|
|
delete ptr; // delete std::shared_ptr
|
|
}
|