Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- connected to unix/:/var/run/tarantool/tarantool.sock
- unix/:/var/run/tarantool/tarantool.sock> _TARANTOOL
- ---
- - 1.7.7-227-g33980fc59
- ...
- unix/:/var/run/tarantool/tarantool.sock> box.cfg
- ---
- - log_nonblock: true
- vinyl_run_count_per_level: 2
- rows_per_wal: 500000
- vinyl_range_size: 1073741824
- readahead: 16320
- log_level: 5
- checkpoint_interval: 3600
- vinyl_page_size: 8192
- coredump: false
- vinyl_run_size_ratio: 3.5
- replication_timeout: 1
- wal_max_size: 268435456
- slab_alloc_factor: 1.05
- background: false
- vinyl_dir: /var/lib/tarantool
- vinyl_cache: 134217728
- vinyl_read_threads: 1
- vinyl_timeout: 60
- memtx_min_tuple_size: 16
- listen: '3301'
- too_long_threshold: 0.5
- vinyl_max_tuple_size: 1048576
- vinyl_write_threads: 2
- vinyl_bloom_fpr: 0.05
- log_format: plain
- memtx_max_tuple_size: 1048576
- memtx_dir: /var/lib/tarantool
- hot_standby: false
- vinyl_memory: 134217728
- wal_mode: none
- worker_pool_threads: 4
- wal_dir: /var/lib/tarantool
- read_only: false
- pid_file: /var/run/tarantool/tarantool.pid
- memtx_memory: 268435456
- force_recovery: false
- replication_sync_lag: 10
- checkpoint_count: 2
- wal_dir_rescan_delay: 2
- ...
- unix/:/var/run/tarantool/tarantool.sock> box.space._space.index.name:select{'MySpace'}
- ---
- - - [528, 1, 'MySpace', 'memtx', 0, {}, [{
- 'index': 1, 'type': 'unsigned', 'isIndexable': true, 'name': 'id', }, {
- 'index': 2, 'type': 'integer', 'is_nullable': true, 'name': 'deletedAt'}, {
- 'index': 3, 'type': 'integer', 'is_nullable': true, 'name': 'createdAt'}, {
- 'index': 4, 'type': 'unsigned', 'isIndexable': true, 'name': 'field1', 'defaultValue': 0}, {
- 'index': 5, 'type': 'unsigned', 'isIndexable': true, 'name': 'field2', 'defaultValue': 0}, {
- 'index': 6, 'type': 'integer', 'is_nullable': true, 'name': 'updatedAt'}, {
- 'index': 7, 'type': 'number', 'is_nullable': true, 'name': 'field3', 'defaultValue': 0}, {
- 'index': 8, 'type': 'unsigned', 'isIndexable': true, 'name': 'field4', 'defaultValue': 0}, {
- 'name': 'field5', 'is_nullable': true}, {
- 'name': 'field6', 'is_nullable': true}, {
- 'name': 'field7', 'is_nullable': true}]
- ]
- unix/:/var/run/tarantool/tarantool.sock> box.space.MySpace.index
- ---
- - 0: &0
- unique: true
- parts:
- - type: unsigned
- is_nullable: false
- fieldno: 1
- sequence_id: 16
- id: 0
- space_id: 528
- name: id
- type: TREE
- 1: &1
- unique: true
- parts:
- - type: unsigned
- is_nullable: false
- fieldno: 5
- - type: unsigned
- is_nullable: false
- fieldno: 8
- id: 1
- space_id: 528
- name: secondaryIndex
- type: TREE
- 2: &2
- unique: false
- parts:
- - type: unsigned
- is_nullable: false
- fieldno: 8
- id: 2
- space_id: 528
- name: field4index
- type: TREE
- 3: &3
- unique: false
- parts:
- - type: unsigned
- is_nullable: false
- fieldno: 4
- id: 3
- space_id: 528
- name: field1index
- type: TREE
- secondaryIndex: *1
- id: *0
- field1index: *3
- field4index: *2
- ...
- --LUA FUNCTION
- function createOrUpdate(space_name, value)
- local one = box.space.MySpace.index.secondaryIndex:get{value.field2, value.field4}
- if one then
- box.space.MySpace:update(one[1], {{'=', 7, value.field3}})
- else
- box.space.MySpace:auto_increment{0, 0, value.field1, value.field2, 0, value.field3, value.field4} --This code was executed only once long long ago in a galaxy far far away
- end
- return value
- end
- //JAVA CODE
- //Connector.java
- private static TarantoolClient client;
- public Connector(String host, int port, String username, String password) throws IOException {
- //Initializing config
- client = new TarantoolClientImpl(socketChannelProvider, config);
- }
- public<T> void createOrUpdate(T t, Class<T> tClass) {
- try {
- client.asyncOps().call("createOrUpdate", getSpaceName(tClass.getSimpleName()), objectMapper.convertValue(t, Map.class)).get();
- } catch (...) { ... }
- }
- //MySpace.java
- public class MySpace {
- public int field1;
- public int field2;
- public double field3;
- public int field4;
- //Constructors, toString and so on
- }
- //In psvm
- List<MySpace> objects = get();
- System.out.println(objects.size()); //1_194_285
- objects.parallelStream().forEach(object -> connector.createOrUpdate(object, MySpace.class));
- $ docker ps
- CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
- 645ebd1bc754 progaudi/tarantool:1.7.7 "docker-entrypoint..." 3 weeks ago Up 2 days (healthy) 0.0.0.0:3303->3301/tcp tarantool
- //crontab
- 0 * * * * java -jar java.jar localhost 3303 username password "<params>" >> /root/log.txt
Add Comment
Please, Sign In to add comment