In your example you add the same key/values into cache, so it's just
overwrites entries and persists only 100 entries.
Please look at the project
https://bitbucket.org/vinokurov-pavel/ignite-postgres . I have ~70-100 Mb/s
on my SSD.

2018-03-22 11:55 GMT+03:00 <[email protected]>:

> Hi Vinokurov,
>
>
>
> I changed my code
>
> >> IgniteCache<String, String> igniteCache = 
> >> ignite.getOrCreateCache("testCache
> ");
>
> To
>
> IgniteCache<String, String> igniteCache = ignite.cache("testCache");
>
> And update to 2.4.0 version.
>
>
>
> But the writing speed is still about 100 KB per second.
>
>
>
>
>
> Below is jdbc connection initialization:
>
> @Autowired
>
> public NamedParameterJdbcTemplate jdbcTemplate;
>
> @Override
>
> public void start() throws IgniteException {
>
> ConfigurableApplicationContext context = new ClassPathXmlApplicationContext
> ("postgres-context.xml");
>
> this.jdbcTemplate = context.getBean(NamedParameterJdbcTemplate.class);
>
> }
>
>
>
>
>
> The PostgreSQL configuration, “postgres-context.xml” :
>
> <?xml version="1.0" encoding="UTF-8"?>
>
> <beans xmlns="http://www.springframework.org/schema/beans";
>
>        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>
>        xmlns:context="http://www.springframework.org/schema/context";
>
>        xsi:schemaLocation="
>
>        http://www.springframework.org/schema/beans
>
>        http://www.springframework.org/schema/beans/spring-beans.xsd
>
>        http://www.springframework.org/schema/context
>
>        http://www.springframework.org/schema/context/spring-context.xsd";>
>
>
>
>     <context:component-scan base-package="com.blu.imdg.jdbc"/>
>
>     <context:property-placeholder location="classpath:jdbc.properties"/>
>
>
>
>     <bean id="dataSource" class="org.springframework.jdbc.datasource.
> DriverManagerDataSource">
>
>         <property name="driverClassName" value="${jdbc.driver}"/>
>
>         <property name="url" value="${jdbc.url}"/>
>
>         <property name="username" value="${jdbc.username}"/>
>
>         <property name="password" value="${jdbc.password}"/>
>
>     </bean>
>
>     <bean id="jdbcTemplate"
>
>           class="org.springframework.jdbc.core.namedparam.
> NamedParameterJdbcTemplate">
>
>         <constructor-arg ref="dataSource"/>
>
>     </bean>
>
> </beans>
>
>
>
>
>
>
>
> Thanks.
>
>
>
>
>
> *From:* Vinokurov Pavel [mailto:[email protected]]
> *Sent:* Thursday, March 22, 2018 1:50 PM
>
> *To:* [email protected]
> *Subject:* Re: Performance of Ignite integrating with PostgreSQL
>
>
>
> Also it makes sense to use new 2.4 version.
>
>
>
> 2018-03-22 8:37 GMT+03:00 Vinokurov Pavel <[email protected]>:
>
> >> IgniteCache<String, String> igniteCache = 
> >> ignite.getOrCreateCache("testCache
> ");
>
> please, change to  ignite.cache("testCache") to be sure the we use
> configuration from the file.
>
>
>
> 2018-03-22 8:19 GMT+03:00 Vinokurov Pavel <[email protected]>:
>
> You already showed the cache configuration, but could you show jdbc
> connection initialization
>
>
>
> 2018-03-22 7:59 GMT+03:00 Vinokurov Pavel <[email protected]>:
>
> Hi,
>
>
>
> Could you please show the "PATH/example-cache.xml" file.
>
>
>
> 2018-03-21 9:40 GMT+03:00 <[email protected]>:
>
> Hi Vinokurov,
>
>
>
> Thanks for your reply.
>
> I try to write batches by 100 entries.
>
> And I got a worse result.
>
> The writing speed is down to 12.09 KB per second.
>
> Below is my code which I try to use putAll and writeAll to rewrite.
>
> Did I make some mistakes?
>
>
>
>
>
>
>
> Main function:
>
>         Ignite ignite = Ignition.start("PATH/example-cache.xml");
>
>         IgniteCache<String, String> igniteCache = 
> ignite.getOrCreateCache("testCache
> ");
>
>         for(int i = 0; i < 100; i++)
>
>         {
>
>              parameterMap.put(Integer.toString(i), "writeAll_val");
>
>         }
>
>
>
>         while(true)
>
>         {
>
>              igniteCache.putAll(parameterMap);
>
>         }
>
>
>
>
>
> Write all to PostgreSQL through JDBC:
>
> @Override
>
> public void writeAll(Collection<Cache.Entry<? extends String, ? extends
> String>> entries) throws CacheWriterException {
>
> Iterator<Cache.Entry<? extends String, ? extends String>> it =
> entries.iterator();
>
> Map<String, Object> parameterMap = new HashMap<>();
>
> int count = 1;
>
> while (it.hasNext()) {
>
> Cache.Entry<? extends String, ? extends String> entry = it.next();
>
> String valCount = "val";
>
> valCount += Integer.toString(count);
>
> parameterMap.put(valCount, entry.getValue());
>
> count++;
>
> it.remove();
>
> }
>
>
>
>         String sqlString = "INSERT INTO test_writeall(val) VALUES "
>
>                    + "(:val1),(:val2),(:val3),(:
> val4),(:val5),(:val6),(:val7),(:val8),(:val9),(:val10),"
>
>                    + "(:val11),(:val12),(:val13),(:
> val14),(:val15),(:val16),(:val17),(:val18),(:val19),(:val20),"
>
>                    + "(:val21),(:val22),(:val23),(:
> val24),(:val25),(:val26),(:val27),(:val28),(:val29),(:val30),"
>
>                    + "(:val31),(:val32),(:val33),(:
> val34),(:val35),(:val36),(:val37),(:val38),(:val39),(:val40),"
>
>                    + "(:val41),(:val42),(:val43),(:
> val44),(:val45),(:val46),(:val47),(:val48),(:val49),(:val50),"
>
>                    + "(:val51),(:val52),(:val53),(:
> val54),(:val55),(:val56),(:val57),(:val58),(:val59),(:val60),"
>
>                    + "(:val61),(:val62),(:val63),(:
> val64),(:val65),(:val66),(:val67),(:val68),(:val69),(:val70),"
>
>                    + "(:val71),(:val72),(:val73),(:
> val74),(:val75),(:val76),(:val77),(:val78),(:val79),(:val80),"
>
>                    + "(:val81),(:val82),(:val83),(:
> val84),(:val85),(:val86),(:val87),(:val88),(:val89),(:val90),"
>
>                    + "(:val91),(:val92),(:val93),(:
> val94),(:val95),(:val96),(:val97),(:val98),(:val99),(:val100);";
>
>
>
>         jdbcTemplate.update(sqlString, parameterMap);
>
> }
>
>
>
>
>
>
>
> *From:* Vinokurov Pavel [mailto:[email protected]]
> *Sent:* Wednesday, March 14, 2018 5:42 PM
> *To:* [email protected]
> *Subject:* Re: Performance of Ignite integrating with PostgreSQL
>
>
>
> Hi,
>
>
>
> You could try to use igniteCache.putAll  for write batches by 1000
> entries.
>
> Use following script in PostgresDBStore#writeAll method to put data into
> the database:
>
> String sqlString = "INSERT INTO test(val) VALUES (:val1)(:val2)(:val3);";
>
>
>
>
>
> 2018-03-14 11:58 GMT+03:00 <[email protected]>:
>
> Hi,
>
> I try to use Ignite to integrate with PostgreSQL.
>
> And I use “atop” to monitor the data write to PostgreSQL.
>
> Then observed that the writing speed is 1 MB per second.
>
> This performance is not really good. Below is my configuration and code.
> Please help me to improve it.
>
> Thanks.
>
>
>
> There is my cache configuration:
>
>                               <bean class="org.apache.ignite.
> configuration.CacheConfiguration">
>
>                                     <property name="name" value=
> "testCache"/>
>
>                                     <property name="cacheMode"
> value="PARTITIONED"/>
>
>                                     <property name="atomicityMode"
> value=" ATOMIC"/>
>
>                                     <property name="atomicWriteOrderMode"
> value="PRIMARY"/>
>
>                      <property name="readThrough" value="true"/>
>
>                                         <property name="writeThrough"
> value="true"/>
>
>                              <property name="writeBehindEnabled"
> value="true"/>
>
>
>
>                              <property name="writeBehindFlushThreadCount"
> value="64"/>
>
>                              <property name="writeBehindBatchSize"
> value="131072" />
>
>                              <property name="writeBehindFlushSize"
> value="131072" />
>
>
>
>                              <property name="offHeapMaxMemory" value="0" />
>
>                          <property name="cacheStoreFactory">
>
>                         <bean class="javax.cache.
> configuration.FactoryBuilder$SingletonFactory">
>
>                              <constructor-arg>
>
>                                  <bean class="com.blu.imdg.jdbc.
> PostgresDBStore">
>
>                                  </bean>
>
>                              </constructor-arg>
>
>                                                 </bean>
>
>                                     </property>
>
>                                     <property name="backups" value="0"/>
>
>                                     <property name="indexedTypes">
>
>                                                 <list>
>
>
> <value>java.lang.String</value>
>
>
> <value>java.lang.String</value>
>
>                        </list>
>
>                                     </property>
>
>                 </bean>
>
>
>
>
>
> Main function:
>
>         Ignite ignite = Ignition.start("PATH/example-cache.xml");
>
>         IgniteCache<String, String> igniteCache = 
> ignite.getOrCreateCache("testCache
> ");
>
>         int seqint = 0;
>
>         while(true)
>
>         {
>
>                         igniteCache.put(Integer.toString(seqint),
> "valueString");
>
>                         seqint++;
>
>         }
>
>
>
>
>
> Write behind to PostgreSQL through JDBC:
>
> @Override
>
> public void write(Cache.Entry<? extends String, ? extends String> entry)
> throws CacheWriterException {
>
> Map<String, Object> parameterMap = new HashMap<>();
>
> parameterMap.put(“val”, entry.getValue());
>
> String sqlString = "INSERT INTO test(val) VALUES (:val);";
>
> jdbcTemplate.update(sqlString, parameterMap);
>
> }
>
>
>
>
>
> --
> 本信件可能包含工研院機密資訊,非指定之收件者,請勿使用或揭露本信件內容,並請銷毀此信件。 This email may contain
> confidential information. Please do not use or disclose it in any way and
> delete it if you are not the intended recipient.
>
>
>
>
>
> --
>
> Regards
>
> Pavel Vinokurov
>
>
>
> --
> 本信件可能包含工研院機密資訊,非指定之收件者,請勿使用或揭露本信件內容,並請銷毀此信件。 This email may contain
> confidential information. Please do not use or disclose it in any way and
> delete it if you are not the intended recipient.
>
>
>
>
>
> --
>
> Regards
>
> Pavel Vinokurov
>
>
>
>
>
> --
>
> Regards
>
> Pavel Vinokurov
>
>
>
>
>
> --
>
> Regards
>
> Pavel Vinokurov
>
>
>
>
>
> --
>
> Regards
>
> Pavel Vinokurov
>
>
> --
> 本信件可能包含工研院機密資訊,非指定之收件者,請勿使用或揭露本信件內容,並請銷毀此信件。 This email may contain
> confidential information. Please do not use or disclose it in any way and
> delete it if you are not the intended recipient.
>



-- 

Regards

Pavel Vinokurov

Reply via email to