solr用zookeeper来干什么?

SolrCloud是solr服务器的集群,它需要zookeeper来:     1.同步配置文件     2.在集群间做状态协调 "SolrCloud uses ZooKeeper to synchronize configuration and cluster states (such as elected shard leaders)" 细节待续。。。

MySQL通信模块中的packet分类及关键源码

packet类型 职能 关键函数 所在源码文件 OK 成功执行客户端的命令 send_ok() sql/protocol.h, sql/protocol.c Error 执行客户端命令时出错 send_error() sql/net_pkg.cc EOF resultset中的行结尾/所有数据结尾,其它 send_eof() sql/net_pkg.cc Data resultset中的元数据、数据,其它 ? ?

MySQL主干流程中涉及到的代码的位置

1. main()在sql/mysqld.cc中 2. 接收请求的函数是: handle_connetions_sockets() , sql/mysqld.cc 3. 处理请求的入口:handle_one_connection() , sql/sql_parse.cc 4. 分发:command: do_command()和dispatch_command(), sql/sql_parse.cc 5. 解析query: mysql_parse(), sql/sql_parse.cc 6. 优化:mysql_select(),  sql/sql_select.cc 7. 表锁相关:mysql_lock_table() in sql/lock.cc及其它 8. 表数据变更:mysql_update() sql/sql_update.cc 及其它 9. 存储引擎接口: handler类及其部分函数的实现, sql/handler.h,  sql/handler.cc 10. Innodb实现:sl/ha_innodb.h, sql/ha_innodb.cc 11. 状态回送: mysqld_show() in sql/sql_sow.cc 及其它

debug jdk6源码时看不到变量的值怎么办?

从某个时候开始,jdk提供的rt.jar中不再带有符号表,所以debug jdk6源码时一般是看不到变量的值的。 你所能做的就是重新编译一下rt.jar. 我按下面给的步骤试过了,可以用。 http://www.brainbugs.net/post/22537922263/adding-debug-info-to-java-runtime-classes

SecurityManager一般不起作用

在普通webapp、或java application中,如果没有特别指定,System.getSecurityManager()的返回值都是空的,也就是说拿不到SecurityManager,也不会用它去做任何检查。 所以,在这些程序中通过反射直接访问一个对象的私有变量的值,是可以得手的。 有些框架也直接利用这个默认设置来耍流氓,比如Spring的@Resource实现。 但在applet、java web start等环境中SecurityManager默认是有的,这时直接通过反射访问私有变量就会失败。

HashSet和TreeSet如何确定元素的唯一性?

往Set里先后加入两个“有点相像”的对象,最后Set里会有一个对象还是两个? 实验结论如下: HashSet 两个对象是否彼此equals ? 两个对象hashCode是否相等 最终Set大小 备注 true true 1 true false 2 有点违反Set接口契约 false true 2 false false 2 TreeSet TreeSet在判断唯一性时不考虑hash code; 从下面的结果你也可以发现,它连equals()都不理会。 两个对象是否彼此equals ? 两个对象compare后是否相等 最终Set大小 备注 true true 1 true false 2 false true 1 违背了Set接口的契约,令人吃惊? false false 2

HashMap如何应对hash collision ?

HashMap如何应对hash collision?  只通过key的hashCode()来区分key是不够的,因为两个不同key的hash code很容易就重合了。 当hash-code重合时,区分的办法就是 ==和equals()方法了;如果两个key的hashCode()相同而但equals()和==都不同,则将这两个key散列到同一个桶上,但不互相覆盖。 为求明白,可以总结一下equals(), ==, hashCode()呈现不同结果时,HashMap的不同行为: 两个key的hashCode()相等? 两个key是同一个对象? 两个key的equals() == true? 是否导致覆盖 备注 true true true 是 true true false N/A true false true 是 true false false 否 false true true 否 单个key对象存入HashMap后,hashCode发生修改,然后再存一次 false true false N/A false false true 否 false false false 否