Ejemplo n.º 1
0
bool load_data_from_file(rocksdb::DB* db, std::string path){
    std::cout << "adding data from disk" << std::endl;
    std::size_t index = 0;
    std::ifstream stream;
    rocksdb::Status status;
    try {
        stream.open(path);
        if(!stream.is_open()){
            std::cout << "Unable to open stream!";
            return false;
        }

    	auto start = cclock::now();
        std::istream_iterator<std::string> stream_it(stream);
        for(;stream_it != std::istream_iterator<std::string>(); ++stream_it ){
            auto key = std::to_string(index++);
            status = db->Put(rocksdb::WriteOptions(), key, *stream_it);
            if(!status.ok() ){ throw std::logic_error("boom"); }
            if (index % 10000 == 0){
                std::cout << index << std::endl;
            }
        }
    	auto duration = std::chrono::duration_cast<std::chrono::seconds>(cclock::now() - start);
    	std::cout << "loading of data form file " << duration.count() << std::endl;
    } catch (std::exception const& e) {
        std::cout <<e.what();
        return false;
    }
    return true;
}
Ejemplo n.º 2
0
inline std::ostream& operator<<(std::ostream& os, const std::array<T, N>& v) {
    return stream_it(os, v);
}
Ejemplo n.º 3
0
inline std::ostream& operator<<(std::ostream& os, const std::deque<T>& v) {
    return stream_it(os, v);
}